2017-10-10 132 views
1

我在執行sqoop export命令(在shell腳本中)時使用oozie時遇到了以下錯誤。oozie失敗,無法加載數據庫驅動程序類:oracle.jdbc.OracleDriver

「了java.lang.RuntimeException:無法加載數據庫驅動程序類:oracle.jdbc.OracleDriver」 從CLI(邊緣節點)

sqoop出口工作正常。

我已將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.use.system.libpath = true在我的Oozie的job.properties文件

請指引我,如果我錯過任何設置。 log content

感謝&問候, 索納莉

回答

1
  1. 請確保您上傳文件到一個目錄/user/oozie/share/lib/sqoop(它可能看起來像/user/oozie/share/lib/lib_${timestamp}/sqoop對Cloudera的和HDP)。
  2. 檢查ojdbc6.jar文件是否正確 - 檢查它是否包含OracleDriver.class並確保文件的大小正常。下載時可能會出錯。
  3. 檢查對ojdbc6.jar文件的權限(最終,您可以嘗試對此文件給予755權限)。檢查文件的所有者是誰 - 默認情況下它應該是oozie
  4. 更新Oozie的sharelib通過執行以下命令(其中Oozie的服務器所在的主機上運行此命令):

    sudo -u oozie oozie admin -oozie http://<Oozie_Server_Host>:11000/oozie -sharelibupdate 
    
  5. 驗證sharelib爲sqoop:

    sudo -u oozie oozie admin -oozie http://<Oozie_Server_Host>:11000/oozie -shareliblist sqoop* 
    
  6. 您可以隨時重新啓動了Oozie服務。它應該更新sharelib。
  7. 在HDFS的workflow.xml旁邊創建一個名爲lib的目錄,並在其中放入jar。 Oozie會自動將這些罐子用於該工作流程中的所有操作。

Cloudera用戶應該檢查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 –

相關問題