Hbase出现ERROR: Can't get master address from ZooKeeper; znode data == null解决办法

Hbase出现ERROR: Can’t get master address from ZooKeeper; znode data == null解决办法

问题列表(同时出现的):

2019-04-11 15:09:33,089 INFO [node111:16000.activeMasterManager] master.RegionStates: Transition {1a79ef4199d6f0d80bcba8e83c5e4c67 state=OPEN, ts=1554966573089, server=node116,16020,1554893456913} to {1a79ef4199d6f0d80bcba8e83c5e4c67 state=OFFLINE, ts=1554966573089, server=node116,16020,1554893456913}

org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/region-in-transition

Zookeeper客户端错误:Packet len* is out of range!

解决办法:
步骤一: 添加参数 “-Djute.maxbuffer=41943040” \

找到zkCli.sh,最下面的java命令中添加对jute.maxbuffer的定义(使用D参数):

"$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
     "-Djute.maxbuffer=41943040" \
     -cp "$CLASSPATH" $CLIENT_JVMFLAGS $JVMFLAGS \
     org.apache.zookeeper.ZooKeeperMain "$@"

步骤二:

运行zkCli.sh (在zookeeper集群的三台机子的leader机子上)
rmr  /hbase

然后重新启动zookeeper和hbase集群。
步骤三:

# 查看hbase中损坏的block
hbase hbck

# 修复hbase
hbase hbck -repair

关闭balance,防止在停掉服务后,原先节点上的分片会迁移到其他节点上,到时候在移回来,浪费时间。 
hbase(main):001:0> balance_switch true

# 修复 .META表
hbase hbck -fixMeta

# 当出现漏洞  
hbase hbck -fixHdfsHoles 

# 缺少regioninfo  
hbase hbck -fixHdfsOrphans

# hbase region 引用文件出错
# Found lingering reference file hdfs:  
hbase hbck -fixReferenceFiles 

# 修复assignments问题
hbase hbck -fixAssignments

region in transition的问题

强制删除hbase某表的方法
第一步:hdfs强制删除,首先找到hdfs上该表所在的位置,然后删除

hadoop dfs -rm -r -f  /usr/cwgis/data/hbase/tmp/hbase/data/default/rr500000_ed2009_dltb_1661w_SPATIAL_IDX_ROUND_ROBIN_500000

第二步:删除zookeeper中的/hbase/table/的某表名称

zkCli.sh 
delete /hbase/table/rr500000_ed2009_dltb_1661w_SPATIAL_IDX_ROUND_ROBIN_500000

—the—end—

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值