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

org.apache.hadoop.hbase.PleaseHoldException:主机正在初始化,hadoop,hbase,hive,Hadoop,Hbase,Hive,我正在尝试设置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外壳上创建表时

我正在尝试设置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外壳上创建表时。它给出了一个错误

ERROR: org.apache.hadoop.hbase.PleaseHoldException: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
我的从属服务器的regionserver日志(区域服务器正在运行的位置):

仅供参考,我还处理了主服务器和从服务器上的/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)
2013-06-11 14:51:17781 INFO org.apache.hadoop.hbase.regionserver.HRegionServer:正在尝试连接到naresh pc上的主服务器,60000137094$
2013-06-11 14:52:17817警告org.apache.hadoop.hbase.regionserver.HRegionServer:无法连接到主服务器。重试。错误是:
java.net.UnknownHostException:未知主机:naresh pc
位于org.apache.hadoop.hbase.ipc.HBaseClient$Connection.(HBaseClient.java:276)
位于org.apache.hadoop.hbase.ipc.HBaseClient.createConnection(HBaseClient.java:255)
位于org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:1111)
位于org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:974)
位于org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:86)
位于$Proxy8.getProtocolVersion(未知来源)
位于org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:138)
位于org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:208)
位于org.apache.hadoop.hbase.regionserver.HRegionServer.getMaster(HRegionServer.java:2037)
位于org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:2083)
位于org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:744)
运行(Thread.java:722)

您需要将从属节点上的配置更改为指向主节点。它当前指向本地主机,而未连接到实际主机:

“org.apache.hadoop.hbase.ipc.HBaseClient$FailedServerException:这个 服务器位于故障服务器列表中:localhost/127.0.0.1:60000 at“


尝试清除Zookeeper中的所有状态

  • 停止Zookeeper
  • 擦除Zookeeper数据目录
  • 启动Zookeeper

我也遇到了同样的问题,并采用了这种方法,效果很好。

我正在Docker内部托管我自己的集群。这是在我的情况下起作用的。我在HBase日志文件中搜索错误,发现“Master为我们传递了一个不同的主机名以供使用”


我在我的主机文件中将主机名映射到111.22.333.444,重新启动了HBase,它成功了。

我也遇到了同样的问题,完全分布式的HBase集群的配置如下

  • 主节点(节点A)
  • 备份主机($HBASE_HOME/conf/Backup Masters)(节点B和节点C)
  • 3台复制服务器(节点A、节点B和节点C)
  • 区域协调机构: 群集启动时,尝试启动备份主机节点

    解决方案 我通过在所有HBASE节点中使$HBASE_HOME/conf/backup masters为空来删除备份主机

    因此,我有一个集群在没有备份主机的情况下运行


    我想知道主节点和主节点是否也必须作为区域服务器运行?HBase文档则相反。

    此外,我能够在主设备到从设备和从设备到主设备之间进行无密码ssh。我确实提供了主设备的ip,但仍然遇到同样的问题。org.apache.hadoop.hbase.ipc.HBaseClient$FailedServerException:此服务器位于故障服务器列表中:主机:60000在设置
    hbase.master ip hmaster:60000
    in
    /usr/lib/hbase/conf/hbase site.xml后,所有从属节点上的问题都已解决。谢谢你的回答。你能解释一下如何在Ubuntu上执行这些步骤吗。你能列出我们需要遵循的命令吗?今天我遇到了这个问题,擦除zk数据目录也对我有用。Nishu,您的hbase-site.xml文件应该有一个hbase.zookeeper.property.dataDir属性,告诉您该路径的位置。在清除hbase之前,只需确保hbase已关闭。只需使用命令
    rmr/hbase
    通过zkCli.sh删除ZooKeeper中的znode即可。无需删除整个ZooKeeper目录。确保删除znode期间未运行HBase主机。另请参阅、和
    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)
    
    `[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'