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:
- SQOOP no está instalado;
- o está instalado pero no está configurado en las variables de entorno de DolphinsCheduler.
- ¿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:
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.