自学内容网 自学内容网

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

场景模拟

1. 正常情况

模拟ERROR: KeeperErrorCode = NoNode for /hbase/master错误场景。
正常情况下创建hbase表如下图所示。
在这里插入图片描述

2. 删除hbase集群的zk节点

进入zookeeper客户端。

zkCli.sh

在这里插入图片描述

删除hbase的zk节点。

deleteall /hbase

在这里插入图片描述

退出zookeeper客户端。

quit

在这里插入图片描述

3. 重启hbase集群

3.1 单独停止 master 和 regionserver

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

hbase-daemon.sh stop master

在这里插入图片描述

虚拟机Hadoop2和Hadoop3执行如下命令单独停止regionserver。

hbase-daemon.sh stop regionserver

在这里插入图片描述
在这里插入图片描述

3.2 启动hbase集群

虚拟机Hadoop1执行如下命令启动hbase集群。

start-hbase.sh

进入hbase客户端。

hbase shell

4. 再次创建表

再次创建表时,可以看到使用create创建表时报错ERROR: KeeperErrorCode = NoNode for /hbase/master。

在这里插入图片描述


原因分析

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


解决方案

1. 停止hbase对应服务进程

1.1 单独停止 master 和 regionserver

虚拟机Hadoop1执行如下命令单独停止master。

hbase-daemon.sh stop master

在这里插入图片描述

虚拟机Hadoop2和Hadoop3执行如下命令单独停止regionserver。

hbase-daemon.sh stop regionserver

在这里插入图片描述
在这里插入图片描述

2. 删除hdfs上hbase生成的数据目录

hdfs dfs -rm -r /hbase

在这里插入图片描述

3. 进入zookeeper客户端,删除对应hbase的节点

进入zookeeper客户端。

zkCli.sh

在这里插入图片描述

删除hbase的zk节点。

deleteall /hbase

在这里插入图片描述

退出zookeeper客户端。

quit

在这里插入图片描述

4. 删除hbase在Linux本地的临时数据目录

虚拟机Hadoop1执行如下命令删除hbase在Linux本地的临时数据目录。

rm -rf /export/data/hbase2.4.18

5. 重新启动hbase集群

虚拟机Hadoop1执行如下命令重新启动hbase集群。

start-hbase.sh

进入hbase客户端。

hbase shell

再次创建表,可以看到创建成功。

在这里插入图片描述


原文地址:https://blog.csdn.net/zcs2312852665/article/details/143664621

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!