Jelajahi Sumber

AMBARI-8090. Make Oozie memory setting higher with default installation (aonishuk)

Andrew Onishuk 10 tahun lalu
induk
melakukan
ab7fc1ffec

+ 11 - 2
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java

@@ -1041,10 +1041,10 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
 
   protected void addMissingConfigs() throws AmbariException {
     addNewConfigurationsFromXml();
-    updateOozieConfigLog4j();
+    updateOozieConfigs();
   }
 
-  protected void updateOozieConfigLog4j() throws AmbariException {
+  protected void updateOozieConfigs() throws AmbariException {
     final String PROPERTY_NAME = "log4j.appender.oozie.layout.ConversionPattern=";
     final String PROPERTY_VALUE_OLD = "%d{ISO8601} %5p %c{1}:%L - %m%n";
     final String PROPERTY_VALUE_NEW = "%d{ISO8601} %5p %c{1}:%L - SERVER[${oozie.instance.id}] %m%n";
@@ -1074,6 +1074,15 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
             updateConfigurationPropertiesForCluster(cluster, "oozie-log4j",
                 prop, true, false);
           }
+
+          //oozie_heapsize is added for HDP2, we should check if it exists and not add it for HDP1
+          if(cluster.getDesiredConfigByType("oozie-env").getProperties().containsKey("oozie_heapsize")) {
+            Map<String, String> oozieProps = new HashMap<String, String>();
+            oozieProps.put("oozie_heapsize","2048m");
+            oozieProps.put("oozie_permsize","256m");
+            updateConfigurationPropertiesForCluster(cluster, "oozie-env",
+                    oozieProps, true, false);
+          }
         }
       }
     }

+ 11 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/OOZIE/configuration/oozie-env.xml

@@ -57,6 +57,16 @@
     <value>11001</value>
     <description>The admin port Oozie server runs.</description>
   </property>
+  <property>
+    <name>oozie_heapsize</name>
+    <value>2048</value>
+    <description>Oozie heap size.</description>
+  </property>
+  <property>
+    <name>oozie_permsize</name>
+    <value>256</value>
+    <description>Oozie permanent generation size.</description>
+  </property>
 
   <!-- oozie-env.sh -->
   <property>
@@ -82,7 +92,7 @@ export JRE_HOME=${JAVA_HOME}
 # Settings for the Embedded Tomcat that runs Oozie
 # Java System properties for Oozie should be specified in this variable
 #
-# export CATALINA_OPTS=
+export CATALINA_OPTS="$CATALINA_OPTS -Xmx{{oozie_heapsize}} -XX:MaxPermSize={{oozie_permsize}}"
 
 # Oozie configuration file to load from Oozie configuration directory
 #

+ 2 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/OOZIE/package/scripts/params.py

@@ -78,6 +78,8 @@ hadoop_jar_location = "/usr/lib/hadoop/"
 # for HDP1 it's "/usr/share/HDP-oozie/ext.zip"
 ext_js_path = "/usr/share/HDP-oozie/ext-2.2.zip"
 security_enabled = config['configurations']['cluster-env']['security_enabled']
+oozie_heapsize = config['configurations']['oozie-env']['oozie_heapsize']
+oozie_permsize = config['configurations']['oozie-env']['oozie_permsize']
 
 kinit_path_local = functions.get_kinit_path(["/usr/bin", "/usr/kerberos/bin", "/usr/sbin"])
 oozie_service_keytab = config['configurations']['oozie-site']['oozie.service.HadoopAccessorService.keytab.file']

+ 1 - 0
ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog170Test.java

@@ -518,6 +518,7 @@ public class UpgradeCatalog170Test {
     expect(clusters.getClusters()).andReturn(clustersMap).times(1);
     expect(cluster.getDesiredConfigByType("global")).andReturn(config).anyTimes();
     expect(cluster.getDesiredConfigByType("oozie-log4j")).andReturn(config).anyTimes();
+    expect(cluster.getDesiredConfigByType("oozie-env")).andReturn(config).anyTimes();
     expect(cluster.getClusterId()).andReturn(1L);
     expect(cluster.getNextConfigVersion("hadoop-env")).andReturn(3L);
     expect(config.getProperties()).andReturn(globalConfigs).anyTimes();