1.当我们需要用到hbase shell的时候发现用不了,总是报错,jps一看,前一秒还有的HMaster又没有了,怎么办呢?今天让我们来看看如何解决这些问题吧!
我们先把虚拟机连上X-Shell,接着start-all.sh把进程都打开
这个时候先别急着启动hbase,我们先启动zookeeper(所有节点都开)
代码:zkServer.sh start
然后在主节点(有的人是只在一台上安装了hbase,在安装的那台操作)查看zookeeper的状态
代码:zkServer.sh status
这时我们会发现主节点(master,已安装hbase)的zookeeper状态是follower,而子节点(slave1,未安装hbase)的zookeeper状态是leader
倒反天罡了属于是,得把leader给主节点master才对,而节点的leader是靠选举来的
所以我们先把leader节点给停掉
代码:zkServer.sh stop
然后查看剩下两个节点的zookeeper状态(提示,这里leader选举至少得有两台节点开着zookeeper)
有的人此时的主节点已经选举好了leader,而有的人leader跑到了slave2上,接着停掉然后把slave1上打开zookeeper就好,知道主节点master成为leader为止
然后我们去网页端看一下主节点的状态
master节点是standby状态,那也会导致启动hbase失败,,我们把它改成active状态
在X-Shell的master主节点里输入
代码1:hdfs haadmin -transitionToStandby --forcemanual slave1
这里输入Y
运行完成之后接着输入
代码:hdfs haadmin -transitionToActive --forcemanual master
这里一样的输入Y
然后在网页端看一下standby状态是否变为了active状态
之后启动HMaster,进到放hbase的bin目录下
代码:cd /usr/local/src/hbase/bin (根据自己的路径更改)
接着打开hbase
代码:./start-hbase.sh
然后jps看一下HMster的状态
没问题之后就可以启动hbase shell了
启动之后输入list查看是否能正常使用
这样就表示没问题啦,可以正常使用,也不用担心HMster进程总掉啦