1
Sqoopを使用してローカルMySQLデータベースからデータを取得する簡単なOozieジョブを実行しようとしています。以下は私の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
私はkill nameメッセージに引数を渡しているので、これは奇妙だと思いました。
以下は私の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で同じエラーが発生しました。私は#oozie.use.system.libpath = trueをjob.propertiesからコメント解除しました。コメントアウトするとSqoop .jarsの検索に問題が生じました。 – user2432819
sqoop importコマンドでエラーが発生しました。それを訂正した後、正常に実行されましたが、まだエラーコードが正しく戻らない理由は不明です。これは私を主な問題から逸らしました。あなたの入力をありがとう。 – user2432819
これも私の気が散漫でしたが、エラーシナリオではうまくいくはずです。一度ダブルチェックしなければならないかもしれません。 –