Selaa lähdekoodia

AMBARI-5004. Remove duplicate and unrelated YARN properties from MR2 (ncole)

Nate Cole 11 vuotta sitten
vanhempi
commit
8bf325f20c
15 muutettua tiedostoa jossa 134 lisäystä ja 524 poistoa
  1. 6 1
      ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java
  2. 11 1
      ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java
  3. 20 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/core-site.xml
  4. 45 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/global.xml
  5. 0 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/mapred-queue-acls.xml
  6. 0 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/mapred-site.xml
  7. 0 23
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/global.xml
  8. 2 3
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/metainfo.xml
  9. 0 23
      ambari-server/src/main/resources/stacks/HDP/2.1.1/services/YARN/configuration/global.xml
  10. 0 52
      ambari-server/src/main/resources/stacks/HDP/2.1.1/services/YARN/configuration/mapred-queue-acls.xml
  11. 0 419
      ambari-server/src/main/resources/stacks/HDP/2.1.1/services/YARN/configuration/mapred-site.xml
  12. 0 2
      ambari-server/src/main/resources/stacks/HDP/2.1.1/services/YARN/metainfo.xml
  13. 20 0
      ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
  14. 28 0
      ambari-server/src/test/resources/stacks/HDP/2.0.7/services/YARN/config-mr2/mapred-site.xml
  15. 2 0
      ambari-server/src/test/resources/stacks/HDP/2.0.7/services/YARN/metainfo.xml

+ 6 - 1
ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java

@@ -612,8 +612,13 @@ public class StackExtensionHelper {
    * Get all properties from all "configs/*-site.xml" files
    * Get all properties from all "configs/*-site.xml" files
    */
    */
   void setPropertiesFromConfigs(File serviceFolder, ServiceInfo serviceInfo) {
   void setPropertiesFromConfigs(File serviceFolder, ServiceInfo serviceInfo) {
+    
     File serviceConfigFolder = new File(serviceFolder.getAbsolutePath()
     File serviceConfigFolder = new File(serviceFolder.getAbsolutePath()
-            + File.separator + AmbariMetaInfo.SERVICE_CONFIG_FOLDER_NAME);
+            + File.separator + serviceInfo.getConfigDir());
+    
+    if (!serviceConfigFolder.exists() || !serviceConfigFolder.isDirectory())
+      return;
+    
     File[] configFiles = serviceConfigFolder.listFiles
     File[] configFiles = serviceConfigFolder.listFiles
             (AmbariMetaInfo.FILENAME_FILTER);
             (AmbariMetaInfo.FILENAME_FILTER);
     if (configFiles != null) {
     if (configFiles != null) {

+ 11 - 1
ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java

@@ -71,6 +71,10 @@ public class ServiceInfo {
   @XmlElementWrapper(name="osSpecifics")
   @XmlElementWrapper(name="osSpecifics")
   @XmlElements(@XmlElement(name="osSpecific"))
   @XmlElements(@XmlElement(name="osSpecific"))
   private List<ServiceOsSpecific> serviceOsSpecifics;
   private List<ServiceOsSpecific> serviceOsSpecifics;
+  
+  @JsonIgnore
+  @XmlElement(name="configuration-dir")
+  private String configDir = AmbariMetaInfo.SERVICE_CONFIG_FOLDER_NAME;
 
 
 
 
   /**
   /**
@@ -80,7 +84,6 @@ public class ServiceInfo {
    */
    */
   private volatile Map<String, ServiceOsSpecific> serviceOsSpecificsMap;
   private volatile Map<String, ServiceOsSpecific> serviceOsSpecificsMap;
 
 
-
   /**
   /**
    * Added at schema ver 2
    * Added at schema ver 2
    */
    */
@@ -367,5 +370,12 @@ public class ServiceInfo {
   public void setMetrics(Map<String, Map<String, List<MetricDefinition>>> map) {
   public void setMetrics(Map<String, Map<String, List<MetricDefinition>>> map) {
     metrics = map;
     metrics = map;
   }
   }
+  
+  /**
+   * @return the configuration directory name
+   */
+  public String getConfigDir() {
+    return configDir;
+  }
 
 
 }
 }

+ 20 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/core-site.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<configuration>
+</configuration>

+ 45 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/global.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<configuration>
+  <property>
+    <name>hs_host</name>
+    <value></value>
+    <description>History Server.</description>
+  </property>
+  <property>
+    <name>mapred_log_dir_prefix</name>
+    <value>/var/log/hadoop-mapreduce</value>
+    <description>Mapreduce Log Dir Prefix</description>
+  </property>
+  <property>
+    <name>mapred_pid_dir_prefix</name>
+    <value>/var/run/hadoop-mapreduce</value>
+    <description>Mapreduce PID Dir Prefix</description>
+  </property>
+  <property>
+    <name>mapred_user</name>
+    <value>mapred</value>
+    <description>Mapreduce User</description>
+  </property>
+
+</configuration>

+ 0 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/mapred-queue-acls.xml → ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/mapred-queue-acls.xml


+ 0 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/mapred-site.xml → ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration-mapred/mapred-site.xml


+ 0 - 23
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/configuration/global.xml

@@ -62,27 +62,4 @@
     <description>Max heapsize for NodeManager using a numerical value in the scale of MB</description>
     <description>Max heapsize for NodeManager using a numerical value in the scale of MB</description>
   </property>
   </property>
 
 
-  <!--MAPREDUCE2-->
-
-  <property>
-    <name>hs_host</name>
-    <value></value>
-    <description>History Server.</description>
-  </property>
-  <property>
-    <name>mapred_log_dir_prefix</name>
-    <value>/var/log/hadoop-mapreduce</value>
-    <description>Mapreduce Log Dir Prefix</description>
-  </property>
-  <property>
-    <name>mapred_pid_dir_prefix</name>
-    <value>/var/run/hadoop-mapreduce</value>
-    <description>Mapreduce PID Dir Prefix</description>
-  </property>
-  <property>
-    <name>mapred_user</name>
-    <value>mapred</value>
-    <description>Mapreduce User</description>
-  </property>
-
 </configuration>
 </configuration>

+ 2 - 3
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/metainfo.xml

@@ -159,14 +159,13 @@
         <timeout>300</timeout>
         <timeout>300</timeout>
       </commandScript>
       </commandScript>
 
 
+      <configuration-dir>configuration-mapred</configuration-dir>
+
       <configuration-dependencies>
       <configuration-dependencies>
-        <config-type>yarn-site</config-type>
-        <config-type>capacity-scheduler</config-type>
         <config-type>core-site</config-type>
         <config-type>core-site</config-type>
         <config-type>global</config-type>
         <config-type>global</config-type>
         <config-type>mapred-site</config-type>
         <config-type>mapred-site</config-type>
         <config-type>mapred-queue-acls</config-type>
         <config-type>mapred-queue-acls</config-type>
-        <config-type>yarn-log4j</config-type>
       </configuration-dependencies>
       </configuration-dependencies>
     </service>
     </service>
 
 

+ 0 - 23
ambari-server/src/main/resources/stacks/HDP/2.1.1/services/YARN/configuration/global.xml

@@ -67,27 +67,4 @@
     <description>Max heapsize for AppTimelineServer using a numerical value in the scale of MB</description>
     <description>Max heapsize for AppTimelineServer using a numerical value in the scale of MB</description>
   </property>
   </property>
 
 
-  <!--MAPREDUCE2-->
-
-  <property>
-    <name>hs_host</name>
-    <value></value>
-    <description>History Server.</description>
-  </property>
-  <property>
-    <name>mapred_log_dir_prefix</name>
-    <value>/var/log/hadoop-mapreduce</value>
-    <description>Mapreduce Log Dir Prefix</description>
-  </property>
-  <property>
-    <name>mapred_pid_dir_prefix</name>
-    <value>/var/run/hadoop-mapreduce</value>
-    <description>Mapreduce PID Dir Prefix</description>
-  </property>
-  <property>
-    <name>mapred_user</name>
-    <value>mapred</value>
-    <description>Mapreduce User</description>
-  </property>
-
 </configuration>
 </configuration>

+ 0 - 52
ambari-server/src/main/resources/stacks/HDP/2.1.1/services/YARN/configuration/mapred-queue-acls.xml

@@ -1,52 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-
-<!-- mapred-queue-acls.xml -->
-<configuration>
-
-
-<!-- queue default -->
-
-  <property>
-    <name>mapred.queue.default.acl-submit-job</name>
-    <value>*</value>
-    <description> Comma separated list of user and group names that are allowed
-      to submit jobs to the 'default' queue. The user list and the group list
-      are separated by a blank. For e.g. alice,bob group1,group2.
-      If set to the special value '*', it means all users are allowed to
-      submit jobs.
-    </description>
-  </property>
-
-  <property>
-    <name>mapred.queue.default.acl-administer-jobs</name>
-    <value>*</value>
-    <description> Comma separated list of user and group names that are allowed
-      to delete jobs or modify job's priority for jobs not owned by the current
-      user in the 'default' queue. The user list and the group list
-      are separated by a blank. For e.g. alice,bob group1,group2.
-      If set to the special value '*', it means all users are allowed to do
-      this operation.
-    </description>
-  </property>
-
-  <!-- END ACLs -->
-
-</configuration>

+ 0 - 419
ambari-server/src/main/resources/stacks/HDP/2.1.1/services/YARN/configuration/mapred-site.xml

@@ -1,419 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-
-<!-- Put site-specific property overrides in this file. -->
-
-<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
-
-<!-- i/o properties -->
-
-  <property>
-    <name>mapreduce.task.io.sort.mb</name>
-    <value>200</value>
-    <description>
-      The total amount of buffer memory to use while sorting files, in megabytes.
-      By default, gives each merge stream 1MB, which should minimize seeks.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.map.sort.spill.percent</name>
-    <value>0.7</value>
-    <description>
-      The soft limit in the serialization buffer. Once reached, a thread will
-      begin to spill the contents to disk in the background. Note that
-      collection will not block if this threshold is exceeded while a spill
-      is already in progress, so spills may be larger than this threshold when
-      it is set to less than .5
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.task.io.sort.factor</name>
-    <value>100</value>
-    <description>
-      The number of streams to merge at once while sorting files.
-      This determines the number of open file handles.
-    </description>
-  </property>
-
-<!-- map/reduce properties -->
-  <property>
-    <name>mapreduce.cluster.administrators</name>
-    <value> hadoop</value>
-    <description>
-      Administrators for MapReduce applications.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.reduce.shuffle.parallelcopies</name>
-    <value>30</value>
-    <description>
-      The default number of parallel transfers run by reduce during
-      the copy(shuffle) phase.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.map.speculative</name>
-    <value>false</value>
-    <description>
-      If true, then multiple instances of some map tasks
-      may be executed in parallel.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.reduce.speculative</name>
-    <value>false</value>
-    <description>
-      If true, then multiple instances of some reduce tasks may be
-      executed in parallel.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.job.reduce.slowstart.completedmaps</name>
-    <value>0.05</value>
-    <description>
-      Fraction of the number of maps in the job which should be complete before
-      reduces are scheduled for the job.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.reduce.shuffle.merge.percent</name>
-    <value>0.66</value>
-    <description>
-      The usage threshold at which an in-memory merge will be
-      initiated, expressed as a percentage of the total memory allocated to
-      storing in-memory map outputs, as defined by
-      mapreduce.reduce.shuffle.input.buffer.percent.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.reduce.shuffle.input.buffer.percent</name>
-    <value>0.7</value>
-    <description>
-      The percentage of memory to be allocated from the maximum heap
-      size to storing map outputs during the shuffle.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.map.output.compress.codec</name>
-    <value></value>
-    <description>If the map outputs are compressed, how should they be
-      compressed
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.output.fileoutputformat.compress.type</name>
-    <value>BLOCK</value>
-    <description>
-      If the job outputs are to compressed as SequenceFiles, how should
-      they be compressed? Should be one of NONE, RECORD or BLOCK.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.reduce.input.buffer.percent</name>
-    <value>0.0</value>
-    <description>
-      The percentage of memory- relative to the maximum heap size- to
-      retain map outputs during the reduce. When the shuffle is concluded, any
-      remaining map outputs in memory must consume less than this threshold before
-      the reduce can begin.
-    </description>
-  </property>
-
-  <!-- copied from kryptonite configuration -->
-  <property>
-    <name>mapreduce.map.output.compress</name>
-    <value>false</value>
-    <description>
-      Should the outputs of the maps be compressed before being sent across the network. Uses SequenceFile compression.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.task.timeout</name>
-    <value>300000</value>
-    <description>
-      The number of milliseconds before a task will be
-      terminated if it neither reads an input, writes an output, nor
-      updates its status string.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.map.memory.mb</name>
-    <value>1024</value>
-    <description>Virtual memory for single Map task</description>
-  </property>
-
-  <property>
-    <name>mapreduce.reduce.memory.mb</name>
-    <value>1024</value>
-    <description>Virtual memory for single Reduce task</description>
-  </property>
-
-  <property>
-    <name>mapreduce.jobhistory.keytab.file</name>
-    <!-- cluster variant -->
-    <value></value>
-    <description>The keytab for the job history server principal.</description>
-  </property>
-
-  <property>
-    <name>mapreduce.shuffle.port</name>
-    <value>13562</value>
-    <description>
-      Default port that the ShuffleHandler will run on.
-      ShuffleHandler is a service run at the NodeManager to facilitate
-      transfers of intermediate Map outputs to requesting Reducers.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.jobhistory.intermediate-done-dir</name>
-    <value>/mr-history/tmp</value>
-    <description>
-      Directory where history files are written by MapReduce jobs.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.jobhistory.done-dir</name>
-    <value>/mr-history/done</value>
-    <description>
-      Directory where history files are managed by the MR JobHistory Server.
-    </description>
-  </property>
-
-  <property>       
-    <name>mapreduce.jobhistory.address</name>
-    <value>localhost:10020</value>
-    <description>Enter your JobHistoryServer hostname.</description>
-  </property>
-
-  <property>       
-    <name>mapreduce.jobhistory.webapp.address</name>
-    <value>localhost:19888</value>
-    <description>Enter your JobHistoryServer hostname.</description>
-  </property>
-
-  <property>
-    <name>mapreduce.framework.name</name>
-    <value>yarn</value>
-    <description>
-      The runtime framework for executing MapReduce jobs. Can be one of local,
-      classic or yarn.
-    </description>
-  </property>
-
-  <property>
-    <name>yarn.app.mapreduce.am.staging-dir</name>
-    <value>/user</value>
-    <description>
-      The staging dir used while submitting jobs.
-    </description>
-  </property>
-
-  <property>
-    <name>yarn.app.mapreduce.am.resource.mb</name>
-    <value>512</value>
-    <description>The amount of memory the MR AppMaster needs.</description>
-  </property>
-
-  <property>
-    <name>yarn.app.mapreduce.am.command-opts</name>
-    <value>-Xmx312m</value>
-    <description>
-      Java opts for the MR App Master processes.
-      The following symbol, if present, will be interpolated: @taskid@ is replaced
-      by current TaskID. Any other occurrences of '@' will go unchanged.
-      For example, to enable verbose gc logging to a file named for the taskid in
-      /tmp and to set the heap maximum to be a gigabyte, pass a 'value' of:
-      -Xmx1024m -verbose:gc -Xloggc:/tmp/@taskid@.gc
-
-      Usage of -Djava.library.path can cause programs to no longer function if
-      hadoop native libraries are used. These values should instead be set as part
-      of LD_LIBRARY_PATH in the map / reduce JVM env using the mapreduce.map.env and
-      mapreduce.reduce.env config settings.
-    </description>
-  </property>
-
-  <property>
-    <name>yarn.app.mapreduce.am.admin-command-opts</name>
-    <value>-Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN</value>
-    <description>
-      Java opts for the MR App Master processes for admin purposes.
-      It will appears before the opts set by yarn.app.mapreduce.am.command-opts and
-      thus its options can be overridden user.
-
-      Usage of -Djava.library.path can cause programs to no longer function if
-      hadoop native libraries are used. These values should instead be set as part
-      of LD_LIBRARY_PATH in the map / reduce JVM env using the mapreduce.map.env and
-      mapreduce.reduce.env config settings.
-    </description>
-  </property>
-
-  <property>
-    <name>yarn.app.mapreduce.am.log.level</name>
-    <value>INFO</value>
-    <description>MR App Master process log level.</description>
-  </property>
-
-  <property>
-    <name>yarn.app.mapreduce.am.env</name>
-    <value></value>
-    <description>
-      User added environment variables for the MR App Master
-      processes. Example :
-      1) A=foo  This will set the env variable A to foo
-      2) B=$B:c This is inherit tasktracker's B env variable.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.admin.map.child.java.opts</name>
-    <value>-Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN</value>
-    <description>This property stores Java options for map tasks.</description>
-  </property>
-
-  <property>
-    <name>mapreduce.admin.reduce.child.java.opts</name>
-    <value>-Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN</value>
-    <description>This property stores Java options for reduce tasks.</description>
-  </property>
-
-  <property>
-    <name>mapreduce.application.classpath</name>
-    <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*,$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
-    <description>
-      CLASSPATH for MR applications. A comma-separated list of CLASSPATH
-      entries.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.am.max-attempts</name>
-    <value>2</value>
-    <description>
-      The maximum number of application attempts. It is a
-      application-specific setting. It should not be larger than the global number
-      set by resourcemanager. Otherwise, it will be override. The default number is
-      set to 2, to allow at least one retry for AM.
-    </description>
-  </property>
-
-
-
-  <property>
-    <name>mapreduce.map.java.opts</name>
-    <value>-Xmx756m</value>
-    <description>
-      Larger heap-size for child jvms of maps.
-    </description>
-  </property>
-
-
-  <property>
-    <name>mapreduce.reduce.java.opts</name>
-    <value>-Xmx756m</value>
-    <description>
-      Larger heap-size for child jvms of reduces.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.map.log.level</name>
-    <value>INFO</value>
-    <description>
-      The logging level for the map task. The allowed levels are:
-      OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE and ALL.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.reduce.log.level</name>
-    <value>INFO</value>
-    <description>
-      The logging level for the reduce task. The allowed levels are:
-      OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE and ALL.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.admin.user.env</name>
-    <value>LD_LIBRARY_PATH=/usr/lib/hadoop/lib/native:/usr/lib/hadoop/lib/native/`$JAVA_HOME/bin/java -d32 -version &amp;&gt; /dev/null;if [ $? -eq 0 ]; then echo Linux-i386-32; else echo Linux-amd64-64;fi`</value>
-    <description>
-      Additional execution environment entries for map and reduce task processes.
-      This is not an additive property. You must preserve the original value if
-      you want your map and reduce tasks to have access to native libraries (compression, etc)
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.output.fileoutputformat.compress</name>
-    <value>false</value>
-    <description>
-      Should the job outputs be compressed?
-    </description>
-  </property>
-  
-  <property>
-    <name>mapreduce.job.counters.max</name>
-    <value>20000</value>
-    <description>
-      Limit on the number of counters allowed per job.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.job.counters.groups.max</name>
-    <value>10000</value>
-    <description>
-     Limit on the number of counter groups allowed per job.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.job.counters.group.name.max</name>
-    <value>1000</value>
-    <description>
-     Limit on the length of counter group names in jobs. 
-     Names exceeding this limit will be truncated.
-    </description>
-  </property>
-
-  <property>
-    <name>mapreduce.job.counters.counter.name.max</name>
-    <value>1000</value>
-    <description>
-      Limit on the length of counter names in jobs. Names exceeding this limit will be truncated.
-    </description>
-  </property>
-
-</configuration>

+ 0 - 2
ambari-server/src/main/resources/stacks/HDP/2.1.1/services/YARN/metainfo.xml

@@ -71,8 +71,6 @@
                 <config-type>capacity-scheduler</config-type>
                 <config-type>capacity-scheduler</config-type>
                 <config-type>core-site</config-type>
                 <config-type>core-site</config-type>
                 <config-type>global</config-type>
                 <config-type>global</config-type>
-                <config-type>mapred-site</config-type>
-                <config-type>mapred-queue-acls</config-type>
                 <config-type>yarn-log4j</config-type>
                 <config-type>yarn-log4j</config-type>
             </configuration-dependencies>
             </configuration-dependencies>
         </service>
         </service>

+ 20 - 0
ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java

@@ -1258,5 +1258,25 @@ public class AmbariMetaInfoTest {
     }
     }
     return null;
     return null;
   }
   }
+  
+  @Test
+  public void testCustomConfigDir() throws Exception {
+    
+    ServiceInfo service = metaInfo.getService(STACK_NAME_HDP, "2.0.7", "MAPREDUCE2");
+
+    // assert that the property was found in a differently-named directory
+    // cannot check the dirname itself since extended stacks won't carry over
+    // the name
+    
+    boolean found = false;
+    for (PropertyInfo pi : service.getProperties()) {
+      if (pi.getName().equals("mr2-prop")) {
+        Assert.assertEquals("some-mr2-value", pi.getValue());
+        found = true;
+      }
+    }
+    
+    Assert.assertTrue(found);
+  }
 
 
 }
 }

+ 28 - 0
ambari-server/src/test/resources/stacks/HDP/2.0.7/services/YARN/config-mr2/mapred-site.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration xmlns:xi="http://www.w3.org/2001/XInclude">
+  <property>
+    <name>mr2-prop</name>
+    <value>some-mr2-value</value>
+    <description>some description.</description>
+  </property>
+</configuration>

+ 2 - 0
ambari-server/src/test/resources/stacks/HDP/2.0.7/services/YARN/metainfo.xml

@@ -157,6 +157,8 @@
         <timeout>300</timeout>
         <timeout>300</timeout>
       </commandScript>
       </commandScript>
 
 
+      <configuration-dir>config-mr2</configuration-dir>
+
       <configuration-dependencies>
       <configuration-dependencies>
         <config-type>yarn-site</config-type>
         <config-type>yarn-site</config-type>
         <config-type>capacity-scheduler</config-type>
         <config-type>capacity-scheduler</config-type>