2012-05-08 18 views
6

Próbuję przekonwertować prosty przepływ pracy na oozie. Próbowałem przeglądać oozie przykłady, ale są one nieco over-whelming. Skutecznie chcę uruchomić kwerendę i wyprowadzić wynik do pliku tekstowego.Prosty przykład oozie z zapytaniem o ula?

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

Jak mam zamiar przetłumaczyć to na oozie, aby działało co godzinę?

+0

przetłumaczenie na oozie oznacza, czy chcesz mieć plik workflow.xml do wykonania zadania harmonogramu uruchamiającego instrukcje dotyczące tej gałęzi dla każdej godziny? – WR10

+0

Tak, dokładnie to chcę osiągnąć, ale jak wygląda plik workflow.xml? – nickponline

+0

Aby to zrobić, możesz potrzebować trzech kroków. 1. Plik workflow.xml do wykonania dla zadania w ulu. 2. Skrypt powłoki do wykonania przepływu pracy oozie. 3. Zadanie cron zaplanować uruchamianie skryptu powłoki okresowo dla każdej godziny. – WR10

Odpowiedz

6

przepływ pracy może wyglądać tak ...
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> 

Więc ula-site.xml jest xml witryny obecne w $ HIVE_HOME/conf folderu.
plik script.q zawiera rzeczywiste zapytanie o ula. select * from ${INPUT_TABLE}.


jak i gdzie możemy użyć parametru OUTPUT?

+0

WYJŚCIE jest przekazywane jako argument do . np. "$ {WYJŚCIE}" – WR10