HBase启动后HMaster自动消失<hostname>:9000 failed on connection exception: java.net.ConnectException: 拒绝连接
在做大数据项目时搭建HBase集群,配置好文件后启动集群,HMaster进程两秒后自动消失。HRegionServer还在。本质上就是HMaster没启动起来。于是查看logs文件夹,发现报错:查询网上资料后发现就是两种思路一种是:防火墙没有关闭或者开启了没有开放9000端口导致的这种问题的朋友可以先检查一下防火墙另一种是9000端口已被占用。但是我并不是这两种问题。启动HBase要满足的是:hd
背景
在做大数据项目时搭建HBase集群,配置好文件后启动集群,HMaster进程两秒后自动消失。HRegionServer还在。
本质上就是HMaster没启动起来。于是查看logs文件夹,发现报错:
:9000 failed on connection exception:
java.net.ConnectException: 拒绝连接
查询网上资料后发现就是两种思路
一种是:防火墙没有关闭或者开启了没有开放9000端口导致的
这种问题的朋友可以先检查一下防火墙
> sudo service iptables status
> sudo service iptables stop(立即生效,但重启后会失效)
> sudo chkconfig iptables off(永久生效)
另一种是9000端口已被占用。
但是我并不是这两种问题。启动HBase要满足的是:hdfs,yarn,zookeeper(如果在hbase-env.sh中管理zookeeper那一项选择了false)都已经启动,以及
防火墙关闭(或开放指定端口)应该就没啥问题。
解决
在配置文件hbase-site.xml
中hbase.rootdir这一项需要和core-site.xml
中的fs.defaultFS
的地址保持一致,因为这一步是去hdfs上创建hbase的指定文件夹,8020是namenode节点active状态下的端口号,9000端口是fileSystem默认的端口号。我的core-site.xml
里还是写的8020端口,但是hbase-site.xml
就写成了9000端口,就不太行了,要么就都8020,要么就都9000。
顺便贴一下各个端口区别的学习资料:
hdfs各个端口的区别:https://blog.csdn.net/wyqwilliam/article/details/81592374
当我把后者也修改成8020端口后就好了。
另一个问题
但是HMaster依然启动后2秒就挂了,这次再次查看日志,起码不是9000端口的问题了,引入了新的问题:
master.HMaster: Failed to become active master 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.
解决方案:
在hbase-site.xml
中添加
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
更多推荐
所有评论(0)