Hadoop DataNode 多目錄磁盤擴展配置


工作中不免會有碰到服務器磁盤空間不足,需要另外掛載磁盤上去的時候,這時候問題就來了,怎么能讓datanode將數據寫入新掛載的磁盤呢?

1、配置hdfs-site.xml

<property>
    <name>dfs.datanode.data.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/data1,file:///sdb1/dfs/data2</value>
</property>

2、數據存放策略

參考大佬博客   https://blog.csdn.net/bigdatahappy/article/details/39992075

默認為輪詢,現在的情況顯然應該用“選擇空間多的磁盤存”模式

配置hdfs-site.xml

<property>
    <name>dfs.datanode.fsdataset.volume.choosing.policy</name>
    <value>org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy</value>
  </property>

3、開啟 數據均衡

bin/start-balancer.sh –threshold 10
##停止命令

bin/stop-balancer.sh

對於參數10,代表的是集群中各個節點的磁盤空間利用率相差不超過10%,可根據實際情況進行調整。

注意點

在實際運行時發現datanode節點起不來,報錯

org.apache.hadoop.util.DiskChecker$DiskErrorException: Too many failed volumes - current valid volumes: 1, volumes configured: 2, volumes failed: 1, volume failures tolerated: 0

 

 經過檢查,是因為在102(新增硬盤的主機)配置了hdfs-site.xml 后,分發給了其他沒有新增硬盤的主機,啟動時因為沒有檢測到新的硬盤,所以會報錯,這里建議千萬不要分發hdfs-site.xml


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM