1
我試圖運行一個簡單的Oozie作業來使用Sqoop從本地MySQL數據庫中提取數據。下面是我的workflow.xml:Oozie作業失敗
<workflow-app name="sqoopoozietest" xmlns="uri:oozie:workflow:0.1">
<start to="sqoopconnect"/>
<action name="sqoopconnect">
<sqoop xmlns="uri:oozie:sqoop-action:0.2">
<job-tracker>horton-n2.hdp.local:8050</job-tracker>
<name-node>hdfs://horton-n1.hdp.local:8020</name-node>
<prepare>
<delete path="hdfs://horton-n1.hdp.local:8020/user/mannb/sqoopoozie/sqoopinput"/>
</prepare>
<configuration>
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
</configuration>
<command>import --connect jdbc:mysql://horton-n1.hdp.local/sqooptest --table sampledata --username sqoop --password sqoop123 --target-dir --driver com.mysql.jdbc.Driver hdfs://horton-n1.hdp.local:8020/user/mannb/sqoopoozie/sqoopinput -m 1</command>
</sqoop>
<ok to = "sqoopend"/>
<error to = "kill"/>
</action>
<kill name = "kill">
<message>"Workflow failed."</message>
</kill>
<end name = "sqoopend" />
</workflow-app>
我從/var/log/oozie.log收到錯誤主要錯誤:
javax.servlet.jsp.el.ELException:函數「 wf:errorMessage「需要1個參數,但已通過0
我認爲這很奇怪,因爲我傳遞了殺死名稱消息的一個參數:」工作流失敗。「。
下面是我的job.properties文件:
nameNode=hdfs://horton-n1.hdp.local:8020
jobTracker=horton-n2.hdp.local:8050
queueName=default
#oozie.use.system.libpath=true
oozie.wf.application.path=${nameNode}/user/mannb/sqoopoozie/workflow.xml
任何幫助是極大的讚賞。
我做了這個改變,仍然在oozie.log中得到同樣的錯誤。我從job.properties中取消註釋#oozie.use.system.libpath = true,因爲註釋它導致查找Sqoop .jars時出現問題。 – user2432819
我在我的sqoop導入命令中有一個錯誤。糾正後,它成功運行,仍然不確定錯誤代碼爲什麼不能正確返回。這使我從主要問題分心。儘管感謝您的意見。 – user2432819
這讓我分心,但在錯誤的情況下,它應該工作,你可能需要再次檢查一次。 –