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シェルでテーブルを作成しようとすると. エラーが発生します

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

4

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

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

于 2013-06-11T08:23:01.840 に答える
1

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

`[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) (ノード B およびノー​​ド C)
  3. 3 つのレプリケーション サーバー (ノード A、ノード B、およびノー​​ド C)

RCA: クラスタの起動時にバックアップ マスター ノードを起動しようとしました。

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

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

マスター ノードとマスター ノードがリージョン サーバーとしても機能してはならないのでしょうか? ただし、HBase のドキュメントには別の記載があります。

于 2016-11-13T14:47:52.547 に答える