在hbase shell中出现error: KeeperErrorCode = NoNode for /hbase/master

搭建完集群之后,在hbase shell中查看表,出现error: KeeperErrorCode = NoNode for /hbase/master错误

排除解决:

1.查看jps里面的进程,hbase的HMaster和hadoop的datanode挂掉了

2.查看hbase的log,信息如下:org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /hbase/.tmp/hbase.version could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node(s) are excluded in this operation.

之间信息省略。。。。。。。

     ERROR [main] master.HMasterCommandLine: Master exiting
     java.lang.RuntimeException: HMaster Aborted


3.通过hbase上述日志,可以定位到hadoop的DataNode挂掉导致(因为我是单机部署,就一个)

4.查看hadoop的DataNode日志,信息如下:WARN org.apache.hadoop.hdfs.server.common.Storage: Failed to add storage directory [DISK]file:/root/bigdata/hadoop-3.1.2/dfs_datanode_data_dir
java.io.IOException: Incompatible clusterIDs in /root/bigdata/hadoop-3.1.2/dfs_datanode_data_dir: namenode clusterID = CID-08e3be8c-7066-44f7-b144-f9d500fa7983; datanode clusterID = CID-a357d3b5-1f83-4332-8d89-7f45303163a4

。。。。。。。

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid e829b7ac-b0a4-4d2c-9bcf-813d369764ce) service to localhost/127.0.0.1:9000. Exiting. 
java.io.IOException: All specified directories have failed to load.

省略。。。。

5.定位到Namenode上namespaceID与datanode上namespaceID不一致,问题原因:每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,所以造成namenode节点上的namespaceID与datanode节点上的namespaceID不一致,从而启动失败。

6.解决:第一种解决方式》直接删除hadoop中的hdfs-site.xml配置文件中的dfs.datanode.data.dir和dfs.namenode.name.dir文件夹下的所有文件,删除core-site.xml配置文件中hadoop.tmp.dir的文件夹下的所有文件,然后格式化:hadoop namenode -format;启动hadoop。

              第二种解决方式》将name/current下的VERSION中的clusterID复制到data/current下的VERSION中,覆盖掉原来的clusterID

让两个保持一致。

我本身是单机自己玩,所以直接第一种,删除所有重启。但是如果hdfs你有重要数据一定要选择第二种,不然数据会清空。

7.删除zookeeper中zoo.cfg配置文件中的dataDir文件中除了myid之外的其他文件都删掉,然后删掉zk中hbase的目录:启动zookeeper的shell:./zkCli.sh,执行deleteall /hbase。此步骤也不是必须【根据你实际的问题,有的时候需要此方式】。

8.然后启动zk和hbase,进入hbase shell中,执行相关命令,正常使用。

 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值