You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Attila Sasvari (JIRA)" <ji...@apache.org> on 2017/07/25 10:06:02 UTC

[jira] [Created] (OOZIE-3007) Ability to override default Map Reduce properties via default action config file

Attila Sasvari created OOZIE-3007:
-------------------------------------

             Summary: Ability to override default Map Reduce properties via default action config file
                 Key: OOZIE-3007
                 URL: https://issues.apache.org/jira/browse/OOZIE-3007
             Project: Oozie
          Issue Type: Bug
            Reporter: Attila Sasvari


According to https://oozie.apache.org/docs/4.2.0/AG_ActionConfiguration.html , it is possible to specify for default configuration parameters for Oozie actions by the means of action configuration files. 

However, this mechanism does not work for Map Reduce actions.

For example, assume we created {{/var/lib/oozie/action-conf/map-reduce.xml}} (readable by Oozie) with the following content:

{code}
 cat map-reduce.xml
<configuration>
  <property>
    <name>oozie.launcher.mapred.fairscheduler.pool</name>
    <value>root.support.coe</value>
  </property>
  <property>
    <name>oozie.launcher.mapred.job.queue.name</name>
    <value>oozie_queue</value>
  </property>
  <property>
    <name>mapreduce.job.queuename</name>
    <value>oozie_queue</value>
  </property>
  <property>
    <name>mapred.queue.name</name>
    <value>oozie_queue</value>
    </property>
</configuration>
{code}

and added the following to {{oozie-site.xml}}
{code}
<property>
  <name>oozie.service.HadoopAccessorService.action.configurations</name>
  <value>*=/var/lib/oozie/action-conf</value>
</property>
{code}

the mapper task started by Oozie will be put into the {{default}} queue instead of {{oozie-launcher}}.

h5. Possible reason:
HadoopAccessorService's {{loadHadoopConfigs()}} loads default hadoop configuration settings from hadoop config files. 

{{JavaActionExecutor}} loads default action configuration from given files with [createActionDefaultConf|https://github.com/apache/oozie/blob/84eb493642d35b8bb1e7527ef51b6ecfa40dd592/core/src/main/java/org/apache/oozie/service/HadoopAccessorService.java#L458] via HadoopAccessorService in [setupActionConf|https://github.com/apache/oozie/blob/84eb493642d35b8bb1e7527ef51b6ecfa40dd592/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java#L389]. 
{code}
XConfiguration actionDefaults = has.createActionDefaultConf(conf.get(HADOOP_YARN_RM), getType());
XConfiguration.injectDefaults(actionDefaults, actionConf);
{code}

However, {{actionConf}} already contains default value for "{{mapreduce.job.queuename}}" so [injectDefaults|https://github.com/apache/oozie/blob/84eb493642d35b8bb1e7527ef51b6ecfa40dd592/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java#L389] wont add user specified "{{mapreduce.job.queuename}}" default queue (i.e. {{oozie_queue}}).

I tested this behaviour with a 4.2.0 based Oozie, but the existing code did not change here by OYA.

  



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)