dolphinscheduler에서 sqoop을 찾지 못하고 classNotFound를 수정하는 방법

dolphinscheduler에서 sqoop을 찾지 못하고 classNotFound를 수정하는 방법

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의 구성 파일에 다음 줄을 추가하십시오.

33

구성 파일의 하단에서 다음을 추가합니다.

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:(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
    ...

이는 Dolphinscheduler 워크 플로에 사용 된 SQoop 명령에 구문 오류가 있음을 나타냅니다.

워크 플로의 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 ';' '' '' in expression specification

해결책:

SQL 작업 유형을 사용하고 세미콜론을 추가하지 마십시오 (;) 성명서의 끝에.

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다