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的块。
文章可以转载,必须以链接形式标明出处。
本文转自 张冲andy 博客园博客,如需转载请自行联系 原作者原文链接:http://www.cnblogs.com/andy6/p/8397791.html