1

疑似分散モードで Hadoop と hbase を使用して単一ノードをセットアップしました。もちろん、zookeeper と regionserver もインストールされています。

すべてがスムーズに実行されますが、Java クライアント API 経由で hbase に接続すると、例外が発生します。

この問題を解決するために何時間も試みましたが、できません。remotemachine:60000 に telnet で接続できるので、ポート ファイアウォールの問題ではありません。ログには、特別なことは何も報告されていません。

(ログから、debianhdfs はホストファイルの IP に正しく設定されていることに注意してください)

12/05/06 19:47:27 情報 Zookeeper.ClientCnxn: サーバー debianhdfs/192.168.137.135:2181 へのソケット接続を開いています。 137.135:2181、開始セッション 12/05/06 19:47:27 INFO Zookeeper.ClientCnxn: サーバー debianhdfs/192.168.137.135:2181 でセッションの確立が完了、セッション ID = 0x13721c707ff002f、ネゴシエートされたタイムアウト = 40000 12/05/06 19:47 :28 INFO client.HConnectionManager$HConnectionImplementation: getMaster 試行 0/1 が失敗しました。もう再試行する必要はありません。java.net.ConnectException: 接続が拒否されました: org.apache.hadoop.net.SocketIOWithTimeout の sun.nio.ch.SocketChannelImpl.finishConnect(不明なソース) の sun.nio.ch.SocketChannelImpl.checkConnect(ネイティブ メソッド) に詳細情報はありません.connect(SocketIOWithTimeout.java:

スタンドアロン モードでは、非擬似分散で、同じコードで次の例外が発生します。

12/05/06 20:32:49 情報 Zookeeper.ClientCnxn: サーバー debianhdfs/192.168.137.135:2181 へのソケット接続を開いています。 137.135:2181、開始セッション 12/05/06 20:32:49 INFO zookeeper.ClientCnxn: サーバー debianhdfs/192.168.137.135:2181 でセッションの確立が完了、セッション ID = 0x1372210f8fe0004、ネゴシエートされたタイムアウト = 40000 12/05/06 20:32 :49 INFO client.HConnectionManager$HConnectionImplementation: ZooKeeper は利用可能ですが、アクティブなマスターの場所が見つかりません 12/05/06 20:32:49 INFO client.HConnectionManager$HConnectionImplementation: getMaster 試行 0/1 が失敗しました。もう再試行する必要はありません。org.apache.hadoop.hbase.MasterNotRunningException は org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation で発生します。

Configuration config = HBaseConfiguration.create();
    config.set("hbase.zookeeper.quorum", "debianhdfs"); 
        config.set("hbase.zookeeper.property.clientPort","2181");    

    HBaseAdmin.checkHBaseAvailable(config);

4

1 に答える 1

1

スタンドアロンで実行しているので、最初に HBase で実行される Zookeeper を使用してみませんか? スタンドアロン モードの場合、HBase は独自のローカル Zookeeper を管理するため、これを使用するとバグに遭遇する可能性が低くなり、管理するプログラムが少なくなるため、トラブルシューティングが容易になります。

HBase に独自の ZK インスタンスを実行させるに${HBASE_HOME}/conf/hbase-env.shは、 に移動し、一番下までスクロールして行があることを確認するexport HBASE_MANAGES_ZK=trueか、その行がコメントアウトされていることを確認します (デフォルトでは、HBase が独自の ZK を管理するため)。

于 2012-05-09T01:44:48.167 に答える