如何在oozie工作流中传递Hive设置参数

时间:2015-01-07 07:58:11

标签: hadoop hive oozie

无论如何都要传递像

这样的Hive参数

SET hive.exec.parallel = true; SET hive.vectorized.execution.enabled = true;

使用参数文件

使用oozie工作流程

1 个答案:

答案 0 :(得分:3)

这取决于您调用配置单元查询(hql)文件的方式。

如果您在工作流程中使用配置单元操作,则可以在配置部分或hql文件myscript.q中指定属性标记内的配置单元参数

<workflow-app name="sample-wf" xmlns="uri:oozie:workflow:0.1">
    ...
    <action name="myfirsthivejob">
        <hive xmlns="uri:oozie:hive-action:0.2">
            <job-traker>foo:9001</job-tracker>
            <name-node>bar:9000</name-node>
            <prepare>
                <delete path="${jobOutput}"/>
            </prepare>

            <configuration>
                <property>
                    <name>hive.exec.parallel</name>
                    <value>true</value>
                </property>
            </configuration>

            <script>myscript.q</script>
            <param>InputDir=/home/tucu/input-data</param>
            <param>OutputDir=${jobOutput}</param>
        </hive>
        <ok to="myotherjob"/>
        <error to="errorcleanup"/>
    </action>
    ...
</workflow-app>

如果使用oozie shell操作,则可以在shell脚本中指定hive参数,如下所示。

hive --hiveconf "<hive queries>"

hive --hiveconf -f "hivequeries.hql"