四种方法解决 -- HBase启动shell报错--ERROR: Can't get master address from ZooKeeper; znode data == null

1.报错如下:

hbase(main):001:0> list

ERROR: Can't get master address from ZooKeeper; znode data == null

Here is some help for this command:
List all tables in hbase. Optional regular expression parameter could
be used to filter the output. Examples:

  hbase> list
  hbase> list 'abc.*'
  hbase> list 'ns:abc.*'
  hbase> list 'ns:.*'

2. 解决方法 – 四种

注:四种方法的解决范围依次增加,恢复的可能性依次增加,可以依次尝试。

  1. 关闭hbase,然后重启(最简单的尝试)

  2. 查看/tmp目录权限,并将其拥有者修改为 hadoop:

sudo chown -R hadoop /tmp

四种方法解决 -- HBase启动shell报错--ERROR: Can't get master address from ZooKeeper; znode data == null_第1张图片
关闭 hbase后,重启启动。

  1. 检查 hbase-site.xml配置
    主要配置:hbase.zookeeper.property.dataDir,指定写入zookeeper信息的目录
    博主的配置如下:

    
        hbase.rootdir
        hdfs://master:9000/hbase
    
    
        hbase.zookeeper.property.dataDir
        /home/hadoop/zookeeper
    
    
        hbase.cluster.distributed
        true
    
    
        hbase.master.maxclockskew
        30000
    
    
        hbase.master
        hdfs://master:6000
    
    
        hbase.zookeeper.quorum
        master,slave1,slave2
    

检查无误后

  • 删除 HDFS上的 /hbase目录
  • 删除 master、slave节点 /home/hadoop/zookeeper 目录
  • 删除 master、slave节点 hbase安装目录下 logs目录下的日志文件(因为上面操作为清空所有的Hbase启动信息,以前的日志文件几乎没有什么用处,当然这是学习情况下,工作中还是做好备份)

上述三步做完后,最好重启所有机器,重启后开启HDFS,开启HBase。

  1. 格式化 HDFS(实在不能解决问题,但也是最不推荐的方法)

上述所有操作皆为博主HBase报错后,执行相应操作后成功解决问题(主要是使用第2种方法),对于遇到相同问题的,可以尝试该解决办法,但不能保证一定成功。

你可能感兴趣的:(HBase,Hadoop生态圈学习)