2012-05-08 41 views
6

Tôi đang cố gắng chuyển đổi luồng công việc đơn giản thành oozie. Tôi đã cố gắng xem xét các ví dụ về oozie nhưng chúng hơi quá rùng mình. Hiệu quả tôi muốn chạy một truy vấn và xuất kết quả vào một tập tin văn bản.Ví dụ đơn giản oozie về truy vấn hive?

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

Tôi làm cách nào để dịch nó thành oozie để chạy hàng giờ?

+0

dịch thành oozie nghĩa là bạn có muốn có tệp công việc.xml để thực thi công việc lên lịch chạy lệnh này cho mỗi giờ không? – WR10

+0

Vâng, đó chính xác là những gì tôi muốn đạt được, nhưng workflow.xml trông như thế nào? – nickponline

+0

Bạn có thể cần ba bước để thực hiện việc này. 1. Tệp workflow.xml sẽ được thực thi cho công việc hive. 2. Một kịch bản lệnh shell để thực thi luồng công việc oozie. 3. Một công việc định kỳ để lên lịch chạy kịch bản lệnh định kỳ cho mỗi giờ. – WR10

Trả lời

6

công việc của bạn có thể giống như thế này ...
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> 

Vì vậy, đây hive-site.xml là xml site hiện diện trong $ HIVE_HOME/conf thư mục.
tập tin script.q chứa truy vấn hive thực tế. select * from ${INPUT_TABLE}.


chúng tôi có thể sử dụng thông số OUTPUT ở đâu và ở đâu?

+0

OUTPUT được chuyển thành một đối số cho . ví dụ: '$ {OUTPUT}' – WR10