2014-01-30 92 views
7

我正在嘗試使用oozie做一個簡單的工作。
這將是一個簡單的豬行動。如何部署和運行oozie工作?

我有一個文件:含FirstScript.pig:

dual = LOAD 'default.dual' USING org.apache.hcatalog.pig.HCatLoader(); 
store dual into 'dummy_file.txt' using PigStorage(); 

,並含有workflow.xml:

<workflow-app name="FirstWorkFlow" xmlns="uri:oozie:workflow:0.2"> 
    <start to="FirstJob"/> 
    <action name="FirstJob"> 
     <pig> 
      <job-tracker>hadoop:50300</job-tracker> 
      <name-node>hdfs://hadoop:8020</name-node> 
      <script>/FirstScript.pig</script> 
     </pig> 
     <ok to="okjob"/> 
     <error to="errorjob"/> 
    </action> 
    <ok name='okjob'>  
     <message>job OK, message[${wf:errorMessage()}]</message> 
    </ok>  
    <error name='errorjob'>  
     <message>job error, error message[${wf:errorMessage()}]</message> 
    </error>  
</workflow-app> 

我已經創建的結構:

FirstScript 
|- lib 
|---FirstScript.pig 
|- workflow.xml 

什麼現在? 如何部署它並使用oozie運行?
任何人都可以更有經驗的幫助嗎?

問候
帕維爾

回答

5

我不喜歡這樣寫道:

hadoop fs -put workflow.xml some_dir/ 
oozie job --oozie http://your_host:11000/oozie -config cluster_conf.xml -run 

和我cluster_conf.xml看起來像這樣(請首先檢查你的口,他們依賴的Hadoop發行版):

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<configuration> 
<property> 
     <name>nameNode</name> 
     <value>hdfs://my_nn:8020</value> 
</property> 
<property> 
     <name>jobTracker</name> 
     <value>my_jt:8050</value> 
</property> 
<property> 
     <name>oozie.wf.application.path</name> 
     <value>/user/my_user/some_dir/workflow.xml</value> 
</property> 
</configuration> 
+0

嗨,感謝您的回答。還有兩個問題:這個cluster_conf.xml文件是否也應該上傳到hdfs?第二:因爲我還沒有完成安裝,所以我不確定我的oozie安裝地址。我能找到它嗎?我知道cluster_conf.xml所需的配置可以在core-site.xml和mapred-site.xml中找到,但是沒有任何關於oozie的... –

+1

嗨,我很高興它有幫助。不,你不需要複製這個conf文件到hdfs。你可以在** oozie-site.xml中找到Oozie配置**);在我的安裝中,它位於**/etc/oozie/conf/oozie-site.xml **中,只需查找** oozie.base.url **財產。 –

1

配置文件應該指向job.properties,而不是file.xml。因爲,job.properties包含路徑workflow.xml

oozie job --oozie http://your_host:11000/oozie -config **/job.properties** -run