舒適提示:若是使用電腦查看圖片不清晰,可使用手機打開文章單擊文中的圖片放大查看高清原圖。nginx
Fayson的github:git
https://github.com/fayson/cdhprojectgithub
提示:代碼塊部分能夠左右滑動查看噢web
CDH支持Hadoop分佈式文件系統HDFS中的各類存儲類型。早期的CDH只支持一種存儲類型。如今,您能夠爲DataNode數據目錄指定不一樣的存儲類型,這樣能夠根據數據使用頻率優化數據使用並下降成本。例如須要頻繁使用的數據,能夠存儲在SSD中,而歸檔的數據能夠存放在相對便宜的存儲介質中。微信
集羣中的每一個DataNode都配置有一組數據目錄,您能夠爲每一個數據目錄配置一個存儲類型。存儲策略指示在存儲文件或目錄時要使用的存儲類型。常見使用不一樣存儲類型的緣由包括:app
1.數據集具備時間局部性(temporal locality),好比時間序列數據。最新數據最初能夠加載到SSD中以提升性能,而後隨着時間的推移遷移到普通磁盤。tcp
2.您須要將冷數據移動到更密集的歸檔存儲,由於這些數據不多訪問而且歸檔存儲設備更便宜。這能夠經過簡單的老化策略來完成,好比將超過六個月的數據移動到歸檔存儲。分佈式
1.1 存儲類型工具
存儲類型標識底層存儲介質。HDFS支持如下存儲類型:oop
ARCHIVE - 歸檔存儲用於很是密集的存儲,主要用於不多訪問的數據。這種存儲類型比普通硬盤每TB的成本會更便宜。
DISK - 硬盤驅動器相對便宜,並提供順序I/O性能。這是默認存儲類型。
SSD - 固態驅動器(Solid state drives)對於存儲熱數據和I/O密集型應用程序很是有用。
RAM_DISK - 這種特殊的內存存儲類型用於加速低持久性的單副本寫入。
添加DataNode數據目錄時,能夠經過在路徑中添加存儲類型前綴來指定它使用的存儲類型,用括號括起來。若是未指定存儲類型,則假定爲DISK。
1.2 存儲策略
存儲策略包含描述要使用的存儲類型的信息。若是主要類型空間不足或者超出配額,此策略還會定義回退存儲類型。若是目標存儲類型不可用,HDFS會嘗試將副本放在默認存儲類型上。
每一個存儲策略都包含策略ID,策略名稱,存儲類型列表,用於文件建立的回退存儲類型列表以及用於複製的回退存儲類型列表。
HDFS有六個預配置的存儲策略。
Hot - 全部副本都存儲在DISK上。
Cold - 全部副本都存儲在ARCHIVE上。
Warm - 一個副本存儲在DISK上,其餘副本存儲在ARCHIVE上。
All_SSD - 全部副本都存儲在SSD上。
One_SSD - 一個副本存儲在SSD上,其餘副本存儲在DISK上。
Lazy_Persist - 將副本寫入RAM_DISK,而後緩慢的持久化到DISK。
注意:您沒法建立本身的存儲策略。您必須使用六個預配置策略之一。HBase等HDFS客戶端可能支持不一樣的存儲策略。
1.正常搭建你的集羣,在數據目錄前使用[ssd]來自定義DataNode。你也能夠在集羣搭建完畢之後,再設置 [ssd]前綴,不過這須要重啓HDFS服務。
2.中止HBase服務。
3.使用HDFS客戶端,將/hbase更名爲/hbase_backup。
4.使用Cloudera Manager重建HBase服務的/hbase目錄,這樣能夠保證權限正確。使用HDFS客戶端,將/hbase目錄的存儲策略設置爲僅SSD。
5.使用Distcp拷貝/hbase_backup到/hbase。
hadoop distcp /hbase_backup /hbase
6.啓動HBase服務。
注意:由於使用Cloudera Manager操做,最小角色須要Cluster Administrator,Full Administrator一樣具備權限操做。
要使用Cloudera Manager在DataNode數據目錄上設置存儲策略,請執行如下操做:
1.確保HDFS Service Advanced Configuration Snippet (Safety Valve) for hdfs-site.xml中的配置dfs.storage.policy.enabled沒有被修改,默認值爲true。
2.經過在目錄路徑開頭的括號中添加存儲類型,爲每一個不是標準磁盤的DataNode數據目錄指定存儲類型。例如:
[SSD]/dfs/dn1
[DISK]/dfs/dn2
[ARCHIVE]/dfs/dn3
3.在任何HDFS主機上打開終端會話。對要設置存儲策略的每一個路徑運行如下hdfs命令:
$ hdfs storagepolicies -setStoragePolicy -path <path> -policy <policy>
path_to_file_or_directory -policy policy_name
4. 要根據當前存儲策略將數據移動到適當的存儲,須要使用mover命令。使用mover -h獲取可用選項列表。要一次遷移全部數據(這可能須要很長時間),您能夠將路徑設置爲/。
hdfs mover -p <path>
注意:在設置存儲策略或寫入文件時強制執行配額,而不是修改配額時。Mover工具沒法識別配額違規。它僅驗證文件是否存儲在其策略中指定的存儲類型上。
1. 要獲取DataNode上特定文件或目錄的存儲策略,請使用如下命令:
hdfs storagepolicies -getStoragePolicy -path <path>path_to_policy
2. 要列出一臺DataNode上的全部策略,可使用如下命令:
hdfs storagepolicies -listPolicies
3. 要重置存儲策略,能夠參考上一章節。
要根據當前存儲策略將數據移動到適當的存儲,須要使用mover命令。使用mover -h獲取可用選項列表。 要一次遷移全部數據(這可能須要很長時間),您能夠將路徑設置爲/。
hdfs mover -p <path>
注意:在設置存儲策略或寫入文件時強制執行配額,而不是修改配額時。Mover工具沒法識別配額違規。它僅驗證文件是否存儲在其策略中指定的存儲類型上。
提示:代碼塊部分能夠左右滑動查看噢
爲天地立心,爲生民立命,爲往聖繼絕學,爲萬世開太平。
舒適提示:若是使用電腦查看圖片不清晰,可使用手機打開文章單擊文中的圖片放大查看高清原圖。
推薦關注Hadoop實操,第一時間,分享更多Hadoop乾貨,歡迎轉發和分享。
原創文章,歡迎轉載,轉載請註明:轉載自微信公衆號Hadoop實操
本文分享自微信公衆號 - Hadoop實操(gh_c4c535955d0f)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。