之前一直没做过rebalance,以为速度很快,结果大意了,等到磁盘达到90%的时候,才开始做rebalance。
默认的从日志中可以看到总共需要迁移1.89T,但是每次只移动40G大小的量。
然后查看40G的数据量从15:45分到15:48分,所以结算结果为每分钟13G,每秒228M左右。(感觉这计算结果有问题)
hadoop有个balancerBandwidth可以通过设置带宽流量来增加数据移动的大小。
所以通过以下设置来增加每秒流量为500M.
hadoop dfsadmin -setBalancerBandwidth 524288000
start-balancer.sh -threshold 5
hadoop3.1.3版本执行rabalance异常:because threads quota is exceeded., block move is failed
这是因为在rebalanecing server启动的线程数有限,hdfs-site.xml配置中(dfs.datanode.balance.max.concurrent.moves)默认配置是5,可以适当将该值调大
注意:修改的是hdfs-site.xml文件
<property><name>dfs.datanode.balance.max.concurrent.moves</name><value>1024</value>
</property>
动态刷新hdfs配置:
hdfs dfsadmin -fs hdfs://ns1 -refreshSuperUserGroupsConfiguration