[英]Saving hive output through oozie using “>”
在oozie中可能會發生這種情況嗎?
hive -f hiveScript.hql > output.txt
對於上面的代碼,我有以下oozie hive操作,如下所示:
<hive xmlns="uri:oozie:hive-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<script>hiveScript.hql</script>
</hive>
<ok to="end" />
<error to="kill" />
</hive>
我如何告訴腳本輸出應該到哪里?
對於Oozie而言,這是不可能的。 這是因為Oozie在群集中的節點上(大部分)啟動了工作流操作。
這樣,您可以運行Oozie Shell操作來運行hive -f hiveScript.hql > output.txt
...但是,這意味着需要將Hive安裝在任何地方,將hiveScript.hql安裝在任何地方,等等。這是另一種含義。效果不是很好,因為您的輸出文件將位於分配給該節點的任何節點上,以運行此Shell動作。 https://oozie.apache.org/docs/3.3.0/DG_ShellActionExtension.html
我認為您最好的選擇是在hiveScript.hql文件中包含INSERT OVERWRITE DIRECTORY '/tmp/hdfs_out' SELECT * FROM ...
,然后將結果從HDFS中提取。
編輯:我剛剛想到的另一個選項是使用SSH操作。 https://oozie.apache.org/docs/3.2.0-incubating/DG_SshActionExtension.html您可能將SSH Action Shell置於目標計算機上並運行hive -f hiveScript.hql > output.txt
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.