web-dev-qa-db-fra.com

Le nœud/base n'est pas dans ZooKeeper

Je suis un débutant sur Hadoop qui tente d'installer Hbase en mode pseudo-distribué, version hbase-0.98.10.1-hadoop1-bin, avec Hadoop 2.5.2. Je ne suis pas capable d'ajouter une table. 

L'erreur suivante continue lorsque j'essaie de créer une table:

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.

Finalement, après avoir affiché l'erreur plusieurs fois (environ 50 fois), l'erreur finale est la suivante:

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.

La dernière entrée du fichier journal est: 

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

Fichier de configuration de 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>

La sortie de jps est:

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

Quelle pourrait être l'erreur possible? Toute aide est appréciée.

9
Priyal

Cela a juste fonctionné après avoir utilisé une version différente de hbase. J'utilisais hbase-0.98.10.1-hadoop1-bin, qui n'était pas compatible avec mon hadoop 2.5.2. J'ai donc remplacé la version de hbase par hbase-X.XX.XX.X.hadoop2-bin (compatible avec hadoop 2). .X) et a suivi les étapes d’installation d’Apache. Merci à tous..

2
Priyal

Cela signifie que le gardien de zoo n'a pas le noeud '/ hbase', donc créez un nom de noeud '/ hbase' dans zookeeper.go sur zkCli et exécutez la commande 'create/hbase "".

2
jiahong huang

La réponse ci-dessus est correcte mais un peu plus longue. J'ai pu résoudre ce problème en ajoutant simplement la propriété suivante dans hbase-site.xml (utilisé hbase-1.2.1)

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

Je n'ai pas eu à créer/mnt/data/zookeeper non plus. Depuis que j'utilisais HBASE en tant que système autonome, je n’ai pas eu besoin de lancer Zookeeper. En fait, cela a donné une erreur lorsque je l’ai fait.

le fichier de configuration complet hbase-site.xml ressemble à

<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>

assurez-vous que zookeeper doit être démarré et que dataDir doit exister.

0
Kishore

je l'utilise dans Talend , lorsque j'ajoute une connexion hbase dans le cluster hadoop, à l'étape 2/2, je choisis un référentiel dans un cluster hadoop, lorsque j'écris le serveur et le port (2181 par défaut), pointez le bouton 'Vérifier ', l'invite du système:

Échec de connexion. Vous devez modifier les paramètres de la base de données. Causée par: org.Apache.hadoop.hbase.MasterNotRunningException: le nœud/hbase n'est pas dans ZooKeeper. Cela aurait dû être écrit par le maître. Vérifiez la valeur configurée dans 'zookeeper.znode.parent'. Il pourrait y avoir une incompatibilité avec celle configurée dans le maître

ensuite, vous devez ajouter des propriétés hadoop, cliquez sur le bouton et ajoutez-les à la propriété

zookeeper.znode.parent =/hbase-unsecure Cliquez sur OK, puis cliquez sur "Vérifier", l'invite du système a réussi.

0
lchswpu