2012-05-08 17 views
6

मैं ओज़ी में एक साधारण काम प्रवाह को बदलने की कोशिश कर रहा हूं। मैंने ओजी उदाहरणों को देखने की कोशिश की है लेकिन वे थोड़ी अधिक जबरदस्त हैं। प्रभावी रूप से मैं एक क्वेरी चलाने और परिणाम को एक पाठ फ़ाइल में आउटपुट करना चाहता हूं।हाइव क्वेरी का सरल ओज़ी उदाहरण?

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

ओजी में इसे हर घंटे चलाने के लिए अनुवाद करने के बारे में मुझे कैसे मिला?

+0

ओज़ी माध्यमों में अनुवाद करने का मतलब है, क्या आप प्रत्येक घंटे के लिए इस हाइव स्टेटमेंट को चलाने वाले शेड्यूलर नौकरी को निष्पादित करने के लिए वर्कफ़्लो.एक्सएमएल रखना चाहते हैं? – WR10

+0

हाँ यह वही है जो मैं प्राप्त करना चाहता हूं, लेकिन वर्कफ़्लो.एक्सएमएल कैसा दिखता है? – nickponline

+0

ऐसा करने के लिए आपको तीन चरणों की आवश्यकता हो सकती है। 1. एक वर्कफ़्लो.एक्सएमएल फ़ाइल को हाइव जॉब के लिए निष्पादित किया जाना है। 2. ओजी वर्कफ़्लो निष्पादित करने के लिए एक खोल स्क्रिप्ट। 3. हर घंटे के लिए समय-समय पर शैल स्क्रिप्ट चलाने के लिए शेड्यूल करने के लिए एक क्रॉन नौकरी। – 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 फ़ोल्डर में मौजूद है।
script.q फ़ाइल में वास्तविक हाइव क्वेरी है। select * from ${INPUT_TABLE}


हम कैसे और कहां OUTPUT param का उपयोग कर सकते हैं?

+0

OUTPUT पर एक तर्क के रूप में पारित किया गया है। उदा। '$ {आउटपुट}' – WR10