【问题标题】:org.apache.hadoop.hbase.PleaseHoldException: Master is initializingorg.apache.hadoop.hbase.PleaseHoldException: Master 正在初始化
【发布时间】:2013-06-06 23:58:09
【问题描述】:

我正在尝试设置 Hbase 的多节点集群。当我在奴隶上做 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

我的从属服务器的区域服务器日志(运行区域服务器的位置):

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

我再次将 /etc/hosts 文件 127.0.1.1 更改为 naresh-PC。但是还是出现这个错误

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)

【问题讨论】:

  • 另外,我能够从主机到从机和从机到主机进行无密码 ssh。

标签: hadoop hbase hive


【解决方案1】:

您需要更改从节点上的配置以指向主节点。它当前指向 localhost 并没有连接到实际的 master:

"org.apache.hadoop.hbase.ipc.HBaseClient$FailedServerException: 这个 服务器在失败的服务器列表中:localhost/127.0.0.1:60000 at "

【讨论】:

  • 好吧,我确实给了主人的 ip,但仍然遇到同样的问题。 org.apache.hadoop.hbase.ipc.HBaseClient$FailedServerException:此服务器在故障服务器列表中:master:60000 at
  • 在所有从节点上将&lt;property&gt; &lt;name&gt;hbase.master&lt;/name&gt; &lt;value&gt;ip-hmaster:60000&lt;/value&gt; &lt;/property&gt; 设置为/usr/lib/hbase/conf/hbase-site.xml 后,问题就解决了。谢谢你的回答。
【解决方案2】:

尝试清除 Zookeeper 中的所有状态。

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

我遇到了同样的问题并遵循了这种方法并且效果很好。

【讨论】:

  • 您能否解释一下如何在 Ubuntu 上执行这些步骤。你能列出我们需要遵循的命令吗?
  • 今天碰到这个,擦除 zk 数据目录也对我有用。 Nishu,你的 hbase-site.xml 文件应该有一个 hbase.zookeeper.property.dataDir 属性来告诉这个路径在哪里。只需确保 hbase 已关闭,然后再清除即可。
  • 只需通过 zkCli.sh 使用命令rmr /hbase 删除 ZooKeeper 中的/hbase znode 就足够了。无需删除整个 ZooKeeper 目录。确保在 znode 删除期间 HBase Masters 没有运行。
【解决方案3】:

我在 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 文件中将 my-host-name 映射到 111.22.333.444,重新启动 HBase 并且它工作了。

【解决方案4】:

我在使用以下配置的完全分布式 hbase 集群时也遇到了同样的问题。

  1. 主节点(节点-A)
  2. 备份主机 ($HBASE_HOME/conf/backup-masters)(节点 B 和节点 C)
  3. 3 台复制服务器(节点 A、节点 B 和节点 C)

RCA: 集群启动时已尝试启动备份主节点。

解决方案 我通过将所有 hbase 节点中的 $HBASE_HOME/conf/backup-masters 设为空来删除了备份主节点。

所以我有一个集群在没有备份主机的情况下运行。

我想知道主节点和主节点是否不能同时充当区域服务器?但 HBase 文档另有说明。

【讨论】:

    【解决方案5】:

    我遇到了同样的问题,找不到任何东西,原来我是从 Hbase 文档 (https://hbase.apache.org/book.html#shell_exercises) 复制粘贴。我相信其中的某些字符可能会造成错误,因此请尝试手动输入:

    create 'test', 'cf'

    【讨论】:

      猜你喜欢
      • 2018-09-11
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-07
      相关资源
      最近更新 更多