2012-05-08 56 views
6

我想將一個簡單的工作流轉換爲oozie。我試圖通過oozie的例子看,但他們有點過分。實際上,我想運行查詢並將結果輸出到文本文件。配置單元查詢的簡單oozie示例?

hive -e 'select * from tables' > output.txt 

如何將它翻譯成oozie讓它每小時運行一次?

+0

翻譯成oozie的意思是,你是否希望有一個workflow.xml來執行一個調度程序作業,在每個小時運行這個hive語句? – WR10

+0

是的,這正是我想要實現的目標,但是workflow.xml的樣子是什麼? – nickponline

+0

您可能需要三個步驟才能做到這一點。 1.要爲配置單元作業執行的workflow.xml文件。 2.執行oozie工作流的shell腳本。 3.計劃每隔一小時定期運行shell腳本的cron作業。 – WR10

回答

6

你的工作流可能是這個樣子......
workflow.xml

<workflow-app xmlns="uri:oozie:workflow:0.2" name="hive-wf"> 
    <start to="hive-node"/> 
    <action name="hive-node"> 
     <hive xmlns="uri:oozie:hive-action:0.2"> 
      <job-tracker>localhost:50001</job-tracker> 
      <name-node>hdfs://localhost:50000</name-node> 
      <configuration> 
       <property> 
        <name>mapred.job.queue.name</name> 
        <value>default</value> 
       </property> 
       <property> 
        <name>oozie.hive.defaults</name> 
        <value>/user/user1/oozie/hive-site.xml</value> 
       </property> 
      </configuration> 
      <script>script.q</script> 
      <param>INPUT_TABLE=SampleTable</param> 
      <param>OUTPUT=/user/user1/output-data/hive</param> 
     </hive> 
     <ok to="end"/> 
     <error to="fail"/> 
    </action> 
    <kill name="fail"> 
     <message>Hive failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
    </kill> 
    <end name="end"/> 
</workflow-app> 

所以在這裏蜂房的site.xml存在於$ HIVE_HOME/conf目錄文件夾中的網站的XML。
script.q文件包含實際的配置單元查詢。 select * from ${INPUT_TABLE}


如何以及在哪裏可以使用OUTPUT參數?

+0

OUTPUT作爲參數傳遞給。 例如'$ {} OUTPUT' – WR10