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

1.文档编写目的


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

  • 测试环境:

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

2.CM和CDH版本为5.11.2

3.HDFS已启用HA

2.问题描述


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

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.

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2018-08-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏跟着阿笨一起玩NET

C#分析URL参数获取参数和值得对应列表(二)

37420
来自专栏Golang语言社区

golang使用原始套接字构造UDP包

RAW SOCKET 介绍 TCP/IP协议中,最常见的就是原始(SOCKET_RAW)、tcp(SOCKET_STREAM)、udp(SOCKET_DGRA)...

53240
来自专栏编程微刊

git把本地文件上传到github上的步骤

11150
来自专栏双十二技术哥

Android性能优化(七)之你真的理解ANR吗?

在上一篇文章《Android性能优化(六)之卡顿那些事》中,我们提到了卡顿的成因、检测卡顿的途径以及避免卡顿的方法。卡顿再扩大就会产生大名鼎鼎的ANR(Appl...

11730
来自专栏点滴积累

OpenStack(企业私有云)万里长征第三步——调试成功

一、前言 折腾了一两个月(中间有事耽搁了半个月),至今日基本调试成功OpenStack,现将中间的部分心得记录下来。 二、环境 使用的是devstack new...

39850
来自专栏非著名程序员

Android面试系列之AsyncTask

记得2012年的时候,在MTK公司内部的一个Work Shop上我分享了对AsyncTask的理解,听众都很有兴趣地参与讨论使用AsyncTask的问题所在。因...

24160
来自专栏北京马哥教育

TCP三次握手与四次分手傻傻分不清?看大神图解五分钟讲明白

引言 TCP三次握手和四次挥手不管是在开发还是面试中都是一个非常重要的知识点,它是我们优化web程序性能的基础。但是大部分教材都对这部分解释的比较抽象,本文我们...

37670
来自专栏QQ会员技术团队的专栏

从 TCP 三次握手说起:浅析TCP协议中的疑难杂症 ( 1 )

说到TCP协议,相信大家都比较熟悉了,对于TCP协议总能说个一二三来,但是TCP协议又是一个非常复杂的协议,其中有不少细节点让人头疼点。本文就是来说说这些头疼点...

7.3K120
来自专栏Django Scrapy

端口的常用端口

端口号---具有网络功能的应用软件的标识号。注意,端口号是不固定的,即可以由用户手工可以分配(当然,一般在软件编写时就已经定义)。当然,有很多应用软件有公认的默...

85250
来自专栏土豆专栏

计算机网络基础知识整理--数据链路层

小编最近在复习计算机网络基础,整理出来一些我认为比较重要的知识。希望能帮到大家哈,后续会更新~

825120

扫码关注云+社区

领取腾讯云代金券