Hbase在启动后Hmaster和HRegionserver会自动关闭的问题解决

        起因是大学课程里要求在hadoop上安装一个hbase来学习hbase的数据怎么导入,结果在安装完成之后发现依照顺序启动hadoop与hbase之后,过一段时间使用jps查看节点发现Hmaster与HRegionserver会自动关闭导致无法正常启动,网上搜寻一圈答案无果,后来自行解决发文记录一下。

        本文中所使用的Hadoop版本为3.1.3,Hbase版本为2.2.2,Hadoop与Hbase均采用了伪分布式安装。安装参照了厦门大学林子雨教授的教程:大数据技术原理与应用(第3版) 第2章 大数据处理架构Hadoop 实践指南_厦大数据库实验室博客 (xmu.edu.cn)

        报错信息如下:

2023-12-01 19:36:16,074 INFO  [main-SendThread(localhost:2181)] zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
2023-12-01 19:36:16,074 WARN  [main-SendThread(localhost:2181)] zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:715)
	at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)

 可以看得出来是Hbase连接到Zookeeper失败了。

         先说我自己的解决途径是切换到外部的Zookeeper。

        如果只安装了Hadoop和Hbase的话,你的Hbase大概率依赖的是它自己自带的Zookeeper,正常来说Hbase需要启动要连接到Zookeeper这项服务才行,连接不上就会导致Hbase无法正常启动,到我们这里反映出来就是Hmaster和HRegionserver节点会自行消失,所以下载一个外部的Zookeeper并且让你的Hbase去连接,问题就得以解决。

        下载外部的Zookeeper:

        我使用的是Hadoop3.1.3与Hbase2.2.2,查询兼容发现可以使用Zookeeper3.9.1,下载到虚拟机之后解压缩并且改名字之后进入它的conf目录修改zoo_sample.cfg为zoo.cfg,然后找到其中的datadir行将其修改为合适的路径即可。

        修改HBase的启动项:

        进入自己的Hbase目录下的conf/hbase-env.sh,寻找export HBASE_MANAGES_ZK,将它的值改为False。

        启动:

        原来的启动顺序为先启动Hadoop再启动Hbase;现在变为启动Hadoop,启动Zookeeper,启动Hbase。

        zookeeper启动是在其自己的目录下执行bin/zkServer.sh start

        关闭就把start改成stop就好。

按顺序启动之后再查看jps

​
hadoop@hadoop-virtual-machine:/usr/local/hbase$ jps
4496 HMaster
4577 HRegionServer
3173 SecondaryNameNode
4843 Jps
4348 QuorumPeerMain
2924 DataNode
2766 NameNode

​

        问题解决

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值