我想将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('runsk_gen')['runsk']}</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/