web-dev-qa-db-ja.com

ノード/ hbaseはZooKeeperにありません

私はHadoopの初心者で、Hbaseを疑似分散モード、バージョンhbase-0.98.10.1-hadoop1-bin、Hadoop 2.5.2でインストールしようとしています。テーブルを追加できません。

テーブルを作成しようとすると、次のエラーが発生します:

client.HConnectionManager$HConnectionImplementation: The node /hbase is not in ZooKeeper. It should have been written by the master. Check the value configured in 'zookeeper.znode.parent'. There could be a mismatch with the one configured in the master.

最後にエラーを何度も表示した後(約50回)、最終的なエラーは次のようになります。

ERROR: The node /hbase is not in ZooKeeper. It should have been written by the master. Check the value configured in 'zookeeper.znode.parent'. There could be a mismatch with the one configured in the master.

ログファイルの最新のエントリは次のとおりです。

2015-02-23 16:38:39,456 ERROR [main] master.HMasterCommandLine: Master exiting
Java.lang.RuntimeException: Failed construction of Master: class org.Apache.hadoop.hbase.master.HMaster
at org.Apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.Java:3017)
at org.Apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.Java:186)
at org.Apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.Java:135)
at org.Apache.hadoop.util.ToolRunner.run(ToolRunner.Java:65)
at org.Apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.Java:126)
at org.Apache.hadoop.hbase.master.HMaster.main(HMaster.Java:3031)

Caused by: org.Apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4
at org.Apache.hadoop.ipc.Client.call(Client.Java:1113)
at org.Apache.hadoop.ipc.RPC$Invoker.invoke(RPC.Java:229)
at com.Sun.proxy.$Proxy8.getProtocolVersion(Unknown Source)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:622)
at org.Apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.Java:85)
at org.Apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.Java:62)
at com.Sun.proxy.$Proxy8.getProtocolVersion(Unknown Source)
at org.Apache.hadoop.ipc.RPC.checkVersion(RPC.Java:422)
at org.Apache.hadoop.hdfs.DFSClient.createNamenode(DFSClient.Java:183)
at org.Apache.hadoop.hdfs.DFSClient.<init>(DFSClient.Java:281)
at org.Apache.hadoop.hdfs.DFSClient.<init>(DFSClient.Java:245)
at org.Apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.Java:100)
at org.Apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.Java:1446)
at org.Apache.hadoop.fs.FileSystem.access$200(FileSystem.Java:67)
at org.Apache.hadoop.fs.FileSystem$Cache.get(FileSystem.Java:1464)
at org.Apache.hadoop.fs.FileSystem.get(FileSystem.Java:263)
at org.Apache.hadoop.fs.Path.getFileSystem(Path.Java:187)
at org.Apache.hadoop.hbase.util.FSUtils.getRootDir(FSUtils.Java:942)
at org.Apache.hadoop.hbase.master.HMaster.<init>(HMaster.Java:533)
at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at Sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.Java:57)
at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.Java:45)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:534)
at org.Apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.Java:3012)
... 5 more

Hdbase-site構成ファイル:

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:54310/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/Hbase/zookeeper</value>
</property>
<property>
<name>hbase.cluster.distributed</name>  
<value>true</value>
</property> 
</configuration>

jpsの出力は:

7584 Main
8532 HQuorumPeer
4435 SecondaryNameNode
4880 NodeManager
4269 DataNode
7735 FsShell
4592 ResourceManager
4141 NameNode
9128 Jps
3147 ZKServerTool
3651 HRegionServer
2992 HMaster

考えられるエラーは何ですか?どんな助けでもありがたいです。

11
Priyal

別のhbaseバージョンを使用した後に動作しました。私はhadoop 2.5.2と互換性のないhbase-0.98.10.1-hadoop1-binを使用していたため、hbaseバージョンをhbase-X.XX.XX.X-hadoop2-bin(hadoop 2と互換性があった)に変更しました.X)、Apacheのインストール手順に従いました。皆さん、ありがとうございました..

3
Priyal

これは、zookeeperにノード '/ hbase'がないため、zookeeper.goにzkCliにノード名 '/ hbase'を作成し、 'create/hbase ""'コマンドを実行します。

2
jiahong huang

上記の答えは正しいですが、少し長くなります。私はhbase-site.xmlに次のプロパティを追加するだけでこの問題を解決できました(hbase-1.2.1を使用)

<property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/mnt/data/zookeeper</value>
</property>

/ mnt/data/zookeeperを作成する必要もありませんでした。 HBASEをスタンドアロンとして使用していたため、Zookeeperをそのまま実行する必要がなかったため、エラーが発生しました。

完全なhbase-site.xml構成ファイルは次のようになります

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>file:///mnt/data/hbase</value>
    </property>
   <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/mnt/data/zookeeper</value>
   </property>
</configuration>
0
Somum
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master:54310/hbase</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/usr/local/Hbase/zookeeper</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
     <property>
        <name>zookeeper.znode.parent</name>
        <value>/hbase-unsecure</value>
    </property>
    <property>
         <name>hbase.zookeeper.quorum</name>
         <value>localhost</value>
    </property>
    <property>
         <name>dfs.replication</name>
         <value>1</value>
    </property>
    <property>
         <name>hbase.zookeeper.quorum</name>
         <value>localhost</value>
    </property>
    <property>
        <name>hbase.master</name> 
        <value>hadoop-master:60000</value>
        </property>
</configuration>

zookeeperが起動し、dataDirが存在することを確認してください。

0
Kishore

talendで使用します。Hadoopクラスターにhbase接続を追加するとき、ステップ2/2、Hadoopクラスターでリポジトリを選択します。サーバーとポートを書き込むとき(デフォルト2181)、ボタン 'Check'をポイントし、システムプロンプト:

接続に失敗しました。データベース設定を変更する必要があります。原因:org.Apache.hadoop.hbase.MasterNotRunningException:ノード/ hbaseがZooKeeperにありません。それはマスターによって書かれるべきでした。 「zookeeper.znode.parent」に設定されている値を確認します。マスターで構成されたものと一致しない可能性があります

次に、hadoopプロパティを追加し、ボタンをクリックしてプロパティに追加する必要があります

zookeeper.znode.parent =/hbase-unsecure [OK]をクリックし、[チェック]をクリックすると、システムプロンプトが正常に表示されます。

0
lchswpu