CDH Disk Balancer 磁盤數據均衡


前提:
CDH5.16.2

由於數據量過多,磁盤大小太小,導致磁盤使用率高達90%以上,於是新增磁盤,可問題來了,如何將這兩塊磁盤上的數據進行均衡呢?
本次基於CDH來做

1.設置dfs.disk.balancer.enabled 為true

2.生成平衡計划(cbp9.chinaoly.com為主機名)

hdfs diskbalancer -plan cbp9.chinaoly.com(需要均衡的機器) 會生成一個*.plan.json的文件

3.執行平衡計划

hdfs diskbalancer -execute /system/diskbalancer/2021-Feb-2-20-11-14/cbp9.chinaoly.com.plan.json

4.查看執行狀態

hdfs diskbalancer -query cbp9.chinaoly.com


DONE的時候表示已經執行完畢

備注:
此過程由於數據量相對比較大,磁盤IO、網絡IO占用都會比較高,雖然有參數可以配置,如dfs.datanode.balance.bandwidthPerSec,但仍然建議在集群負載不高時進行,特別是生產集群。另外執行時間的長度取決於:數據量、網絡IO、磁盤IO及新寫入的數據量大小
可同時配置dfs.datanode.fsdataset.volume.choosing.policy(磁盤的選擇策略)

Execute階段:

所有執行計划生成以后,就到了執行階段。這些計划會被提交到各自DataNode上,然后在DiskBalancer類中執行。然后DiskBalancer有專門的類DiskBalancerMover來做數據平衡工作。在磁盤間數據平衡的過程中,高使用率的磁盤會移動數據塊到相對低使用率的磁盤,等到滿足一定閾值關系的情況下時,DiskBalancer會漸漸地退出.在DiskBalancer的執行階段,有以下幾點需要注意:

 

帶寬限制:DiskBalancer也可以支持帶寬限制。默認是10M,可以通

過配置項dfs.disk.balancer.max.disk.throughputInMBperSec進行控制

失敗次數限制:DiskBalancer中會存在失敗次數的控制.在拷貝block數據塊的時候,出現IOException異常,會進行失敗次數的累加計數,如果超出最大容忍值,DiskBalancer也會退出.

數據平衡閥值控制:DiskBalancer中可以提供一個磁盤間數據的平衡閾值,以此作為是否需要繼續平衡數據的標准,配置項為dfs.disk.balancer.block.tolerance.percent.

 


免責聲明!

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



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