前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HDFS运行Balancer失败及问题解决办法

HDFS运行Balancer失败及问题解决办法

作者头像
Fayson
发布2018-08-17 17:00:58
2.6K0
发布2018-08-17 17:00:58
举报
文章被收录于专栏:Hadoop实操Hadoop实操

1.文档编写目的


本文主要讲述如何解决HDFS运行Balancer提示“Another Balancer is running..”导致Balancer失败的问题。

  • 测试环境:

1.操作系统版本为Redhat7.2

2.CM和CDH版本为5.11.2

3.HDFS已启用HA

2.问题描述


运行HDFS的Balancer命令后,中止过该命令一次,再次运行Balancer命令出现如下报错:

代码语言:javascript
复制
Tue Jul 17 17:50:52 CST 2018
Current working directory:  /run/cloudera-scm-agent/process/10390-hdfs-BALANCER
Launching one-off process: /usr/lib64/cmf/service/hdfs/hdfs.sh balancer -threshold  10.0 -policy DataNode
Tue Jul 17 17:50:52 CST 2018
JAVA_HOME=/usr/java/jdk1.8.0_111/
using /usr/java/jdk1.8.0_111/ as JAVA_HOME
using 5 as CDH_VERSION
using /run/cloudera-scm-agent/process/10390-hdfs-BALANCER as CONF_DIR
using  as SECURE_USER
using  as SECURE_GROUP
CONF_DIR=/run/cloudera-scm-agent/process/10390-hdfs-BALANCER
CMF_CONF_DIR=/etc/cloudera-scm-agent
unlimited
2018-07-17 17:50:52,829 INFO   [main] balancer.Balancer (Balancer.java:parse(832)) - Using a  threshold of 10.0
2018-07-17 17:50:52,832 INFO   [main] balancer.Balancer (Balancer.java:run(647)) - namenodes  = [hdfs://nameservice1]
2018-07-17 17:50:52,833 INFO   [main] balancer.Balancer (Balancer.java:run(648)) - parameters =  Balancer.Parameters [BalancingPolicy.Node, threshold = 10.0, max idle  iteration = 5, #excluded nodes = 0, #included nodes = 0, #source nodes = 0,  run during upgrade = false]
2018-07-17 17:50:52,833 INFO   [main] balancer.Balancer (Balancer.java:run(649)) - included nodes =  []
2018-07-17 17:50:52,834 INFO   [main] balancer.Balancer (Balancer.java:run(650)) - excluded nodes =  []
2018-07-17 17:50:52,834 INFO   [main] balancer.Balancer (Balancer.java:run(651)) - source nodes = []
Time Stamp                Iteration#  Bytes Already  Moved  Bytes Left To Move  Bytes Being Moved
java.io.IOException: Another Balancer is running..  Exiting ...
Jul 17, 2018 5:50:53 PM  Balancing  took 1.054 seconds
Exit code: 252

异常信息提示为:”java.io.IOException: Another Balancer isrunning.. Exiting ...”

经过仔细检查,并未发现有任何运行Balancer的主机。

3.解决方案

3.1.问题解决思路


HDFS在运行Balancer的时候,会将运行Balancer的主机名写入到balancer.id这个文件里面,通过这个Mark File来检测Balancer是否运行,该文件存放在HDFS上的/system目录下。

3.2.问题解决步骤


1.查看/system目录下的balancer.id文件内容,内容为空,确实没有正在运行Balancer的主机

2删除balancer.id这个文件

3.重新执行Balancer命令,可以正常执行数据均衡操作

4.查看balancer.id文件内容,与实际结果一致,即运行balancer的主机为bigdata2

3.3.相关建议


如果HDFS的Balancer在非正常情况下终止,建议在重新执行Balancer前,清除掉balancer.id这个文件。

4.总结


1.HDFS在运行Balancer的时候,会产生一个以“balancer.id”命名的Mark File,通过这个Mark File来监测Balancer的运行状况。

2.以“balancer.id”命名的Mark File存储了运行Balancer主机的主机名,位于HDFS的/system目录下,如果执行Balancer出现”java.io.IOException:Another Balancer is running.. Exiting...”这类异常问题,先查看“balancer.id”文件内容,检查是否有其他主机在运行Balancer,如果没有,则删除该文件,重新执行Balancer即可恢复正常。

3.如果是HDP集群,且HDFS由非HA转换为启用HA,那么出现该类问题有可能是遇见了AMBARI-13946这个Bug,Ambari 2.2.2及以上版本已修复,详见:

https://issues.apache.org/jira/browse/AMBARI-13946

参考文章:

http://mail-archives.apache.org/mod_mbox/hadoop-mapreduce-user/201601.mbox/%3CCANXtaKBEVjrZjBMY+rMbkScuMxqvNTX6fAuDpMwuNzvLC6taCA@mail.gmail.com%3E

https://stackoverflow.com/questions/35501920/hdfs-balancer-not-working

When your talent can’t support your ambition, You should calm down and learn. When your ability cannot realize you dreams, You should practice with all your heart. Ask yourself, What kind of life you pursue.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3.解决方案
    • 3.1.问题解决思路
      • 3.2.问题解决步骤
        • 3.3.相关建议
        • 4.总结
        相关产品与服务
        专用宿主机
        专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档