web-dev-qa-db-ja.com

org.Apache.hadoop.hbase.PleaseHoldException:マスターが初期化中です

Hbaseのマルチノードクラスターをセットアップしようとしています。私が奴隷でjpsをするとき、私は得る

5780 Jps
5558 HQuorumPeer
5684 HRegionServer
1963 DataNode
2093 TaskTracker

同様にマスターで私は得る

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

EVerythingは適切に実行されます。しかし、hbaseShellでテーブルを作成しようとすると。エラーが発生します

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)
10
Naresh

Zookeeperのすべての状態をクリアしてみてください。

  • Zookeeperを停止
  • Zookeeperデータディレクトリをワイプします
  • 再起動

私は同じ問題を抱えていて、このアプローチに従いました、そしてそれはうまくいきました。

13
Nishu Tayal

マスターを指すようにスレーブノードの構成を変更する必要があります。現在、ローカルホストを指しており、実際のマスターに接続していません。

"org.Apache.hadoop.hbase.ipc.HBaseClient $ FailedServerException:このサーバーは失敗したサーバーのリストにあります:localhost/127.0.0.1:60000 at"

4

Docker内で独自のクラスターをホストしています。これが私の場合にうまくいったことです。 HBaseログファイルでエラーを確認したところ、「マスターが使用する別のホスト名を渡してくれた」ことがわかりました。

`[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をhostsファイルの111.22.333.444にマップし、HBaseを再起動すると、機能しました。

1
s d

以下の構成の完全分散hbaseクラスターでも同じ問題が発生しました。

  1. マスターNode(ノード-A)
  2. バックアップマスター($ HBASE_HOME/conf/backup-masters)(Node-B&Node-C)
  3. 3つのレプリケーションサーバー(ノードA、ノードB、ノードC)

RCA:クラスターの開始時に、バックアップマスターノードの開始が試行されました。

解決策すべてのhbaseノードで$ HBASE_HOME/conf/backup-mastersを空にして、バックアップマスターを削除しました。

そのため、バックアップマスターなしでクラスターを実行していました。

マスターノードとマスターノードがリージョンサーバーとしても機能してはいけないのだろうか?ただし、HBaseのドキュメントには別の方法が記載されています。

0