hadoop - El nodo/hbase no está en ZooKeeper
hdfs (5)
Soy un novato en Hadoop tratando de instalar Hbase en modo pseudo distribuido, versión hbase-0.98.10.1-hadoop1-bin, con Hadoop 2.5.2. No puedo agregar una tabla.
El siguiente error continúa cuando intento crear una tabla:
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.
Finalmente, después de mostrar el error muchas veces (unas 50 veces) da el error final como:
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 última entrada del archivo de registro es:
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
Archivo de configuración 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 salida de jps es:
7584 Main
8532 HQuorumPeer
4435 SecondaryNameNode
4880 NodeManager
4269 DataNode
7735 FsShell
4592 ResourceManager
4141 NameNode
9128 Jps
3147 ZKServerTool
3651 HRegionServer
2992 HMaster
¿Cuál podría ser el posible error? Cualquier ayuda es apreciada.
La respuesta anterior es correcta, pero un poco más larga. Pude resolver este problema simplemente agregando la siguiente propiedad en hbase-site.xml (hbase-1.2.1)
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/mnt/data/zookeeper</value>
</property>
No tuve que crear / mnt / data / zookeeper tampoco. Como estaba utilizando HBASE como autónomo, no tuve que ejecutar Zookeeper de hecho, me dio un error cuando lo hice.
el archivo de configuración hbase-site.xml completo se ve como
<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>
<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>
asegúrese de que el cuidador del zoológico se inicie y DataDir debería existir.
Simplemente funcionó después de usar una versión hbase diferente. Estaba usando hbase-0.98.10.1-hadoop1-bin, que no era compatible con mi hadoop 2.5.2, así que cambié la versión de hbase a hbase-X.XX.XX.X-hadoop2-bin (que era compatible para hadoop 2 .X) y siguió los pasos de instalación de Apache. Gracias a todos..
Lo uso en Talend, cuando agrego conexión hbase en el clúster hadoop, el paso 2/2, elijo el repositorio en el clúster hadoop, cuando escribo el servidor y el puerto (por defecto 2181), apuntar el botón ''Comprobar'', el símbolo del sistema :
Falla de conexión. Debe cambiar la configuración de la base de datos. Causado por: org.apache.hadoop.hbase.MasterNotRunningException: El nodo / hbase no está en ZooKeeper. Debería haber sido escrito por el maestro. Verifique el valor configurado en ''zookeeper.znode.parent''. Podría haber un desajuste con el configurado en el maestro
luego, necesita agregar propiedades de hadoop, hacer clic en el botón y agregar a la propiedad
zookeeper.znode.parent = / hbase-unsecure haga clic en Aceptar, luego haga clic en ''Comprobar'', la solicitud del sistema se realizó con éxito.
Significa que el zookeeper no tiene el nodo ''/ hbase'', por lo tanto, crea un nombre de nodo ''/ hbase'' en zookeeper.go en zkCli y ejecuta el comando ''create / hbase'' '''' ''.