
“ Hbase配置HA,后期执行创建表或查看namespace等操作时报错Master is initializing。”
Hbase2.0.2配置HA,Ambari配置较简单,不赘述。
01
—
问题现场
HDP3.1.4安装完毕,配置NameNode HA,再进行HMaster HA配置,Hbase启动正常,但执行创建表或查看namespace等操作时报错Master is initializing。
hbase(main):006:0> list_namespaceNAMESPACEERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializingat org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2977)at org.apache.hadoop.hbase.master.HMaster.getNamespaces(HMaster.java:3273)at org.apache.hadoop.hbase.master.MasterRpcServices.listNamespaceDescriptors(MasterRpcServices.java:1203)at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131)at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304)List all namespaces in hbase. Optional regular expression parameter couldbe used to filter the output. Examples:hbase> list_namespacehbase> list_namespace 'abc.*'Took 9.4228 secondshbase(main):007:0>

02
—
问题排查
a.网上查资料该问题多为时间同步问题,但本案例时间同步正确,无问题。
b.因集群为初始化集群,试图通过ambari将hbase协助重装,但问题依旧存在。
c.故采取清理Hbase数据的方式解决。
03
—
解决方案
清理步骤有二:zookeeper+hdfs同时清理掉hbase的数据;
1.清理zookeeper内的hbase数据,登录zkClient,
[root@dn75 bin]# usr/hdp/3.1.4.0-315/zookeeper/bin/zkCli.shConnecting to localhost:21812020-03-19 20:21:51,039 - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.6-315--1, built on 08/23/2019 05:02 GMT2020-03-19 20:21:51,041 - INFO [main:Environment@100] - Client environment:host.name=dn75.hdp71.unicom2020-03-19 20:21:51,042 - INFO [main:Environment@100] - Client environment:java.version=1.8.0_1412020-03-19 20:21:51,044 - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation2020-03-19 20:21:51,044 - INFO [main:Environment@100] - Client environment:java.home=/usr/local/java/jdk1.8.0_141/jre2020-03-19 20:21:51,044 - INFO [main:Environment@100] - Client environment:java.class.path=/usr/hdp/3.1.4.0-315/zookeeper/bin/../build/classes:/usr/hdp/3.1.4.0-315/zookeeper/bin/../build/lib/*.jar:/usr/hdp/3.1.4.0-315/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/hdp/3.1.4.0-315/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/usr/hdp/3.1.4.0-315/zookeeper/bin/../lib/netty-3.10.5.Final.jar:/usr/hdp/3.1.4.0-315/zookeeper/bin/../lib/log4j-1.2.16.jar:/usr/hdp/3.1.4.0-315/zookeeper/bin/../lib/jline-0.9.94.jar:/usr/hdp/3.1.4.0-315/zookeeper/bin/../zookeeper-3.4.6.3.1.4.0-315.jar:/usr/hdp/3.1.4.0-315/zookeeper/bin/../src/java/lib/*.jar:/usr/hdp/3.1.4.0-315/zookeeper/bin/../conf:.:/usr/local/java/jdk1.8.0_141/lib:/usr/local/java/jdk1.8.0_141/jre/lib:/usr/share/zookeeper/*2020-03-19 20:21:51,045 - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib2020-03-19 20:21:51,045 - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp2020-03-19 20:21:51,045 - INFO [main:Environment@100] - Client environment:java.compiler=<NA>2020-03-19 20:21:51,045 - INFO [main:Environment@100] - Client environment:os.name=Linux2020-03-19 20:21:51,045 - INFO [main:Environment@100] - Client environment:os.arch=amd642020-03-19 20:21:51,045 - INFO [main:Environment@100] - Client environment:os.version=3.10.0-693.el7.x86_642020-03-19 20:21:51,046 - INFO [main:Environment@100] - Client environment:user.name=root2020-03-19 20:21:51,046 - INFO [main:Environment@100] - Client environment:user.home=/root2020-03-19 20:21:51,046 - INFO [main:Environment@100] - Client environment:user.dir=/usr/hdp/3.1.4.0-315/zookeeper/bin2020-03-19 20:21:51,047 - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@5c29bfdWelcome to ZooKeeper!2020-03-19 20:21:51,079 - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1013] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)JLine support is enabled2020-03-19 20:21:51,154 - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@856] - Socket connection established, initiating session, client: 127.0.0.1:51664, server: localhost/127.0.0.1:21812020-03-19 20:21:51,168 - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1273] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x170f2bc38650000, negotiated timeout = 30000WATCHER::WatchedEvent state:SyncConnected type:None path:null[zk: localhost:2181(CONNECTED) 0]#查询zookeeper中hbase数据目录[zk: localhost:2181(CONNECTED) 2] ls[cluster, registry, controller, brokers, zookeeper, infra-solr, yarn-leader-election, hbase-unsecure, hadoop-ha, admin, isr_change_notification, log_dir_event_notification, hiveserver2, controller_epoch, hiveserver2-leader, rmstore, consumers, ambari-metrics-cluster, latest_producer_id_block, config]#删除[zk: localhost:2181(CONNECTED) 3] rmr hbase-unsecure
2.清理HDFS中HBase的数据
[hdfs@dn77 root]$ hadoop fs -ls appsFound 2 itemsdrwxr-xr-x - hdfs hdfs 0 2020-03-19 14:56 /apps/hbasedrwxr-xr-x - spark hdfs 0 2020-03-17 18:26 /apps/spark[hdfs@dn77 root]$[hdfs@dn77 root]$ hadoop fs -rm -r /apps/hbase
3.重启zookeeper
4.重启hadoop(包括HDFS+yarn)
5.重启HBase,验证功能正常!
[hbase@dn75 bin]$ hbase shellSLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/usr/hdp/3.1.4.0-315/phoenix/phoenix-5.0.0.3.1.4.0-315-server.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/usr/hdp/3.1.4.0-315/hadoop/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]HBase ShellUse "help" to get list of supported commands.Use "exit" to quit this interactive shell.For Reference, please visit: http://hbase.apache.org/2.0/book.html#shellVersion 2.0.2.3.1.4.0-315, r, Fri Aug 23 05:15:48 UTC 2019Took 0.0014 secondshbase(main):001:0> create 'guotest1','info'Created table guotest1Took 1.8447 seconds=> Hbase::Table - guotest1hbase(main):002:0>

04
—
问题小结
HBase配置HA较为简单,且不易出错,本次案例排查了NTP时间同步等问题,因为初始化集群,故采取清理hbase数据方式。



文章转载自知否Tech,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




