この記事に従ってスタンドアロンモードでHbaseをデプロイしようとしています: http://hbase.Apache.org/book.html#quickstart 。バージョンは0.92.1-cdh4.1.2です。
しかし、テーブルを作成しようとすると、次のエラーが発生します。
エラーメッセージ:
13/04/01 14:07:10 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
13/04/01 14:07:10 WARN zookeeper.ZKUtil: hconnection Unable to set watcher on znode /hbase/master
org.Apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master
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:1021)
at org.Apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.Java:154)
at org.Apache.hadoop.hbase.zookeeper.ZKUtil.watchAndCheckExists(ZKUtil.Java:226)
at org.Apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.start(ZooKeeperNodeTracker.Java:82)
at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.Java:580)
at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.Java:569)
出力ログ:
13/04/01 14:06:39 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2181 sessionTimeout=180000 watcher=hconnection
13/04/01 14:06:39 INFO zookeeper.RecoverableZooKeeper: The identifier of this process is 10231@localhost
13/04/01 14:06:39 INFO zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (Unable to locate a login configuration)
13/04/01 14:06:39 WARN zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
Java.net.ConnectException: Connection refused
at Sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at Sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.Java:599)
at org.Apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.Java:350)
at org.Apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.Java:1068)
13/04/01 14:06:39 WARN zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper exception: org.Apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid
私の構成:
hbase_site.xml
<name>hbase.rootdir</name>
<value>file:///home/hadoop/data</value>
<name>hbase.zookeeper.property.dataDir</name>
<value>file:///home/hadoop/zookeeper</value>
私は/ etc/hostsを変更しようとしました、これはこのように見えます(Oracleはホスト名です):
127.0.0.1 localhost Oracle
または
[server ip] localhost Oracle
しかし、これらは私にはうまくいきません。
私の正確なコードは:
[usr@Oracle bin]$ ./start-hbase.sh
starting master, logging to /home/hadoop/hbase-0.94.6/bin/../logs/hbase-usr-master-Oracle.out
[usr@Oracle bin]$ hbase Shell
13/04/01 14:57:55 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.92.1-cdh4.1.2, rUnknown, Thu Nov 1 18:02:07 PDT 2012
hbase(main):001:0> create 'test','cf'
前もって感謝します!
不足しているようですhbase.zookeeper.quorum
構成で。このHBaseガイドの章を確認してください。役立つ場合があります。 http://hbase.Apache.org/book/zookeeper.html
また、zookeeperが正しいポートで開始されていること、および(より頻繁に発生する)正しいIPインターフェースを確認してください。
Macを使っているかどうかはわかりませんが、この問題もありました。 .DS_STOREファイルが-ROOT-リージョンサーバーのフォルダーにあり、接続例外が発生したことが原因であることがわかりました。非常に奇妙な!
構成に関連している可能性があります。最初に、HBase tar( http://hbase.Apache.org/book/quickstart.html )をダウンロードしてHBaseを実行します。リンクをたどって設定を行うことはせず、ダウンロードしてHBaseを起動し、「HBase Shell」を実行しました。しかし、テーブルを作成するときに、あなたが言ったようなエラーが発生しました。 Macを使用しているので、Mac上のHBaseインストールを検索します。 「brew install hbase」を使用してHBaseをインストールすることを採用します( http://chase-seibert.github.io/blog/2013/02/01/getting-starting-with-hbase-and-pig.html )。インストールが完了したら、テーブルを再作成します。成功。
したがって、エラーを再検討してください。エラーは、Java_HOMEまたはHBase上の他の構成とリンクしている必要があります。この方法で答えを見つけると役立つ場合があります。
HBase 1.2.3でも、スタンドアロンモードでほぼ同じエラー「4回の再試行後にZooKeeperが存在します」が発生しました。これは、ポート2181に接続する権限なしで./start-hbase.shを実行したことが原因でした。解決策は非常にシンプルであることがわかりました。
Sudo ./start-hbase.sh
念のため、hbase-site.xmlの構成は次のとおりです。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/hadoop/HBase/HFiles</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper</value>
</property>
</configuration>
stop-hbase.shでhbaseを停止し、zookeeperフォルダーに移動して、フォルダーの内容を空にします。次に、hbaseおよびhbase Shellを再起動します。私のために問題を解決しました
hbase-site.xml
confにエラーがあるようです。クイックスタート document によると、スタンドアロンのHBase hbase-site.xml
は次のようになります。
<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構成にはfile://
はありません。また、HBaseの起動に失敗した場合は、hbaseとzookeeperに保存したファイルを削除する必要があります。上記の設定に従って、/home/testuser/hbase
および/home/testuser/zookeeper
の下のすべてのファイルを削除する必要があります。そして、ログエラー情報を確認してみてください。適切な設定があり、Java_HOME
変数にhbase-env.sh
を追加したときに、このエラーを修正しました。
また、hbaseのセットアップ中にこの問題に遭遇しました。数分後、次のコマンドを実行してhbaseを起動するのを忘れたことに気づきました。
hbase-1.1.2/bin/start-hbase.sh
このコマンドを実行した後、hbase Shellは問題なく動作しました。
私も同じ問題を抱えていました。両方のフォルダーのhbase.rootdirとhbase.zookeeper.property.dataDir.Give 755の両方のフォルダーに所有者とグループを適切に設定してください。
Sudo chown -R hadoop_user:hadoop_user_group home/hadoop/data
Sudo chmod -R 755 home/hadoop/data
エラー「ERROR zookeeper.RecoverableZooKeeper:ZooKeeper exists exists after 3 retries」は、おそらくzookeeper
が実行されていないことを示しています-前HBaseシェルを見つめると、Zookeeperクォーラムが起動しているかどうかを確認できます。
$ jps
コマンドはすべてのJavaプロセスをリストします。つまり、推定出力は-である必要があります-セットアップしようとしているスタンドアロンのHBaseセットアップの場合(左側の列の番号pidは無視してください) :
62019 Jps
61098 HMaster
61233 HRegionServer
61003 HQuorumPeer
出力にHQuorumPeer
がない場合-飼育係が実行されていないことを示します。
Zookeeper は、HBaseクラスターが管理するために必要です。
ソリューション:
HBaseディレクトリで、まずHBaseを停止します。
$ ./bin/stop-hbase.sh
「スタンドアロンHBase」の例を作成しようとしている場合-例で提供されている最小限の設定に固執します。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/adio/workspace/hadoop/hbase/directories/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/adio/workspace/hadoop/hbase/directories/zookeeper</value>
</property>
</configuration>
つまり、あなたのconf/hbase-site.xml
には上記の内容が必要です。
設定したら、HBaseを再起動します。
$ ./bin/start-hbase.sh
P.S。これらの手順を実行しても問題が解決しない場合は、コメント欄に問題を残してください。
問題は 'hbase.zookeeper.property.dataDir'プロパティの 'hbase-site.xml'にあります
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/lib/hbase/zookeeperdata</value>
</property>
注:このプロパティの下で、パスを '[〜#〜] local [〜#〜]'ファイルシステムに設定します。
HBaseとZooKeeperがデータを書き込むローカルファイルシステム上のディレクトリを指定するだけです。たとえば、この場合、1)start-hbase.sh 2)hbase Shellコマンドを実行した後
パス(私の場合は/ usr/lib/hbase/zookeeperdata)に移動します。ここには、myidという名前のファイルがあります。
検証ポイントの要約
1)jpsを実行すると、以下のプロセスが実行されますHQuorumPeer、ResourceManager、HMaster、NameNode、Main、HRegionServer、SecondaryNameNode、DataNode、Jps、NodeManager
2)hbase-site.xmlの下で、プロパティ「hbase.zookeeper.property.dataDir」のパスをローカルパスに設定する必要があります。つまり、フォルダーはローカルに存在する必要があります。
3)start-hbase.shおよびhbase Shellコマンドを実行した後-> hbase.zookeeper.property.dataDir(この例では、パスは/ usr/lib/hbase/zookeeperdata)で指定されたパスに移動します。myidという名前のファイルです。存在する必要があります。
/ etc/hostsファイルを編集します... 2行目の127.0.1.1を127.0.0.1に変更してから、Hbaseを起動します...正常に動作するはずです。機能しない場合は、このリンクの手順を試してください http://lets-do-something-big.blogspot.in/2014/01/hbase-installation-on-ubuntu-lubuntu.html