2012-06-07 28 views
8

¿Alguien conoce un tutorial sobre cómo se puede ejecutar HBase en Windows con Cygwin?HBase 0.92 Standalone en Windows con Cygwin

logré conectar todo como las claves para el inicio de sesión automático con SSH, pero estoy atascado con mensaje de error siguiente:

localhost: +======================================================================+ 
localhost: |  Error: JAVA_HOME is not set and Java could not be found   | 
localhost: +----------------------------------------------------------------------+ 
localhost: | Please download the latest Sun JDK from the Sun Java web site  | 
localhost: |  > http://java.sun.com/javase/downloads/ <      | 
localhost: |                  | 
localhost: | HBase requires Java 1.6 or later.         | 
localhost: | NOTE: This script will find Sun Java whether you install using the | 
localhost: |  binary or the RPM based installer.        | 
localhost: +======================================================================+ 

...

java.lang.NoClassDefFoundError: org/apache/zookeeper/KeeperException 
     at java.lang.Class.getDeclaredMethods0(Native Method) 
     at java.lang.Class.privateGetDeclaredMethods(Unknown Source) 
     at java.lang.Class.getMethod0(Unknown Source) 
     at java.lang.Class.getMethod(Unknown Source) 
     at sun.launcher.LauncherHelper.getMainMethod(Unknown Source) 
     at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.KeeperException 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 

ya me puse a punto .bash_profile a:

export JAVA_HOME='/usr/lib/jre1.6.1' 

que es enlace simbólico en el jre verdadera

/usr/lib/jre1.6.1 -> /cygdrive/c/Java/jre7/ 
+0

¿Obtiene alguna salida para "java -version"? – Kiran

+0

Sí, eso funciona! –

Respuesta

0

EDIT:

El primer error se parece a Java no está siendo encontrado, pero el segundo error viene claramente de Java, por lo que la combinación de estos dos errores es algo confuso. ¿Estás seguro de que ambos están siendo producidos por el mismo guión al mismo tiempo?

El segundo error se produce al no tener el archivo jar de zookeeper en el classpath. Intente modificar el script o copiar el jar en el directorio de hadoop lib.

+0

Es modo autónomo - no hay usuario de HBase –

+0

¿Cómo está obteniendo un error de clase no encontrada si no se encuentra Java? ¿El error JAVA_HOME es antiguo? –

+0

hbase-config.sh se llama al inicio con ./start-hbase - hbase-config crea esa salida –

1

Use una máquina virtual para ejecutar hadoop en un entorno Linux. Con Java es posible que se enfrentan a problemas típicos debajo de las ventanas, añadiendo Cygwin a la mezcla agrega un otro conjunto entero, por ejemplo:

Para fines tutorial recomiendo altamente la cloudera demostración VM y un tutorial: https://ccp.cloudera.com/display/SUPPORT/Cloudera%27s+Hadoop+Demo+VM

https://ccp.cloudera.com/display/SUPPORT/Hadoop+Tutorial#HadoopTutorial-Purpose

+0

Gracias por el comentario: ya tengo HBase/Hadoop ejecutándose en Linux y en máquinas virtuales. De hecho, para desarrollar uso una máquina virtual local. Solo quería deshacerme de la capa extra de una máquina virtual. –

4

Para JAVA_HOME de error, lo puede solucionar mediante el establecimiento de JAVA_HOME en el hbase\conf\hbase-env.sh.

Para la excepción de clase no encontrada, intente agregar hbase\lib al HBASE_CLASSPATH bajo el mismo archivo.

Personalmente, utilizar las dos líneas siguientes en mi hbase-env.sh en un Windows 7 Entorno + Cygwin:

export JAVA_HOME=/cygdrive/c/Program\ Files/Java/jdk1.7.0/ 

export HBASE_CLASSPATH=/cygdrive/c/programs/hbase-0.92.1/lib/ 
+2

Tiene este mismo problema (win7 con cygwin), y esto lo solucionó. Sin embargo, no hay errores de CP hasta ahora. – gbegley

5

que tenían el mismo problema y me encontré con lo siguiente: Cygwin utilizar ":" como un separador de ruta . Pero la secuencia de comandos que crea CLASS_PATH funciona incorrectamente. Final CLASS_PATH se ve como "...: zookeeper.jar:" con ":" al final. Antes de ejecutar el script java, convierta CLASS_PATH al estilo de Windows. Pero con ":" al final !!

Así que mi solución es: solo crear un archivo vacío "zzz.jar" en hbase/lib. zzz.jar será el último en CLASS_PATH y zookeeper.jar se agregará correctamente a CLASS_PATH.

Sé que es mejor arreglar guión, pero a quién le importa :) necesito HBase para 2 días, por lo que funciona y estoy feliz :)

+0

¡Muchas gracias! HBase 0.94.7 funcionó bien para mí en cygwin, solo tuve que configurar HBASE_CLASSPATH en la carpeta lib como se menciona en la respuesta de Hisham. Sin embargo, cuando volví más tarde recientemente en 0.94.16 esa corrección ya no parece funcionar, pero tu zzz.jar hizo el truco maravillosamente. –

+0

muchas gracias! esta es la cosa! – Thomas

0

hbase_classpath No hay necesidad, el cambio solo zookeeper.jar a azookeeper.jar

Cuestiones relacionadas