org.apache.hadoop.hbase.pleseHoldException:主机正在初始化

7vhp5slm  于 2021-06-04  发布在  Hadoop
关注(0)|答案(4)|浏览(515)

我正在尝试设置hbase的多节点集群。当我在slave上做jps时

5780 Jps
5558 HQuorumPeer
5684 HRegionServer
1963 DataNode
2093 TaskTracker

同样地,我得到了师父

4254 SecondaryNameNode
15226 Jps
14982 HMaster
3907 NameNode
14921 HQuorumPeer
4340 JobTracker

一切正常。但当我尝试在hbase shell上创建表时。它给出了一个错误

ERROR: org.apache.hadoop.hbase.PleaseHoldException: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

我的从属服务器的regionserver日志(运行region server的位置):

2013-06-11 13:09:53,119 INFO org.apache.hadoop.hbase.regionserver.HRegionServer: Attempting connect to Master server at localhost,60000,137093$
2013-06-11 13:10:53,190 WARN org.apache.hadoop.hbase.regionserver.HRegionServer: Unable to connect to master. Retrying. Error was:
org.apache.hadoop.hbase.ipc.HBaseClient$FailedServerException: This server is in the failed servers list: localhost/127.0.0.1:60000
        at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:425)
        at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:1124)
        at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:974)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:86)
        at $Proxy8.getProtocolVersion(Unknown Source)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:138)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:208)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.getMaster(HRegionServer.java:2037)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:2083)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:744)
        at java.lang.Thread.run(Thread.java:722)
2013-06-11 13:10:53,391 INFO org.apache.hadoop.hbase.regionserver.HRegionServer: Attempting connect to Master server at localhost,60000,137093$

仅供参考,我还处理了主服务器和从服务器上的/etc/hosts文件。

127.0.0.1       localhost
127.0.0.1       naresh-PC

我再次对naresh-pc的/etc/hosts文件127.0.1.1进行了修改,但仍然出现了这个错误

2013-06-11 14:51:17,781 INFO org.apache.hadoop.hbase.regionserver.HRegionServer: Attempting connect to Master server at naresh-pc,60000,137094$
2013-06-11 14:52:17,817 WARN org.apache.hadoop.hbase.regionserver.HRegionServer: Unable to connect to master. Retrying. Error was:
java.net.UnknownHostException: unknown host: naresh-pc
        at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.<init>(HBaseClient.java:276)
        at org.apache.hadoop.hbase.ipc.HBaseClient.createConnection(HBaseClient.java:255)
        at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:1111)
        at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:974)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:86)
        at $Proxy8.getProtocolVersion(Unknown Source)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:138)
        at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:208)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.getMaster(HRegionServer.java:2037)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:2083)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:744)
        at java.lang.Thread.run(Thread.java:722)
vxbzzdmp

vxbzzdmp1#

尝试清除zookeeper中的所有状态。
停止Zookeeper
擦除zookeeper数据目录
重新启动它
我得到了同样的问题,并遵循这种方法,它工作得很好。

tyky79it

tyky79it2#

我也有同样的问题,完全分布式的hbase集群配置如下。
主节点(节点a)
备份主机($hbase\u home/conf/backup masters)(node-b和node-c)
3台复制服务器(节点a、节点b和节点c)
rca:在群集启动时尝试启动备份主机节点。
解决方案i通过使所有hbase节点中的$hbase\u home/conf/backup masters为空来删除备份主机。
所以我让一个集群在没有备份主机的情况下运行。
我想知道主节点和主节点是否不能同时作为RegionServer工作?但是hbase文档却不这么说。

qxgroojn

qxgroojn3#

您需要将从属节点上的配置更改为指向主节点。它当前指向本地主机,而未连接到实际主机:
“org.apache.hadoop.hbase.ipc.hbaseclient$failedserverexception:此服务器位于failedservers列表中:localhost/127.0.0.1:60000 at”

ccgok5k5

ccgok5k54#

我在docker内部托管我自己的集群。我的案子是这样的。我在hbase日志文件中查找错误,发现“master给我们传递了一个不同的主机名”

`[root@docker-iop bin]# grep ERROR /var/log/hbase/hbase-hbase-regionserver-bi-mgmt01.local.log
2016-10-06 00:05:29,816 ERROR [regionserver/bi-mgmt01.local/111.11.2.3:16020] regionserver.HRegionServer: Master passed us a different hostname to use; was=my-host-name, but now=111.22.33.444'

我在hosts文件中将我的主机名Map到111.22.333.444,重新启动hbase,它就工作了。

相关问题