关于hbase启动后的问题描述:
hmaster总是掉,并且hregionserver在使用stop-hbase.sh后关掉,总是要用kill杀掉:
并且hbase shell进入后输入任何命令都报错。
有时候报错为:znode==0,有时侯报错为server is not running...........
(1)尝试关掉hbase再开启,仍然不行
(2)网络上说要等一会,因为hbase初始化需要时间,第一次我这么试了,但是第二天使用时又和原先一样输入什么都报错。
(3)昨天看到一个博主说要重新初始化namenode
所以我:
停止所有服务,只看到有jps
然后把hadoop下的tmp删除后,又重新mkdir tmp/hdfs以及nn、dn、jn
最后对namenode节点进行初始化:hdfs namenode -format 依次重启hadoop集群、zk集群、Hbase集群 到此,问题解决。
(4)今天再打开hbase shell 进入后发现又开始报错
在hdfs-site.xml最后加入:(data.zk路径是zookeeper安装路径)
<property>
<name>hbase.zookeeper.property.datadir</name>
<value>/usr/local/src/zookeeper/data.zk</value>
</property>
到此,问题依然没有解决!
(5)我翻阅了一堆资料。终于!!!
在一位博主的文章中发现了我高可用集群一个非常小的点!!!
就是搭建完主备切换后,我会下意识在查看master和slave1节点的状态后,杀死master节点的namenode,以此来判断slave1是否会变为active,所以我再次打开我master节点的50070端口号,发现状态是standby。所以只要将master节点变为active就行!
方法:
(1)直接kill -9 +进程号:(stop-all.sh 不一定能杀死所有进程)
关闭所有任务,只留下jps
(2)3台节点打开zookeeper:zkServer.sh start
(3)3台节点jps查看:QuorumPeerMain
(4)3台节点打开journalnode:hadoop-daemon.sh start journalnode
jps查看:journalnode
(5)master节点:start-all.sh
3台节点查看jps:主要看master节点有namenode 然后slave1,2没有namendoe
然后在slave1节点开启namenode和resourcemanager:
hadoop-daemon.sh start namenode
yarn-daemon.sh start resourcemanager
jps查看slave1节点发现:有namenode和resourcemanager
(注意,如果发现slave1的namenode掉了,极有可能是没有做主备切换,也就是没有将/usr/local/src/hadoop/tmp/hdfs/nn分发给slave1)
然后分别查看master、slave1节点50070端口,发现master节点是active,slave1节点是standby。
然后杀死master节点的namenode,再次打开master节点的50070端口,发现是打不开的。此时查看slave1节点端口50070,发现变成了active。至此,高可用集群搭建完成。
最最重要的一点:
将master节点namenode打开,然后杀死slave1的namenode,发现master节点50070端口号1变成了active。再次打开slave1节点namenode,发现其50070端口号变成了standby。然后启动hbase,再进入hbase shell发现list不报错了!!!!