我们在 oozie 中有一个配置单元操作,我们正在覆盖工作流中映射属性的一些默认值。
由配置单元操作触发的子任务具有属性的默认值,而不是工作流中配置的值。作业跟踪器中每个子作业生成的作业.xml仅显示默认值。
如何确保由 hive 操作启动的所有子任务都从工作流.xml获取属性。
以下是我在工作流中的配置单元操作.xml:
<action name="Hive">
<hive>
<job-tracker>${job_tracker}</job-tracker>
<name-node>${name_node}</name-node>
<script>${wf:actionData('Query')['Location']}</script>
<param>JOBDIR=${jobDir}</param>
<configuration>
<property>
<name>oozie.launcher.mapred.child.java.opts</name>
<value>-Xmx512m</value>
</property>
<property>
<name>mapred.map.child.java.opts</name>
<value>-Xmx1024m</value>
</property>
<property>
<name>mapred.reduce.child.java.opts</name>
<value>-Xmx1024m</value>
</property>
<name>mapred.max.split.size</name>
<value>2560000</value>
<description>Largest valid size in bytes for a file split.
This should be set to a small multiple of the block size in bytes
</description>
</property>
</configuration>
</hive>
尝试使用
mapred.map.child.java.opts -> mapreduce.map.java.opts
mapred.reduce.child.java.opts -> mapreduce.reduce.java.opts
mapred.max.split.size -> mapreduce.input.fileinputformat.split.maxsize
我认为"oozie.launcher.mapred.child.java.opts"工作正常。