我想将Hive Set命令传递到Oozie脚本中的所有hql调用中。我有很多hql,我想将hive参数传递给每个hql。我曾经将每个set命令写入每个hql文件中,现在我希望保持工作流程级别。有人可以建议我做错了什么吗?

我已经把我的工作流程的一部分。执行作业时,我看不到配置单元参数没有传播,因此作业失败。

    <workflow-app name="WF_AMLMKTM_L1_LOAD" xmlns="uri:oozie:workflow:0.5">
      <global>
      <job-tracker>${jobTracker}</job-tracker>
      <name-node>${nameNode}</name-node>
      <configuration>
                    <property>
                        <name>hive.exec.parallel</name>
                        <value>true</value>
                    </property>
                    <property>
                        <name>hive.execution.engine</name>
                        <value>spark</value>
                    </property>
                    <property>
                        <name>hive.exec.dynamic.partition</name>
                        <value>true</value>
                    </property>
                    <property>
                        <name>hive.exec.dynamic.partition.mode</name>
                        <value>nonstrict</value>
                    </property>
                </configuration>
      </global>


<action name="map_prc_stg_l1_load_com" cred="hive2">
        <hive2 xmlns="uri:oozie:hive2-action:0.1">
            <jdbc-url>${hive2_jdbc_url}</jdbc-url>
            <script>${basepath}/applications/stg_l1_load_com.hql</script>
              <param>basepath=${basepath}</param>
              <param>runsk=${wf:actionData(&#39;runsk_gen&#39;)[&#39;runsk&#39;]}</param>

最佳答案

我认为您可以按如下所示添加它。

... <argument>--hiveconf</argument><argument>hive.exec.dynamic.partition.mode=nonstrict</argument><argument>--hiveconf</argument><argument>hive.exec.dynamic.partition=true</argument>

关于hadoop - 如何在全局配置中从Oozie设置 hive 属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38986122/

10-12 23:42