在oozie中这样的事情可能吗?
Success
我对上面的代码有以下oozie hive操作,如下所示:
hive -f hiveScript.hql > output.txt
如何告诉脚本输出应该去哪里?
答案 0 :(得分:3)
对于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 Action。 https://oozie.apache.org/docs/3.2.0-incubating/DG_SshActionExtension.html您可能拥有到目标计算机的SSH Action shell并运行hive -f hiveScript.hql > output.txt
。