不到断气不罢休 发表于 3 天前

HBase使用create创建表时报错ERROR: KeeperErrorCode = NoNode for /hbase/

场景模拟

1. 正常情况

模拟ERROR: KeeperErrorCode = NoNode for /hbase/master错误场景。
正常情况下创建hbase表如下图所示。
https://i-blog.csdnimg.cn/direct/f10a7ced8c714cfb87808164f486af5c.png
2. 删除hbase集群的zk节点

进入zookeeper客户端。
zkCli.sh

https://i-blog.csdnimg.cn/direct/0ba13b53b9824674bd8a5841dead0c0d.png
删除hbase的zk节点。
deleteall /hbase

https://i-blog.csdnimg.cn/direct/7610631c369840d68319ef13f8b12ef8.png
退出zookeeper客户端。
quit

https://i-blog.csdnimg.cn/direct/e9c1481c9b654bc9a00664c996ef676c.png
3. 重启hbase集群

3.1 单独停止 master 和 regionserver

在虚拟机Hadoop1实验stop-hbase.sh命令不能成功停止hbase集群,则在虚拟机Hadoop1实验如下命令单独停止master。
hbase-daemon.sh stop master

https://i-blog.csdnimg.cn/direct/8d54de6686a44a27b729d05dd9ce8b90.png
在虚拟机Hadoop2和Hadoop3实验如下命令单独停止regionserver。
hbase-daemon.sh stop regionserver

https://i-blog.csdnimg.cn/direct/7ffaa83e2608414ab3b174296d476430.png
https://i-blog.csdnimg.cn/direct/4a5a4fe01b624175910e9fa6371c5fd2.png
3.2 启动hbase集群

在虚拟机Hadoop1实验如下命令启动hbase集群。
start-hbase.sh

进入hbase客户端。
hbase shell

4. 再次创建表

再次创建表时,可以看到使用create创建表时报错ERROR: KeeperErrorCode = NoNode for /hbase/master。
https://i-blog.csdnimg.cn/direct/148668726f85433f8ebe758db680b568.png
原因分析

通过上面的景象模拟,我们可以看到报错的原因在于zookeeper中出现问题,可能是zookeeper中的/hbase/master被删除,大概是在hbase集群启动之后重新安装了zookeeper,导致zookeeper中的/hbase/master节点数据异常。
解决方案

1. 停止hbase对应服务历程

1.1 单独停止 master 和 regionserver

在虚拟机Hadoop1实验如下命令单独停止master。
hbase-daemon.sh stop master

https://i-blog.csdnimg.cn/direct/8d54de6686a44a27b729d05dd9ce8b90.png
在虚拟机Hadoop2和Hadoop3实验如下命令单独停止regionserver。
hbase-daemon.sh stop regionserver

https://i-blog.csdnimg.cn/direct/7ffaa83e2608414ab3b174296d476430.png
https://i-blog.csdnimg.cn/direct/4a5a4fe01b624175910e9fa6371c5fd2.png
2. 删除hdfs上hbase生成的数据目次

hdfs dfs -rm -r /hbase
https://i-blog.csdnimg.cn/direct/1949b74cda644c0e96a685ced4bc5b69.png
3. 进入zookeeper客户端,删除对应hbase的节点

进入zookeeper客户端。
zkCli.sh

https://i-blog.csdnimg.cn/direct/0ba13b53b9824674bd8a5841dead0c0d.png
删除hbase的zk节点。
deleteall /hbase

https://i-blog.csdnimg.cn/direct/7610631c369840d68319ef13f8b12ef8.png
退出zookeeper客户端。
quit

https://i-blog.csdnimg.cn/direct/e9c1481c9b654bc9a00664c996ef676c.png
4. 删除hbase在Linux本地的暂时数据目次

在虚拟机Hadoop1实验如下命令删除hbase在Linux本地的暂时数据目次。
rm -rf /export/data/hbase2.4.18
5. 重新启动hbase集群

在虚拟机Hadoop1实验如下命令重新启动hbase集群。
start-hbase.sh

进入hbase客户端。
hbase shell

再次创建表,可以看到创建成功。
https://i-blog.csdnimg.cn/direct/2dafb167ca4d4a6d867e1548c65835d1.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: HBase使用create创建表时报错ERROR: KeeperErrorCode = NoNode for /hbase/