2012-02-23 52 views
3

這使我瘋狂 - 我覺得自己像一個白癡試圖找出如何做到這一點!如何在oozie工作流中運行hadoop示例jar?

我建立一個使用Oozie的客戶端庫運行工作流應用程序。真的很簡單,我想爲我的代碼構建一些測試,所以我可以檢查我做的是正確的代碼 - 感謝oozie客戶端庫 - 非常簡單。

我已經安裝了Hadoop和可以運行標準的單詞計數提供的例子,沒有問題,但我不能工作了如何通過Oozie的和我發瘋運行的東西。

所以我想我會騙,詢問一些人誰都會知道(蠕變蠕變)。

如何轉換:

bin/hadoop jar hadoop*examples*.jar wordcount input/somedata output 

要在Oozie的工作流程?

我認爲它的一個Java的動作,但我就是不知道是什麼填補到工作流程的XML!

請幫助 - 將工作流程的樣子和我將如何在命令行中運行它。

非常感謝。

回答

2

對於運行Oozie的工作,你需要workflow.xml和屬性文件。
對於運行Basic WordCount程序,您的workflow.xml將如此。

<workflow-app xmlns="uri:oozie:workflow:0.1" name="WorkflowRunnerTest"> 

    <start to="intersection0"/> 

    <action name="intersection0"> 
    <map-reduce> 
     <job-tracker>localhost:54101</job-tracker> 
     <name-node>hdfs://localhost:54100</name-node> 

     <prepare> 
     <delete path="hdfs://localhost:54100/user/user1/out1"/> 
     </prepare> 

     <configuration> 
     <property> 
      <name>mapred.job.queue.name</name> 
      <value>default</value> 
     </property> 
     <property> 
      <name>mapred.mapper.class</name> 
      <value>MapperClass</value> 
     </property> 
     <property> 
      <name>mapred.reducer.class</name> 
      <value>ReducerClass</value> 
     </property> 
     <property> 
      <name>mapred.output.key.class</name> 
      <value>org.apache.hadoop.io.Text</value> 
     </property> 
     <property> 
      <name>mapred.output.value.class</name> 
      <value>org.apache.hadoop.io.IntWritable</value> 
     </property> 
     <property> 
      <name>mapred.input.dir</name> 
      <value>/user/user1/inp</value> 
     </property> 
     <property> 
      <name>mapred.output.dir</name> 
      <value>/user/user1/out1</value> 
     </property> 
     </configuration> 
    </map-reduce> 

    <ok to="end"/> 
    <error to="fail"/> 
    </action> 

    <kill name="fail"> 
    <message>Map/Reduce failed, error message</message> 
    </kill> 
    <end name="end"/> 

</workflow-app> 


job.propertis文件將
oozie.wf.application.path=hdfs://localhost:54100/user/user1/oozie/workflow-apps/sample-mr



的workflow.xml具有存在於HDFS://本地主機:54100 /用戶/用戶1/Oozie的/工作流的應用程序/ sample-mr和將包含必需類的jar文件複製到路徑hdfs:// localhost:54100/user/user1/oozie/workflow-apps/sample-mr/lib中。


的Oozie的作業可以在命令行通過

oozie job -oozie http://localhost:8080/oozie -config map-reduce-job.properties -run

+0

謝謝運行,該工程! 有沒有明確的方式來指定jar文件,而不是複製到$ {oozie.wf.application.path}/lib /? (OR) 如何在不重複HDFS的情況下爲兩種不同的工作流程使用相同的JAR文件? – 2013-12-09 09:05:39

+0

@ThammeGowda $ {oozie.wf.application.path}/lib /實際上可以是一個通用路徑。相同的路徑可以用於兩個工作流程,因此您不必複製您的jars.e.g hdfs:// localhost:54100/user/user1/oozie/lib可以是所有jar的共享位置。該路徑將被設置爲oozie作業的oozie.libpath。 – WR10 2013-12-11 07:06:00

相關問題