1. 修改dfs.datanode.max.transfer.threads = 4096 (如果运行hbase的话建议为16384),指定用于在DataNode间传输block数据的最大线程数,老版本的对应参数为dfs.datanode.max.xcievers
2. 修改dfs.datanode.balance.bandwidthPerSec = 52428800,指定DataNode用于balancer的带宽为50MB,这个示情况而定,如果交换机性能好点的,完全可以 设定为100MB,单位是Byte,如果机器的网卡和交换机的带宽有限,可以适当降低该速度,默认是1048576(1MB)
临时生效的办法:
hdfs dfsadmin -setBalancerBandwidth 50000000
Balancer bandwidth is set to 50000000 for hadoop001/192.168.X.X:8020
注:
-setBalancerBandwidth <bandwidth in bytes per second>
然后执行balancer命令,只对当前生效
3.修改dfs.datanode.balance.max.concurrent.moves = 50,指定DataNode上同时用于balance待移动block的最大线程个数,这个值默认是5