2012-03-15 21 views
9

Instalé Hadoop y Hive en 3 clústeres. Normalmente puedo usar colmena y Hadoop, pero cuando inicio sesión con otro usuario, no puedo usar Hive. El error es:Cómo utilizar la colmena con otro usuario

colmena> mostrar tablas;

ERROR: Error en los metadatos: javax.jdo.JDOFatalDataStoreException: No se puede obtener una conexión, error en el grupo No se pudo crear un objeto validado, porque: Un usuario de solo lectura o un usuario en una base de datos de solo lectura no puede desactivar el modo de solo lectura en una conexión.

NestedThrowables:

org.apache.commons.dbcp.SQLNestedException: No se puede obtener una conexión, el error de la piscina no se pudo crear un objeto validado, causa: Un usuario de sólo lectura o un usuario en una base de datos de sólo lectura no está permitido desactivar el modo de solo lectura en una conexión.

FALLO: Error de ejecución, código de retorno 1 de org.apache.hadoop.hive.ql.exec.DDLTask

que iniciar sesión con otro usuario, y establecer el permiso chmod 777 de la carpeta de la que he instalado hadoop y colmena, puedo usar colmena. Pero cuando inicio sesión en el otro usuario, es un error. Quiero decir, tengo que establecer el permiso cuando inicio sesión para usar colmena en hadoop. ¿Cómo se puede usar colmena en hadoop con permisos de configuración de una sola vez?

Respuesta

6

No puedo decirte POR QUÉ funcionó, pero lo arregló para mí.

cd ../hive/metatstore_db/ 
rm *.lck 

Tuve un problema con mi cuenta de hadoop y mi cuenta de usuario con bloqueos separados.

+0

Probé las dos cosas mencionadas anteriormente pero sigo teniendo el mismo error ... Cualquier idea si ustedes tienen, por favor, háganmelo saber –

+0

Busque en su servidor cualquier archivo .lck y trate de ver si están en un lugar eso parece relevante? Como dije, había investigado mucho pero nunca pensé por qué funcionó. –

+0

Tuve el mismo problema. Cambiar los permisos y eliminar los archivos de bloqueo ayudó. – Sumod

13

Tuve el mismo problema y lo resolví de la siguiente manera. El problema se debe a dos posibles razones.

  • O, el usuario que ha iniciado sesión como (hacer ' whoami') no tiene acceso de escritura en el directorio de base de datos Derby meta almacén utilizado por colmena. Vaya a/var/lib/hive/metastore/metastore_db (este es el valor predeterminado en la mayoría de los casos) y verifique si su ID de usuario tiene permisos haciendo ls. En caso de que su ID de usuario no tenga permisos, debe pedirle al propietario del directorio que le otorgue permisos de escritura. Así, registrado como el propietario/superusuario y ejecutar

cd/var/lib/colmena/meta almacén/metastore_db

chmod a + rwx. --recursive

Tenga en cuenta que otorgará permisos a todos los usuarios. Sin embargo, ajuste bits r-w-x en consecuencia.

  • La otra posible razón es que derby es una base de datos de usuario único.Así que, por favor borrar los archivos de bloqueo por ir a

cd/var/lib/colmena/meta almacén/metastore_db

rm * .lck

1

Trate de evitar el uso del servidor incrustado derby ya que depende de directorios y tiene muchas limitaciones.

Siempre es mejor configurar su colmena con el servidor mysql. Sólo tiene que hacer en la siguiente configuración colmena site.xml

<property> 
    <name>javax.jdo.option.ConnectionURL</name> 
    <value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true</value> 
</property> 
<property> 
    <name>javax.jdo.option.ConnectionDriverName</name> 
    <value>com.mysql.jdbc.Driver</value> 
</property> 
<property> 
    <name>javax.jdo.option.ConnectionUserName</name> 
    <value>user</value> 
</property> 
<property> 
    <name>javax.jdo.option.ConnectionPassword</name> 
    <value>password</value> 
</property> 

Pero recuerde que debe dar permiso a todos los usuarios que quieran utilizar la colmena mediante comandos de abajo.

conceder permisos

mysql> GRANT ALL ON hivedb.* TO [email protected]'00.00.00.00'; 

PRIVILEGIOS DE LAVADO, indicar al servidor que vuelva a cargar las tablas de permisos

mysql> FLUSH PRIVILEGES; 
0

1) Extracción de la cerradura es una opción, pero que a veces pueden matar la tarea de ser utilizado por algún otro usuario abruptamente. 2) Puede usar colmenas en diferentes carpetas para un pequeño equipo. 3) si desea compartir, utilice el servidor derby y configure el xml como se indica anteriormente.

0

En mi caso estaba usando sqoop para importar una tabla mysql a colmena. Hive tenía configurado un metastore de mysql. Pero de alguna manera, sqoop no lo sabía porque no podía acceder al archivo de configuración de la colmena. Una vez que establecí la variable de entorno HIVE_CONF_DIR, funcionó.

0

compruebe si el usuario con el que está actualmente conectado tiene permiso de escritura en el archivo metastore_db. siga los siguientes pasos como:

  1. cheque usuario actualmente conectado $ whoami

  2. navegar a/var/lib/colmena/meta almacén/metastore_db

  3. permiso de archivo de comprobación% ls -l
  4. si el usuario no tiene permiso de escritura, conceder el permiso con el comando chmod

espero que esto Wil Soluciono el problema

Cuestiones relacionadas