我可以在腳本中編寫sqoop導入命令並以oozie身份執行它作爲協調器工作流嗎?oozie在shell腳本中運行Sqoop命令
我已經厭倦了這樣做,發現錯誤沒有發現說sqoop命令,即使我給的絕對路徑sqoop執行
script.sh如下
sqoop import --connect 'jdbc:sqlserver://xx.xx.xx.xx' -username=sa -password -table materials --fields-terminated-by '^' -- --schema dbo -target-dir /user/hadoop/CFFC/oozie_materials
和我已經放在HDFS文件,並給Oozie的其path.The工作流程如下:
<workflow-app xmlns='uri:oozie:workflow:0.3' name='shell-wf'>
<start to='shell1' />
<action name='shell1'>
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<exec>script.sh</exec>
<file>script.sh#script.sh</file>
</shell>
<ok to="end" />
<error to="fail" />
</action>
<kill name="fail">
<message>Script failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name='end' />
oozie在mapreduce日誌中找不到sqloop命令時返回錯誤。
那麼這是一個很好的做法?
謝謝
我已經說過,但oozie返回一個JA018錯誤代碼和消息作爲'Main類[org.apache.oozie.action.hadoop.ShellMain],退出代碼[1]'。我已經指出oozie sqoop的sharelibs,但它返回該錯誤。 – 2015-03-24 10:36:24
你解決了這個問題嗎?我面臨同樣的問題。如果你能幫助Hussain Shaik,那將非常棒 – 2015-04-02 14:33:12