HDFS执行balance报错:hdfs balance java.io.IOException: Another Balancer is running.. Exiting

现象:

1、大数据Hadoop集群,HDFS扩容后,为了使各节点数据均衡,执行balance操作。
2、启动 hdfs balance 时,一直出现其他的balance在执行中,其实并没有执行。

java.io.IOException: Another Balancer is running… Exiting …

解决方法:

网上的思路:

①HDFS在运行Balancer的时候,会将运行Balancer的主机名写入到balancer.id这个文件里面,
通过这个Mark File来检测Balancer是否运行,该文件存放在HDFS上的/system目录下。
②查看/system目录下的balancer.id文件内容,内容为空,确实没有正在运行Balancer的主机。
hdfs dfs -cat /system/balancer.id
上述命令没有内容输出。
③删除balancer.id这个文件
④重新执行Balancer命令,可以正常执行数据均衡操作

如果没有balancer.id这个文件:

这是Hadoop的一个已知bug:

修改当前执行命令节点core_site.xml 的配置fs.defaultFS,去掉最后的 / 。
--core_site.xml

fs.defaultFS
hdfs://bigdata/

-------修改为

fs.defaultFS
hdfs://bigdata


再次执行 hdfs balancer,正常

balancer命令:

hadoop/sbin/start-balancer.sh -threshold 5

bug描述:

https://issues.apache.org/jira/browse/HDFS-8897

你可能感兴趣的:(Hadoop,hdfs,hadoop,java)