看到这篇文章的你,一定已经安好HBase了,但是在启动hbase时,是不是有各种各样问题呢,那么快看看下面这篇文章有没有帮到你。

一、无法进入hbase shell命令或会报错,或无法连接zookeeper

在/hbase/bin目录下无法进入hbase shell命令或会报错,或者会显示无法连接到zookeeper
在这里插入图片描述
原因:查看启动hbase后的jps,发现可运行的节点数目不对且缺少有关zookeeper的内容。原因可能有如下几种:1.配置文件有误:不全或者有误。2.Hadoop版本与hbase的版本不兼容。
在这里插入图片描述

解决方法:
1.查看相关的Hadoop、hbase配置文件,看是否有文件的配置不对。
2.对比官网上的Hadoop版本与hbase版本,看是否兼容。
我原先使用的Hadoop2.6.0版本,发现在官网上没有与之对应的hbase的版本,重新安装Hadoop及hbase,这次安装的Hadoop版本:Hadoop 2.10.1,hbase是hbase2.3.3,是对应兼容的。
对比官网上给出的参考文档,我发现在配置habse时,我对于zookeeper的理解不到位。Hadoop、hbase、zookeeper三者的安装方式应该时一致的,即都是在虚拟机上进行伪分布的安装,因此配置文件时,应该注意有关设置的一致性。具体的设置见https://blog.csdn.net/sun7_9/article/details/121220774?utm_source=app&app_version=4.18.0&code=app_1562916241&uLinkId=usr1mkqgl919blen.

二、 在启动hbase时,介包冲突发生

在启动hbase时,会有介包冲突发生,截图如下:
在这里插入图片描述

解决方法:根据图片上给出的发生介包的位置,删除有关hbase的有关文件,再次启动hbase,就不会再提示有介包冲突了。
注意:删除的一定是hbase下的文件,绝对不可以是Hadoop下的,一旦删除Hadoop下的文件,将会对Hadoop造成不可逆的损伤。

三、在进行hbase shell 命令时,比如在创建表时,会报错。

在进行hbase shell 命令时,比如在创建表时,会报错,如下:
在这里插入图片描述

原因:hadoop集群各节点的时间不一致造成的,同步之后有一个节点的时间竟然差了27437秒,这必然导致hbase数据库的shell运行失败。
解决方法:
(1)把时间同步,执行如下命令
在hbase/bin目录下运行shell命令:

ntpdate  0.cn.pool.ntp.org   

(2)先停止HBase运行,再启动HBase运行,命令如下

cd /opt/modules/hbase
bin/stop-hbase.sh
bin/start-hbase.sh

ps:我在重启过程中遇到很多“regionserver running as process 1*****. Stop it first.”这样的问题,网上说直接kill,再重启还是会有很多这样的问题,这时我就直接执行“bin/stop-hbase.sh”命令停止HBase运行再重启“bin/start-hbase.sh”就解决了!
(3)进入shell界面,执行“list”查表命令看是否成功

bin/hbase shell
list

以上是我所遇到的及一些朋友反馈的问题,再告诉大家一个小秘密:若我们在运行程序时出现错误,HBase的日志里面也告诉我们报错的原因了,我们可以查看日志,找到报错的根本原因。此篇文章会持续更新,欢迎大家在评论区互动。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐