Hbase ERROR: Can‘t get master address from ZooKeeper; znode data == null 解决方案
最近在给新机器配置hbase集群时候出现个问题。错误信息为:ERROR: Can’t get master address from ZooKeeper; znode data == null前期探索判断zookeeper问题根据错误信息描述,潜意识认为是zookeeper集群没有起来,就跑到集群中看错误信息,发现一个leader两个follwer正常运行。初步排除集群问题,然后根据网上的一些错误
·
最近在给新机器配置hbase集群时候出现个问题。错误信息为:
ERROR: Can’t get master address from ZooKeeper; znode data == null
前期探索
- 判断zookeeper问题
根据错误信息描述,潜意识认为是zookeeper集群没有起来,就跑到集群中看错误信息,发现一个leader两个follwer正常运行。初步排除集群问题,然后根据网上的一些错误描述说是节点数据问题,需要删除data目录下的内容(除myid文件)然后重启,试之~ 无果。 - hbase启动问题
多次重启hbase和zookeeper集群,问题依旧。Can’t get master address from ZooKeeper; znode data == null - 找日志
对于这种没有头绪的情况,一般都是去分析日志,这种中间件一般都会在安装根目录下存在log文件夹,然后我们可以发现很多日志文件,就找个最近更新的吧,然后tail 一下发现了错误信息,问题如下:
根据错误信息分析一下,说是找不到8020端口,这里我们知道8020是hadoop下hdfs的相关端口于是查询hdfs运行状况,发现正常运行。
解决方案如下:
然后初步判断是配置出问题了,所以去检查配置文件,habse的配置文件相对于hadoop配置文件少之又少,我们可以看到conf下的hbase-site.yml的
<name>hbase.rootdir</name>
<value>hdfs://hadoop-master/hbase-new</value>
</property>
和hadoop配置core-site.yml比对一番
<property>
<name> fs.default.name </name>
<value>hdfs://hadoop-master:9000</value>
</property>
可以看到明显少写了端口,结合网上的一些情况最终初步判断是这个原因,于是修改hbase-site.yml的部分内容为:
<name>hbase.rootdir</name>
<value>hdfs://hadoop-master:9000/hbase-new</value>
</property>
然后重启。如果配置环境变量了可以在任意目录下输入 hase shell,然后就会进入到hbase控制台,我们通过一个简单的命令查看所有表
list,结果如下:
可以发现不在报错,把所有表都列出来了,这里由于我是新装的,所以没有,我们可以手动创建一个表
create 'userinfo' 'family' 'work';
list;
可以发现创建成功。
总结:
- 检查zk集群是否启动成功
- 尝试删除一下zk data目录下的数据(除myid文件)然后重启
- 查看错误日志
- 根据日志进一步定位问题
更多推荐
已为社区贡献4条内容
所有评论(0)