Как исправить SQOOP не найден и ClassNotFound в Dolphinscheduler

Как исправить SQOOP не найден и ClassNotFound в Dolphinscheduler

10 июля 2025 г.

Интеграция Dolphinscheduler с SQOOP может оптимизировать синхронизацию данных в разных системах. Но начинающие часто сталкиваются с разочаровывающими ошибками во время настройки и выполнения.


Это руководство проводит вас через общие ловушки, в комплекте с реальными сообщениями об ошибках, решениях и советах по конфигурации. Независимо от того, боретесь ли вы с переменными окружающей среды, проблемами классов или узорные команды SQOOP, эта статья поможет вам в кратчайшие сроки протекать данные.


1. Ошибка при создании арендатора в Dolphinscheduler: разрешение отказано

Если вы видите ошибку в журналах, указывающей на недостаточные разрешения при создании арендатора в Dolphinscheduler, вы можете включить разрешения, используя следующую команду:

hdfs dfs -chmod 777 /


2. Столкновение следующей ошибки

SQOOP: команда не может быть найдена

Возможные проблемы могут быть:

  1. SQOOP не установлен;
  2. или он установлен, но не настроен в переменных среды Dolphinscheduler.
  3. Можно ли использовать полный путь?

Давайте проверим, как Dolphinscheduler интегрируется с SQOOP:

В конце файла конфигурации, показанного выше, добавьте следующие строки:

export SQOOP_HOME=/opt/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

Затем перезапустите Dolphinscheduler:

# Check status
bash ./bin/dolphinscheduler-daemon.sh status standalone-server

# Stop DolphinScheduler
bash ./bin/dolphinscheduler-daemon.sh stop standalone-server

# Start DolphinScheduler
bash ./bin/dolphinscheduler-daemon.sh start standalone-server


3. Если вы столкнетесь с следующей ошибкой:

Caused by: java.lang.ClassNotFoundException: Class QueryResult not found
    at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2571)
    at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2665)
    ... 12 more 


Временное решение:

СкопироватьQueryResult.jarфайл вlibСправочник SQOOP.

[INFO] 2024-09-25 06:19:16.083 +0000 -  -> Note: /tmp/sqoop-root/compile/46c0c4b3def5aba0c202ae9664234de6/QueryResult.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

# 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  /opt/installs/sqoop/lib/


Постоянное решение:

Добавьте следующую строку в файл конфигурации Dolphinscheduler:

3

В нижней части файла конфигурации добавьте:

export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop

После конфигурации перезапустите Dolphinscheduler:

# Check status
bash ./bin/dolphinscheduler-daemon.sh status standalone-server

# Stop
bash ./bin/dolphinscheduler-daemon.sh stop standalone-server

# Start
bash ./bin/dolphinscheduler-daemon.sh start standalone-server


4. Пример журнала ошибок:

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

Это указывает на то, что в команде SQOOP есть синтаксическая ошибка, используемая в рабочем процессе Dolphinscheduler:

Дважды проверьте команду вашего рабочего процесса SQOOP:

Удалить параметр SQOOP:

[INFO] 2024-09-25 06:34:34.639 +0000 -  -> Sqoop version: 1.4.7
WARN - Setting password on command-line is insecure. Consider using -P instead.
ERROR - Must specify destination with --target-dir. Try --help for usage instructions.

Если это произойдет, измените команду:

Целевой путь улья:/tmp/user_orclog

Если вы видите следующую ошибку синтаксиса SQL:

Error executing statement: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%Y-%m-%d) = 2024-09-24 AND  (1 = 0)' at line 1

→ Замените двойные кавычки на отдельные кавычки в своем операторе SQL.


5. Ошибка уляки

Caused by: org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ParseException line 45:21 cannot recognize input near ';' '<EOF>' '<EOF>' in expression specification

Решение:

Используйте тип задачи SQL и не добавляйте полуколон (;) В конце заявления.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE