2017-10-10 12 views
1

oozie로 sqoop export 명령 (쉘 스크립트에서)을 실행하는 중에 오류가 발생합니다.oozie와 함께 실패 db 드라이버 클래스를로드 할 수 없습니다 : oracle.jdbc.OracleDriver

CLI (에지 노드)에서

Sqoop을 수출 잘 작동 "java.lang.RuntimeException가이 : oracle.jdbc.OracleDriver : DB 드라이버 클래스를로드 할 수 없습니다."

아래 위치에 ojdbc6.jar를 추가했습니다. /opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/sqoop/lib/

(HDFS 위치) /사용자/oozie/공유/LIB/Sqoop을/및 /사용자/oozie/공유/lib 디렉토리/lib_20161215195933/Sqoop을

나는 또한 파일 내 oozie의 job.properties에 = 사실 oozie.use.system.libpath을 설정 한

내가 하나를 놓친 경우에 저를 인도하십시오 환경. log content

감사 & 감사합니다, 날리

답변

1
  1. 이 (가 할 수 클라우 데라와 HDP에 대한 /user/oozie/share/lib/lib_${timestamp}/sqoop 모양)이 디렉토리 /user/oozie/share/lib/sqoop에 파일을 업로드 있는지 확인합니다.
  2. ojdbc6.jar 파일이 올바른지 점검하십시오 - OracleDriver.class가 들어 있는지 확인하고 파일 크기가 올바른지 확인하십시오. 다운로드하는 동안 오류가 발생할 수 있습니다.
  3. ojdbc6.jar 파일에 대한 사용 권한을 확인하십시오 (결국,이 파일에 755 권한을 부여하려고 시도 할 수 있습니다). 파일의 소유자를 확인하십시오. 기본적으로 oozie이어야합니다.

    sudo -u oozie oozie admin -oozie http://<Oozie_Server_Host>:11000/oozie -sharelibupdate 
    
  4. 는 Sqoop을 위해 sharelib을 확인합니다 :

    sudo -u oozie oozie admin -oozie http://<Oozie_Server_Host>:11000/oozie -shareliblist sqoop* 
    
  5. 당신은 항상 Oozie를 다시 시작할 수 있습니다 명령 아래 실행 (Oozie 서버가있는 호스트에서이 명령을 실행)에 의해
  6. 업데이트 Oozie의 sharelib 서비스. sharelib를 갱신해야합니다.

  7. lib이라는 디렉토리를 HDFS의 workflow.xml 옆에 만들고 jar 파일을 넣습니다. Oozie는 자동으로 해당 워크 플로우의 모든 작업에 사용할 수있는 항아리를 만듭니다.

클로우 데라 사용자는 article을 확인해야합니다. 특히 단 하나의 마지막 단락.

+0

예 Oozie 서비스를 다시 시작했습니다. –

+0

@SonaliGhorpade 첫 번째 대답에 더 많은 정보를 추가했습니다. 나는 그것이 당신을 도울 것이기를 바랍니다. –

+0

나는 위에서 언급 한 모든 것을 6 단계까지 계속했다. 다음은 파일 상태입니다. -rwxr-xr-x 2 oozie hdfs 2739670 2017-10-12 03:21 /user/oozie/share/lib/lib_20161215195933/sqoop/ojdbc6.jar jar 파일을 workflow.xml, 아래 두 줄을 job.properties 파일에서 제거해야합니까? oozie.libpath = $ {nameNode}/user/oozie/share/lib oozie.use.system.libpath = true –