Home Ciencia y Tecnología Cómo arreglar SQOOP no encontrado y classnotFound en Dolphinscheduler

Cómo arreglar SQOOP no encontrado y classnotFound en Dolphinscheduler

36
0

La integración de DolphinsCheduler con SQOOP puede optimizar la sincronización de datos entre los sistemas. Pero los principiantes a menudo se encuentran con errores frustrantes durante la configuración y la ejecución.

Esta guía lo guía a través de dificultades comunes, con mensajes de error, soluciones y consejos de configuración del mundo actual. Ya sea que esté luchando con las variables de entorno, los problemas de classpath o los comandos SQOOP malformados, este artículo lo ayudará a que los datos fluyan sin problemas en poco tiempo.

1. Error Al crear un inquilino en Dolphinscheduler: permiso denegado

Si ve un error en los registros que indican permisos insuficientes al crear un inquilino en DolphinsCheduler, puede habilitar permisos utilizando el siguiente comando:

hdfs dfs -chmod 777 /

2. Encontrar el siguiente error

Sqoop: el comando no se puede encontrar

Los posibles problemas pueden ser:

  1. SQOOP no está instalado;
  2. o está instalado pero no está configurado en las variables de entorno de DolphinsCheduler.
  3. ¿Se puede usar la ruta completa?

Compruebemos cómo DolphinsCheduler se integra con SQOOP:

Al closing del archivo de configuración que se muestra arriba, agregue las siguientes líneas:

export SQOOP_HOME=/choose/installs/sqoop

export PATH=$SQOOP_HOME/bin:$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$DATAX_HOME/bin:$SEATUNNEL_HOME/bin:$CHUNJUN_HOME/bin:$PATH

Luego reinicie Dolphinscheduler:

# Examine standing
bash ./bin/dolphinscheduler-daemon.sh standing standalone-server

# Cease DolphinScheduler
bash ./bin/dolphinscheduler-daemon.sh cease standalone-server

# Begin DolphinScheduler
bash ./bin/dolphinscheduler-daemon.sh begin standalone-server

3. Si encuentra el siguiente error:

Brought on by: java.lang.ClassNotFoundException: Class QueryResult not discovered
    at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2571)
    at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2665)
    ... 12 extra 

Solución temporal:

Copiar el QueryResult.jar archivo al lib Directorio de SQOOP.

[INFO] 2024-09-25 06:19:16.083 +0000 -  -> Be aware: /tmp/sqoop-root/compile/46c0c4b3def5aba0c202ae9664234de6/QueryResult.java makes use of or overrides a deprecated API.
Be aware: Recompile with -Xlint:deprecation for particulars.

# Primarily based on the log, go to this path:
cd /tmp/sqoop-root/compile/46c0c4b3def5aba0c202ae9664234de6

# Copy the jar file
cp /tmp/sqoop-root/compile/46c0c4b3def5aba0c202ae9664234de6/QueryResult.jar  /choose/installs/sqoop/lib/

Solución permanente:

Agregue la siguiente línea al archivo de configuración de DolphinsCheduler:

33

En la parte inferior del archivo de configuración, agregue:

export HADOOP_CONF_DIR=/choose/installs/hadoop/and so forth/hadoop

Después de la configuración, reinicie DolphinsCheduler:

# Examine standing
bash ./bin/dolphinscheduler-daemon.sh standing standalone-server

# Cease
bash ./bin/dolphinscheduler-daemon.sh cease standalone-server

# Begin
bash ./bin/dolphinscheduler-daemon.sh begin standalone-server

4. Ejemplo de registro de errores:

[INFO] 2024-09-25 06:27:53.628 +0000 -  -> 2024-09-25 14:27:52,757 INFO  [main] sqoop.Sqoop (Sqoop.java:(96)) - Working Sqoop model: 1.4.7
    2024-09-25 14:27:52,824 ERROR [main] instrument.BaseSqoopTool - Error parsing arguments for import:
    2024-09-25 14:27:52,825 ERROR [main] instrument.BaseSqoopTool - Unrecognized argument: dt
    2024-09-25 14:27:52,825 ERROR [main] instrument.BaseSqoopTool - Unrecognized argument: 2024-09-24
    ...

Esto indica que hay un error de sintaxis en el comando SQOOP utilizado en el flujo de trabajo DolphinsCheduler:

Verifique el comando SQOOP de su flujo de trabajo:

Eliminar el parámetro SQOOP:

[INFO] 2024-09-25 06:34:34.639 +0000 -  -> Sqoop model: 1.4.7
WARN - Setting password on command-line is insecure. Think about using -P as a substitute.
ERROR - Should specify vacation spot with --target-dir. Attempt --help for utilization directions.

Si esto sucede, modifique el comando:

Camino objetivo de la colmena: /tmp/user_orclog

Si ve el siguiente error de sintaxis SQL:

Error executing assertion: java.sql.SQLSyntaxErrorException: You may have an error in your SQL syntax; examine the guide that corresponds to your MySQL server model for the suitable syntax to make use of close to '%Y-%m-%d) = 2024-09-24 AND  (1 = 0)' at line 1

→ Reemplace las cotizaciones dobles con cotizaciones únicas en su instrucción SQL.

5. Error de colmena

Brought on by: org.apache.hive.service.cli.HiveSQLException: Error whereas compiling assertion: FAILED: ParseException line 45:21 can not acknowledge enter close to ';' '' '' in expression specification

Solución:

Use el tipo de tarea SQL y no agregue un punto y coma (;) al closing de la declaración.

fuente