? ? hadoop的分布式文件系統HDFS的存儲方式是,將數據分成block,分布式存儲在整個hadoop集群的datanode中,每個block默認的大小是64M,這些block文件的具體存儲位置是在hadoop的配置文件中定義的,進入/home/hadoop2/hadoop2/etc/hadoop的配置文件目錄(hadoop版本為社區版2.2.0):
vi /home/hadoop2/hadoop2/etc/hadoop/hdfs- site.xml <configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>master: 9001 </value> </property> <property> <name>dfs.namenode.name. dir </name> <value> file :/home/hadoop2/dfs/name</value> </property> <property> <name>dfs.datanode.data. dir </name> <value> file :/home/hadoop2/dfs/data</value> </property> <property> <name>dfs.replication</name> <value> 2 </value> </property> <property> <name>dfs.webhdfs.enabled</name> <value> true </value> </property> </configuration>
其中,標黃色的屬性dfs.datanode.data.dir為block存儲路徑的設置選項。
? ? 正常情況下,我們如上圖中的設置自己設定的路徑就可以了;但是,隨著hdfs中的數據量越來越大,會出現datanode上block存儲路徑所在的掛載點空間不足的情況,本文中的情況就是 /home 掛載點的剩余空間即將不足了,但是在該datanode主機上,/ 掛載點還有非常多的剩余空間,我們希望將數據存儲到 / 掛載點的目錄下,防止 /home 掛載點被塞滿。
? ?這樣我們首先需要切換到root管理員用戶下,因為 / 掛載點的擁有者是root,我們的hadoop2用戶對該目錄沒有足夠的權限。接著我們在該目錄下創建一個存儲block的文件目錄:
su - mkdir /hdfs/data
這樣還不能直接設置路徑,由于我們是用root用戶創建的目錄,該目錄的擁有者和組群都是root,hadoop2用戶沒有足夠權限,如果設置為datanode的block存儲路徑,將會拋出異常,導致datanode進程關閉,hadoop集群無法正常啟動。我們需要更改/hdfs目錄及其子目錄的擁有者和組群為hadoop2,如下:
cd /
chown
hadoop2:hadoop2 -R /hdfs
?chown命令用于修改所有者,其中,hadoop2:hadoop2為擁有者和組群,-R為迭代修改所有子目錄和文件。
這樣我們就可以修改hdfs-site.xml文件的datanode的屬性為多個路徑:
<property> <name>dfs.datanode.data. dir </name> <value> file : /// home/hadoop2/dfs/data,/hdfs/data </value> </property>
路徑之間只需用逗號 “ , ”分隔就可以了。
這樣設置后,重新啟動集群的dfs,bin/start-dfs.sh,通過jps命令查看集群的相關進程是否都正常啟動:
jps 6935 HQuorumPeer 6115 SecondaryNameNode 6423 NodeManager 6317 ResourceManager 18005 Bootstrap 5837 NameNode 5956 DataNode 7143 HRegionServer 7005 HMaster 2351 Jps
標黃色的為啟動dfs后必須存在的進程,其他的進程為Hbase相關進程。這樣設置啟動以后,再往HDFS中寫入數據時,產生的block數據塊就會分別寫入兩個不同的目錄中,均勻分布,不會出現一個路徑的掛載空間不足的情況,如果再次占滿,可以再次掛載新的磁盤,繼續添加路徑。
另外,不同的datanode中,block的路徑屬性可以設置為不相同,不影響集群的正常運行。
?
轉載請注明出處: http://www.cnblogs.com/bxljoy/p/3863539.html ?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
