Hadoop之 Balancer平衡速度

張衝andy發表於2018-02-01

1. dfs.datanode.max.transfer.threads

修改dfs.datanode.max.transfer.threads=4096 (如果執行HBase的話建議為16384),
指定用於在DataNode間傳輸block資料的最大執行緒數,老版本的對應引數為dfs.datanode.max.xcievers。


2. dfs.datanode.balance.bandwidthPerSec

修改dfs.datanode.balance.bandwidthPerSec=52428800,指定DataNode用於balancer的頻寬為50MB,
這個根據情況而定,如果交換機效能好點的,完全可以設定100MB,單位是Byte,
如果機器的網路卡和交換機的頻寬有限,可以適當降低該速度,比如10MB,預設是1048576(1MB)。
hdfs dfsadmin-setBalancerBandwidth 52428800

3. dfs.balancer.block-move.timeout

以毫秒為單位移動的最大時間。如果這個設定大於0,平衡器將停止等待一個塊移動完成。在典型的叢集中,3到5分鐘的超時是合理的。
如果超時發生在很大比例的塊移動中,則需要增加。它也可能是太多的工作被分派,並且許多節點的頻寬總是超過頻寬限制。
在這種情況下,可能需要調整其他平衡器引數。預設情況下,它是禁用的。

4. dfs.balancer.max-no-move-interval

如果這個指定的時間量已經過去,並且沒有一個塊被移出源DataNode,那麼將會有更多的努力在當前的平衡迭代中移出這個DataNode的塊。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2150733/,如需轉載,請註明出處,否則將追究法律責任。

相關文章