在启动HBase时遇到的问题
regionserver一直在运行,而master启动之后,过一会自动停止,因为master停止,所以也无法访问hbase管理web页面。
可能的原因:
- 虚拟机的时间不同步
- 防火墙没有关闭
- hbase中的hbase-site.xml文件中的属性值(hbase.rootdir)主机端口不一致
- 缺少配置
解决方法
- 虚拟机时间不同步,虚拟机集群时间不同步导致hbase错误启动,将三者时间更改即可
- 防火墙没有关闭,通过集群互相ping,查看是否能ping通
ping hadoop102
ping hadoop103
ping hadoop104
3. hbase-site.xml中的hbase.rootdir的属性值必须和hadoop的配置文件core-site.xml中的fs.defaultFS属性值要一致
1)在hbase-site.xml中,笔者的配置文件路径为/opt/module/hbase/conf
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop102:8020/hbase</value>
</property>
2)在core-site.xml中,笔者的该文件路径为/opt/module/hadoop/etc/hadoop
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
hadoop默认端口号为8020,若更改,则hbase启动时连接不上hadoop,导致启动失败,将二者改为一致即可
4. 若以上问题均没错,则为以下状况
查看发现以下报错:java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config value of ‘hbase.procedure.store.wal.use.hsync’ to set the desired level of robustness and ensure the config value of ‘hbase.wal.dir’ points to a FileSystem mount that can provide it
1)查看hbase中master的启动日志
笔者的路径为/opt/module/hbase/logs/hbase-at-master-hadoop102.log
2)在hbase-site.xml增加配置
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
将hbase-site.xml同步到 虚拟机集群即可