17

我正在尝试设置 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

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

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)
4

6 回答 6

21

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

  • 停止动物园管理员
  • 擦除 Zookeeper 数据目录
  • 启动 Zookeeper

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

于 2013-07-29T04:44:56.223 回答
4

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

“org.apache.hadoop.hbase.ipc.HBaseClient$FailedServerException:此服务器在故障服务器列表中:localhost/127.0.0.1:60000 at”

于 2013-06-11T08:23:01.840 回答
1

我在 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'

我在我的主机文件中将 my-host-name 映射到 111.22.333.444,重新启动 HBase 并且它工作。

于 2016-10-06T20:43:46.997 回答
0

对于具有以下配置的完全分布式 hbase 集群,我也遇到了同样的问题。

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

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

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

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

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

于 2016-11-13T14:47:52.547 回答
0

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

create 'test', 'cf'

于 2021-10-26T09:22:25.210 回答
0

我们解决了这个问题。解决方案是

  • 停止 Hbase
  • 以 root 身份登录到 zookeeper-client
  • 执行命令 rmr /hbase-unsecure/meta-region-server
  • 启动 Hbase

我们通过 Ambari UI 停止/启动 Hbase,通过服务器 bash shell 删除 /hbase...。

[root@s1 ~]# zookeeper-client
Connecting to localhost:2181
.......
[zk: localhost:2181(CONNECTED) 0] rmr /hbase-unsecure/meta-region-server
于 2022-01-21T03:43:53.920 回答