web-dev-qa-db-ja.com

Hbaseエラーzookeeperが3回再試行した後に失敗しました

UbuntuでHBASE0.94.8スタンドアロンモードを使用しています。正常に動作しているので、Hbase-Shellですべての操作を実行できます。しかし、システムのログを記録した後、次のエラーが発生します

15/07/28 15:10:30 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
15/07/28 15:10:30 WARN zookeeper.ZKUtil: hconnection-0x14ed40513350009 Unable to set watcher on znode (/hbase)
org.Apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase
    at org.Apache.zookeeper.KeeperException.create(KeeperException.Java:99)
    at org.Apache.zookeeper.KeeperException.create(KeeperException.Java:51)
    at org.Apache.zookeeper.ZooKeeper.exists(ZooKeeper.Java:1041)
    at org.Apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.Java:172)
    at org.Apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.Java:450)
    at org.Apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.checkIfBaseNodeAvailable(ZooKeeperNodeTracker.Java:208)
    at org.Apache.hadoop.hbase.zookeeper.RootRegionTracker.waitRootRegionLocation(RootRegionTracker.Java:77)
    at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.Java:885)
    at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.Java:998)
    at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.Java:896)
    at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.Java:998)
    at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.Java:900)
    at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.Java:857)

はい、確かに私はたくさん検索しました。私はいくつかの情報を見つけました ZooKeeperは3回の再試行後に失敗しました 。このエラーは、zookeeperが停止していることが原因である可能性があります。しかし、私はそれを再び再開することを知りません。 Hbasethriftをもう一度起動しようとしましたが、それでも問題が発生します。

このコマンドps axww | grep QuorumPeerMain次の出力が表示されます:

 6162 pts/2    S+     0:00 grep --color=auto QuorumPeerMain

システムを再起動すると、Hbaseが動作を開始します。しかし、私は適切な解決策が必要です。


一時的な解決策

次のコマンドを使用して、HBASEのこのプロセスをgrepします。

ps -fe grep | hbase

次に、HBASEのすべてのプロセスを強制終了します。

kill -9 4555//assuming 4555 is process id of hbase

次に、sudoとthriftを使用してhbaseを再起動すると、動作を開始しますが、永続的な解決策が必要です。サーバーでHBASEを使用している場合(ローカルマシンではないことを意味します)、毎回HBASEを再起動できないためです。

9
Manwal

問題

Hbaseエラーzookeeperの存在は3回の再試行後に失敗しました zookeeperクォーラムが実行されていないことを明確に示しています-最も可能性の高い原因は、conf/hbase-site.xmlのzookeeper.quorum設定との不整合である可能性があります。最小値は次のとおりです。

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///home/testuser/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/testuser/zookeeper</value>
  </property>
</configuration>

次のセクションでは、Zookeeperが必要な理由と、それが実行されているかどうかを確認する方法について簡潔に説明します。


概要

あなたのテキストからの前提(スタンドアロンセットアップ)-あなたは物事を混乱させています。簡単に言うと、ZookeeperはHBaseを管理し、必須の要件です。

デフォルトでは、HBase自体がzookeeperのセットアップ、start-stop(変更可能ですが)を処理します-ファイルconf/hbase-evn.sh(hbaseディレクトリ内)を確認するには、次の行が必要です。

export HBASE_MANAGES_ZK=true

基本的に、HBaseにZookeeperの独自のインスタンスを管理する必要があるかどうかを指示します。 falseに設定されている場合は、trueに編集します。

検証のために役立つコマンドがあります(psを忘れてからgrepを忘れてください):

$ jps

このコマンドは、マシン上のすべてのJavaプロセス(HBase自体はJavaアプリケーション)を一覧表示します。つまり、出力の可能性は(最小限のスタンドアロンHBaseセットアップの場合)である必要があります。

62019 Jps
61098 HMaster        
61233 HRegionServer     
61003 HQuorumPeer

HBaseプロセスを強制終了するのではなく、start-stopユーティリティを使用してください。

$ ./bin/stop-hbase.sh

必要な変更を加えて、再開します。

$ ./bin/start-hbase.sh

PSあなたの質問を(完全に)誤解した可能性があります。コメントでお知らせください。また返信し、正しい解決策を見つけます-今後のSO訪問者のために。

5
Nabeel Ahmed

ログファイルを調べると、飼育係がポートに接続できないことがわかります。例えば、 543210。これは単に、以前にHadoopをマシンにインストールしたことを意味するため、hbaseは以前のHadoopインストールのzookeeperを検索しようとします。既存のHadoopセットアップの名前を変更するか、システムから完全にHadoopを削除してください。 (ただし、動物園の飼育係は、削除した後でも物事を残しているようです。)

  • Hadoopインストールフォルダーの名前を変更します
  • .bashrcファイルからエントリを削除します
  • コンピューターを再起動
3

この問題はhbaseまたはzookeeperとは関係がないようです。これはシステム設定の問題です。

Mac OSXのアップデート後に同じ問題が発生します。

更新によりDNS設定が変更されたことが判明しました。私はそれをhbaseログで見ました:

2017-06-09 11:40:18,454 ERROR [main] master.HMasterCommandLine: Master exiting
Java.lang.RuntimeException: Failed construction of Master: class org.Apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster
    at org.Apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.Java:143)
[SKIP]
    at org.Apache.hadoop.hbase.master.HMaster.main(HMaster.Java:2432)
Caused by: Java.lang.NullPointerException
    at org.Apache.hadoop.net.DNS.reverseDns(DNS.Java:92)

hbase-site.xmlのDNS設定を削除した後、問題は解消されました。

  <!--property>
    <name>hbase.zookeeper.dns.interface</name>
    <value>lo0</value>
  </property>
  <property>
    <name>hbase.regionserver.dns.interface</name>
    <value>lo0</value>
  </property>
  <property>
    <name>hbase.master.dns.interface</name>
    <value>lo0</value>
  </property-->
2
Dmitry Petrov

「4回の再試行後にZooKeeperが存在しますが失敗しました」というエラーがほぼ同じです。これは、ポート2181に接続する権限がない状態で./start-hbase.shを実行したことが原因でした。解決策は非常に単純であることが判明しました。

Sudo ./start-hbase.sh

NabeelAhmedの投稿と同じhbase-site.xmlの構成を使用しました。

1
APW

唯一の開始動物園の飼育係の場合、 this が役に立ちます。 hbaseを開始する前に、zookeeperが稼働している必要があることをご承知おきください。

0
Ramzy

私はSudoコマンドを使用しています

hbase/bin$Sudo ./start-habase.sh
0
y durga prasad