es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El comando de importación de Sqoop arroja un error, pero funciona desde la terminal.

El siguiente comando funciona bien desde la terminal, pero cuando lo ejecuto desde Oozie, me da un error:

bash
sqoop import --connect jdbc:mysql://172.16.16.128:3306/employees -- username=hive --password=hive --driver com.mysql.jdbc.Driver --query 'select * from employee.testtable where 1=1 AND $CONDITIONS' --m 1 --target-dir '/user/hive/warehouse/test.db/testtable' --hive-import --hive-table test.testtable --hive-drop-import-delims --hive-overwrite --hs2-url jdbc:hive2://hivehostname:10000/default;
ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: org.apache.hive.jdbc.HiveDriver java.lang.RuntimeException: Could not load db driver class: org.apache.hive.jdbc.HiveDriver

Ya he colocado el driver de hive-jdbc en el directorio hadoop/lib, sqoop/lib e hive/lib. A veces funciona perfectamente pero a veces da error.

No puedo identificar el comportamiento del sistema porque ya he colocado el archivo jar de hive jdbc. ¿Por qué se comporta así? Por favor, ayúdeme.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en que la clase del controlador no está cargada correctamente por Sqoop. Aquí hay algunas cosas que puedes intentar para resolver este problema:

    1. Comprueba si el archivo jar del controlador hive-jdbc está presente en la ruta de acceso de clase de Sqoop al ejecutar el comando desde un flujo de trabajo de Oozie. Puedes imprimir la ruta de acceso de clase agregando el comando echo $CLASSPATH en el flujo de trabajo de Oozie y comprobar si el archivo jar del controlador hive-jdbc está presente.
    2. Intenta colocar el archivo jar del controlador hive-jdbc en el mismo directorio que el archivo de trabajo de Sqoop y comprueba si resuelve el problema.

    3. Asegúrate de que la versión del controlador hive-jdbc que estás utilizando es compatible con la versión de Hive instalada en el clúster. Si no es así, intenta utilizar una versión compatible del controlador.

    4. Si los pasos anteriores no resuelven el problema, intenta utilizar el argumento –driver-class-path junto con el argumento –driver en el comando de importación de Sqoop para especificar explícitamente la ruta al archivo jar del controlador hive-jdbc.

    ¡Espero que esto ayude!

Comments are closed.