Browse Source

AMBARI-10274. Add support for OpenJDK 8 (dlysnichenko)

Lisnichenko Dmitro 10 years ago
parent
commit
c77993e13e
59 changed files with 156 additions and 42 deletions
  1. 1 0
      ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
  2. 19 0
      ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
  3. 2 0
      ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
  4. 1 0
      ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java
  5. 8 0
      ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-hbase-env.xml
  6. 1 0
      ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py
  7. 13 4
      ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/configuration/hadoop-env.xml
  8. 1 0
      ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/params.py
  9. 4 1
      ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/configuration/oozie-env.xml
  10. 2 1
      ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py
  11. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/params.py
  12. 15 4
      ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/configuration/hadoop-env.xml
  13. 5 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/OOZIE/configuration/oozie-env.xml
  14. 4 1
      ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
  15. 2 0
      ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProviderTest.java
  16. 5 2
      ambari-server/src/test/python/TestUtils.py
  17. 2 1
      ambari-server/src/test/python/custom_actions/configs/install_packages_config.json
  18. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/client-upgrade.json
  19. 1 0
      ambari-server/src/test/python/stacks/2.0.6/configs/default.hbasedecom.json
  20. 1 0
      ambari-server/src/test/python/stacks/2.0.6/configs/default.json
  21. 1 0
      ambari-server/src/test/python/stacks/2.0.6/configs/default.non_gmetad_host.json
  22. 1 0
      ambari-server/src/test/python/stacks/2.0.6/configs/default_client.json
  23. 1 0
      ambari-server/src/test/python/stacks/2.0.6/configs/default_oozie_mysql.json
  24. 1 0
      ambari-server/src/test/python/stacks/2.0.6/configs/default_update_exclude_file_only.json
  25. 1 0
      ambari-server/src/test/python/stacks/2.0.6/configs/flume_22.json
  26. 1 0
      ambari-server/src/test/python/stacks/2.0.6/configs/flume_target.json
  27. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/ha_bootstrap_active_node.json
  28. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/ha_bootstrap_standby_node.json
  29. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/ha_default.json
  30. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/ha_secured.json
  31. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/hbase-2.2.json
  32. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/hbase-check-2.2.json
  33. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/hbase-preupgrade.json
  34. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/hbase-rs-2.2.json
  35. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/nn_ru_lzo.json
  36. 1 0
      ambari-server/src/test/python/stacks/2.0.6/configs/ranger-namenode-start.json
  37. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/rebalancehdfs_default.json
  38. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/rebalancehdfs_secured.json
  39. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/secured.json
  40. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/secured_client.json
  41. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/secured_no_jce_name.json
  42. 2 1
      ambari-server/src/test/python/stacks/2.0.6/configs/zk-service_check_2.2.json
  43. 2 1
      ambari-server/src/test/python/stacks/2.1/configs/client-upgrade.json
  44. 1 0
      ambari-server/src/test/python/stacks/2.1/configs/default-storm-start.json
  45. 1 0
      ambari-server/src/test/python/stacks/2.1/configs/default.json
  46. 2 1
      ambari-server/src/test/python/stacks/2.1/configs/secured-storm-start.json
  47. 2 1
      ambari-server/src/test/python/stacks/2.1/configs/secured.json
  48. 1 0
      ambari-server/src/test/python/stacks/2.2/configs/default.json
  49. 2 1
      ambari-server/src/test/python/stacks/2.2/configs/falcon-upgrade.json
  50. 1 0
      ambari-server/src/test/python/stacks/2.2/configs/hive-upgrade.json
  51. 2 1
      ambari-server/src/test/python/stacks/2.2/configs/journalnode-upgrade-hdfs-secure.json
  52. 2 1
      ambari-server/src/test/python/stacks/2.2/configs/journalnode-upgrade.json
  53. 2 1
      ambari-server/src/test/python/stacks/2.2/configs/oozie-downgrade.json
  54. 2 1
      ambari-server/src/test/python/stacks/2.2/configs/oozie-upgrade.json
  55. 2 1
      ambari-server/src/test/python/stacks/2.2/configs/pig-service-check-secure.json
  56. 2 1
      ambari-server/src/test/python/stacks/2.2/configs/ranger-admin-upgrade.json
  57. 2 1
      ambari-server/src/test/python/stacks/2.2/configs/ranger-usersync-upgrade.json
  58. 1 0
      ambari-server/src/test/python/stacks/2.2/configs/secured.json
  59. 2 1
      ambari-server/src/test/python/stacks/2.2/configs/spark-job-history-server.json

+ 1 - 0
ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java

@@ -286,6 +286,7 @@ public class ExecutionCommand extends AgentCommand {
     String PACKAGE_LIST = "package_list";
     String JDK_LOCATION = "jdk_location";
     String JAVA_HOME = "java_home";
+    String JAVA_VERSION = "java_version";
     String JDK_NAME = "jdk_name";
     String JCE_NAME = "jce_name";
     String MYSQL_JDBC_URL = "mysql_jdbc_url";

+ 19 - 0
ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java

@@ -660,6 +660,25 @@ public class Configuration {
     return "true".equalsIgnoreCase(properties.getProperty(VIEWS_VALIDATE, VIEWS_VALIDATE_DEFAULT));
   }
 
+
+  /**
+   * @return conventional Java version number, e.g. 7.
+   * Integer is used here to simplify comparisons during usage.
+   * If java version is not supported, returns -1
+   */
+  public int getJavaVersion() {
+    String versionStr = System.getProperty("java.version");
+    if (versionStr.startsWith("1.6")) {
+      return 6;
+    } else if (versionStr.startsWith("1.7")) {
+      return 7;
+    } else if (versionStr.startsWith("1.8")) {
+      return 8;
+    } else { // Some unsupported java version
+      return -1;
+    }
+  }
+
   public File getBootStrapDir() {
     String fileName = properties.getProperty(BOOTSTRAP_DIR, BOOTSTRAP_DIR_DEFAULT);
     return new File(fileName);

+ 2 - 0
ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java

@@ -27,6 +27,7 @@ import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.DB_NAME;
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.GROUP_LIST;
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.HOOKS_FOLDER;
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.JAVA_HOME;
+import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.JAVA_VERSION;
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.JCE_NAME;
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.JDK_LOCATION;
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.JDK_NAME;
@@ -1021,6 +1022,7 @@ public class AmbariCustomCommandExecutionHelper {
     TreeMap<String, String> hostLevelParams = new TreeMap<String, String>();
     hostLevelParams.put(JDK_LOCATION, managementController.getJdkResourceUrl());
     hostLevelParams.put(JAVA_HOME, managementController.getJavaHome());
+    hostLevelParams.put(JAVA_VERSION, String.valueOf(configs.getJavaVersion()));
     hostLevelParams.put(JDK_NAME, managementController.getJDKName());
     hostLevelParams.put(JCE_NAME, managementController.getJCEName());
     hostLevelParams.put(STACK_NAME, stackId.getStackName());

+ 1 - 0
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java

@@ -232,6 +232,7 @@ public class ClientConfigResourceProvider extends AbstractControllerResourceProv
       TreeMap<String, String> hostLevelParams = new TreeMap<String, String>();
       hostLevelParams.put(JDK_LOCATION, managementController.getJdkResourceUrl());
       hostLevelParams.put(JAVA_HOME, managementController.getJavaHome());
+      hostLevelParams.put(JAVA_VERSION, String.valueOf(configs.getJavaVersion()));
       hostLevelParams.put(JDK_NAME, managementController.getJDKName());
       hostLevelParams.put(JCE_NAME, managementController.getJCEName());
       hostLevelParams.put(STACK_NAME, stackId.getStackName());

+ 8 - 0
ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/configuration/ams-hbase-env.xml

@@ -107,8 +107,16 @@ export SERVER_GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -X
 # More details at: http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html
 #
 # export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
+
+{% if java_version &lt; 8 %}
 export HBASE_MASTER_OPTS=" -XX:PermSize=64m -XX:MaxPermSize={{hbase_master_maxperm_size}} -Xms{{hbase_heapsize}} -Xmx{{hbase_heapsize}} -Xmn{{hbase_master_xmn_size}} -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly"
 export HBASE_REGIONSERVER_OPTS="-XX:MaxPermSize=128m -Xmn{{regionserver_xmn_size}} -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -Xms{{regionserver_heapsize}} -Xmx{{regionserver_heapsize}}"
+{% else %}
+export HBASE_MASTER_OPTS=" -Xms{{hbase_heapsize}} -Xmx{{hbase_heapsize}} -Xmn{{hbase_master_xmn_size}} -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly"
+export HBASE_REGIONSERVER_OPTS=" -Xmn{{regionserver_xmn_size}} -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -Xms{{regionserver_heapsize}} -Xmx{{regionserver_heapsize}}"
+{% endif %}
+
+
 # export HBASE_THRIFT_OPTS="$HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10103"
 # export HBASE_ZOOKEEPER_OPTS="$HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10104"
 

+ 1 - 0
ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/params.py

@@ -81,6 +81,7 @@ metric_prop_file_name = "hadoop-metrics2-hbase.properties"
 
 # not supporting 32 bit jdk.
 java64_home = config['hostLevelParams']['java_home']
+java_version = int(config['hostLevelParams']['java_version'])
 
 metrics_collector_heapsize = default('/configurations/ams-env/metrics_collector_heapsize', "512m")
 

+ 13 - 4
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/configuration/hadoop-env.xml

@@ -126,7 +126,20 @@ export HADOOP_NAMENODE_INIT_HEAPSIZE="-Xms{{namenode_heapsize}}"
 export HADOOP_OPTS="-Djava.net.preferIPv4Stack=true ${HADOOP_OPTS}"
 
 # Command specific options appended to HADOOP_OPTS when specified
+
+{% if java_version &lt; 8 %}
 export HADOOP_NAMENODE_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -XX:PermSize={{namenode_opt_permsize}} -XX:MaxPermSize={{namenode_opt_maxpermsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xms{{namenode_heapsize}} -Xmx{{namenode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_NAMENODE_OPTS}"
+export HADOOP_SECONDARYNAMENODE_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -XX:PermSize={{namenode_opt_permsize}} -XX:MaxPermSize={{namenode_opt_maxpermsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps ${HADOOP_NAMENODE_INIT_HEAPSIZE} -Xmx{{namenode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_SECONDARYNAMENODE_OPTS}"
+
+# The following applies to multiple commands (fs, dfs, fsck, distcp etc)
+export HADOOP_CLIENT_OPTS="-Xmx${HADOOP_HEAPSIZE}m -XX:MaxPermSize=512m $HADOOP_CLIENT_OPTS"
+{% else %}
+export HADOOP_NAMENODE_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xms{{namenode_heapsize}} -Xmx{{namenode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_NAMENODE_OPTS}"
+export HADOOP_SECONDARYNAMENODE_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps ${HADOOP_NAMENODE_INIT_HEAPSIZE} -Xmx{{namenode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_SECONDARYNAMENODE_OPTS}"
+
+# The following applies to multiple commands (fs, dfs, fsck, distcp etc)
+export HADOOP_CLIENT_OPTS="-Xmx${HADOOP_HEAPSIZE}m $HADOOP_CLIENT_OPTS"
+{% endif %}
 HADOOP_JOBTRACKER_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{jtnode_opt_newsize}} -XX:MaxNewSize={{jtnode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xmx{{jtnode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dmapred.audit.logger=INFO,MRAUDIT -Dhadoop.mapreduce.jobsummary.logger=INFO,JSA ${HADOOP_JOBTRACKER_OPTS}"
 
 HADOOP_TASKTRACKER_OPTS="-server -Xmx{{ttnode_heapsize}} -Dhadoop.security.logger=ERROR,console -Dmapred.audit.logger=ERROR,console ${HADOOP_TASKTRACKER_OPTS}"
@@ -134,10 +147,6 @@ HADOOP_DATANODE_OPTS="-Xmx{{dtnode_heapsize}} -Dhadoop.security.logger=ERROR,DRF
 HADOOP_NFS3_OPTS="-Xmx{{nfsgateway_heapsize}} -Dhadoop.security.logger=ERROR,DRFAS ${HADOOP_NFS3_OPTS}"
 HADOOP_BALANCER_OPTS="-server -Xmx{{hadoop_heapsize}}m ${HADOOP_BALANCER_OPTS}"
 
-export HADOOP_SECONDARYNAMENODE_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -XX:PermSize={{namenode_opt_permsize}} -XX:MaxPermSize={{namenode_opt_maxpermsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps ${HADOOP_NAMENODE_INIT_HEAPSIZE} -Xmx{{namenode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_SECONDARYNAMENODE_OPTS}"
-
-# The following applies to multiple commands (fs, dfs, fsck, distcp etc)
-export HADOOP_CLIENT_OPTS="-Xmx${HADOOP_HEAPSIZE}m -XX:MaxPermSize=512m $HADOOP_CLIENT_OPTS"
 # On secure datanodes, user to run the datanode as after dropping privileges
 export HADOOP_SECURE_DN_USER=${HADOOP_SECURE_DN_USER:-{{hadoop_secure_dn_user}}}
 

+ 1 - 0
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/params.py

@@ -283,6 +283,7 @@ hadoop_env_sh_template = config['configurations']['hadoop-env']['content']
 
 #hadoop-env.sh
 java_home = config['hostLevelParams']['java_home']
+java_version = int(config['hostLevelParams']['java_version'])
 
 if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.0') >= 0 and compare_versions(hdp_stack_version, '2.1') < 0 and not OSCheck.is_suse_family():
   # deprecated rhel jsvc_path

+ 4 - 1
ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/configuration/oozie-env.xml

@@ -92,8 +92,11 @@ export JRE_HOME=${JAVA_HOME}
 # Settings for the Embedded Tomcat that runs Oozie
 # Java System properties for Oozie should be specified in this variable
 #
+{% if java_version &lt; 8 %}
 export CATALINA_OPTS="$CATALINA_OPTS -Xmx{{oozie_heapsize}} -XX:MaxPermSize={{oozie_permsize}}"
-
+{% else %}
+export CATALINA_OPTS="$CATALINA_OPTS -Xmx{{oozie_heapsize}}"
+{% endif %}
 # Oozie configuration file to load from Oozie configuration directory
 #
 # export OOZIE_CONFIG_FILE=oozie-site.xml

+ 2 - 1
ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py

@@ -77,6 +77,7 @@ zk_principal_name = default("/configurations/zookeeper-env/zookeeper_principal_n
 zk_principal = zk_principal_name.replace('_HOST',hostname.lower())
 
 java64_home = config['hostLevelParams']['java_home']
+java_version = int(config['hostLevelParams']['java_version'])
 
 zookeeper_hosts = config['clusterHostInfo']['zookeeper_hosts']
 zookeeper_hosts.sort()
@@ -92,7 +93,7 @@ smokeuser_principal = config['configurations']['cluster-env']['smokeuser_princip
 kinit_path_local = functions.get_kinit_path()
 
 #log4j.properties
-if (('zookeeper-log4j' in config['configurations']) and ('content' in config['configurations']['zookeeper-log4j'])):
+if ('zookeeper-log4j' in config['configurations']) and ('content' in config['configurations']['zookeeper-log4j']):
   log4j_props = config['configurations']['zookeeper-log4j']['content']
 else:
   log4j_props = None

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/params.py

@@ -31,6 +31,7 @@ jce_policy_zip = default("/hostLevelParams/jce_name", None) # None when jdk is a
 jce_location = config['hostLevelParams']['jdk_location']
 jdk_name = default("/hostLevelParams/jdk_name", None)
 java_home = config['hostLevelParams']['java_home']
+java_version = int(config['hostLevelParams']['java_version'])
 
 ambari_server_hostname = config['clusterHostInfo']['ambari_server_host'][0]
 

+ 15 - 4
ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/configuration/hadoop-env.xml

@@ -56,18 +56,29 @@ export HADOOP_NAMENODE_INIT_HEAPSIZE="-Xms{{namenode_heapsize}}"
 export HADOOP_OPTS="-Djava.net.preferIPv4Stack=true ${HADOOP_OPTS}"
 
 # Command specific options appended to HADOOP_OPTS when specified
-export HADOOP_NAMENODE_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -XX:PermSize={{namenode_opt_permsize}} -XX:MaxPermSize={{namenode_opt_maxpermsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xms{{namenode_heapsize}} -Xmx{{namenode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_NAMENODE_OPTS}"
 HADOOP_JOBTRACKER_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{jtnode_opt_newsize}} -XX:MaxNewSize={{jtnode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xmx{{jtnode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dmapred.audit.logger=INFO,MRAUDIT -Dhadoop.mapreduce.jobsummary.logger=INFO,JSA ${HADOOP_JOBTRACKER_OPTS}"
 
 HADOOP_TASKTRACKER_OPTS="-server -Xmx{{ttnode_heapsize}} -Dhadoop.security.logger=ERROR,console -Dmapred.audit.logger=ERROR,console ${HADOOP_TASKTRACKER_OPTS}"
-export HADOOP_DATANODE_OPTS="-server -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:ErrorFile=/var/log/hadoop/$USER/hs_err_pid%p.log -XX:NewSize=200m -XX:MaxNewSize=200m -XX:PermSize=128m -XX:MaxPermSize=256m -Xloggc:/var/log/hadoop/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xms{{dtnode_heapsize}} -Xmx{{dtnode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_DATANODE_OPTS}"
-HADOOP_BALANCER_OPTS="-server -Xmx{{hadoop_heapsize}}m ${HADOOP_BALANCER_OPTS}"
 
-export HADOOP_SECONDARYNAMENODE_OPTS=$HADOOP_NAMENODE_OPTS
+{% if java_version &lt; 8 %}
+export HADOOP_NAMENODE_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -XX:PermSize={{namenode_opt_permsize}} -XX:MaxPermSize={{namenode_opt_maxpermsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xms{{namenode_heapsize}} -Xmx{{namenode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_NAMENODE_OPTS}"
+export HADOOP_DATANODE_OPTS="-server -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:ErrorFile=/var/log/hadoop/$USER/hs_err_pid%p.log -XX:NewSize=200m -XX:MaxNewSize=200m -XX:PermSize=128m -XX:MaxPermSize=256m -Xloggc:/var/log/hadoop/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xms{{dtnode_heapsize}} -Xmx{{dtnode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_DATANODE_OPTS}"
 
 # The following applies to multiple commands (fs, dfs, fsck, distcp etc)
 export HADOOP_CLIENT_OPTS="-Xmx${HADOOP_HEAPSIZE}m -XX:MaxPermSize=512m $HADOOP_CLIENT_OPTS"
 
+{% else %}
+export HADOOP_NAMENODE_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xms{{namenode_heapsize}} -Xmx{{namenode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_NAMENODE_OPTS}"
+export HADOOP_DATANODE_OPTS="-server -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:ErrorFile=/var/log/hadoop/$USER/hs_err_pid%p.log -XX:NewSize=200m -XX:MaxNewSize=200m -Xloggc:/var/log/hadoop/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xms{{dtnode_heapsize}} -Xmx{{dtnode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_DATANODE_OPTS}"
+
+# The following applies to multiple commands (fs, dfs, fsck, distcp etc)
+export HADOOP_CLIENT_OPTS="-Xmx${HADOOP_HEAPSIZE}m $HADOOP_CLIENT_OPTS"
+{% endif %}
+
+HADOOP_BALANCER_OPTS="-server -Xmx{{hadoop_heapsize}}m ${HADOOP_BALANCER_OPTS}"
+
+export HADOOP_SECONDARYNAMENODE_OPTS=$HADOOP_NAMENODE_OPTS
+
 # On secure datanodes, user to run the datanode as after dropping privileges
 export HADOOP_SECURE_DN_USER=${HADOOP_SECURE_DN_USER:-{{hadoop_secure_dn_user}}}
 

+ 5 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/OOZIE/configuration/oozie-env.xml

@@ -94,7 +94,12 @@ export OOZIE_CLIENT_OPTS="${OOZIE_CLIENT_OPTS} -Doozie.connection.retry.count=5
 # This is needed so that Oozie does not run into OOM or GC Overhead limit
 # exceeded exceptions. If the oozie server is handling large number of
 # workflows/coordinator jobs, the memory settings may need to be revised
+
+{% if java_version &lt; 8 %}
 export CATALINA_OPTS="${CATALINA_OPTS} -Xmx2048m -XX:MaxPermSize=256m "
+{% else %}
+export CATALINA_OPTS="${CATALINA_OPTS} -Xmx2048m"
+{% endif %}
     </value>
   </property>
 

+ 4 - 1
ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java

@@ -73,6 +73,7 @@ import java.util.Map;
 import java.util.Set;
 
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.DB_DRIVER_FILENAME;
+import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.JAVA_VERSION;
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.STACK_NAME;
 import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.STACK_VERSION;
 import static org.easymock.EasyMock.anyObject;
@@ -1773,6 +1774,7 @@ public class AmbariManagementControllerImplTest {
     expect(configuration.getJCEName()).andReturn(JCE_NAME);
     expect(configuration.getOjdbcJarName()).andReturn(OJDBC_JAR_NAME);
     expect(configuration.getServerDBName()).andReturn(SERVER_DB_NAME);
+    expect(configuration.getJavaVersion()).andReturn(8);
 
     replay(manager, clusters, cluster, injector, stackId, configuration);
 
@@ -1803,10 +1805,11 @@ public class AmbariManagementControllerImplTest {
 
     Map<String, String> defaultHostParams = helper.createDefaultHostParams(cluster);
 
-    assertEquals(defaultHostParams.size(), 10);
+    assertEquals(defaultHostParams.size(), 11);
     assertEquals(defaultHostParams.get(DB_DRIVER_FILENAME), MYSQL_JAR);
     assertEquals(defaultHostParams.get(STACK_NAME), SOME_STACK_NAME);
     assertEquals(defaultHostParams.get(STACK_VERSION), SOME_STACK_VERSION);
+    assertEquals(defaultHostParams.get(JAVA_VERSION), "8");
   }
 
   @Test

+ 2 - 0
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProviderTest.java

@@ -239,6 +239,7 @@ public class ClientConfigResourceProviderTest {
     expect(configMap.get(Configuration.SERVER_TMP_DIR_KEY)).andReturn(Configuration.SERVER_TMP_DIR_DEFAULT);
     expect(configMap.get(Configuration.AMBARI_PYTHON_WRAP_KEY)).andReturn(Configuration.AMBARI_PYTHON_WRAP_DEFAULT);
     expect(configuration.getConfigsMap()).andReturn(returnConfigMap);
+    expect(configuration.getJavaVersion()).andReturn(8);
     expect(configuration.getExternalScriptTimeout()).andReturn(Integer.parseInt(Configuration.EXTERNAL_SCRIPT_TIMEOUT_DEFAULT));
     Map<String,String> props = new HashMap<String, String>();
     props.put(Configuration.HIVE_METASTORE_PASSWORD_PROPERTY, "pass");
@@ -440,6 +441,7 @@ public class ClientConfigResourceProviderTest {
     expect(configMap.get(Configuration.AMBARI_PYTHON_WRAP_KEY)).andReturn(Configuration.AMBARI_PYTHON_WRAP_DEFAULT);
     expect(configuration.getConfigsMap()).andReturn(returnConfigMap);
     expect(configuration.getCommonServicesPath()).andReturn(commonServicesPath);
+    expect(configuration.getJavaVersion()).andReturn(8);
     expect(configuration.getExternalScriptTimeout()).andReturn(Integer.parseInt(Configuration.EXTERNAL_SCRIPT_TIMEOUT_DEFAULT));
     Map<String,String> props = new HashMap<String, String>();
     props.put(Configuration.HIVE_METASTORE_PASSWORD_PROPERTY, "pass");

+ 5 - 2
ambari-server/src/test/python/TestUtils.py

@@ -20,15 +20,18 @@ import StringIO
 import sys
 from unittest import TestCase
 from mock.mock import patch, MagicMock
-from ambari_commons.os_check import OSCheck
+from ambari_commons.os_check import OSCheck, OSConst
 
 utils = __import__('ambari_server.utils').utils
 
 
 class TestUtils(TestCase):
+
+  @patch.object(OSCheck, "get_os_family")
   @patch('os.listdir')
   @patch('os.path.isdir')
-  def test_get_ubuntu_pg_version(self, path_isdir_mock, os_listdir_mock):
+  def test_get_ubuntu_pg_version(self, path_isdir_mock, os_listdir_mock, get_os_family_mock):
+    get_os_family_mock.return_value = OSConst.UBUNTU_FAMILY
     path_isdir_mock.return_value = True
     os_listdir_mock.return_value = ['8.4', '9.1']
 

+ 2 - 1
ambari-server/src/test/python/custom_actions/configs/install_packages_config.json

@@ -7,7 +7,8 @@
     "hostLevelParams": {
         "jdk_location": "http://0b3.vm:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_67", 
+        "java_home": "/usr/jdk64/jdk1.7.0_67",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://0b3.vm/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "oracle_jdbc_url": "http://0b3.vm:8080/resources//ojdbc6.jar", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/client-upgrade.json

@@ -49,7 +49,8 @@
     "hostLevelParams": {
         "jdk_location": "http://10.0.0.15:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://10.0.0.15/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "custom_command": "RESTART", 

+ 1 - 0
ambari-server/src/test/python/stacks/2.0.6/configs/default.hbasedecom.json

@@ -13,6 +13,7 @@
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "db_name": "ambari"
     }, 
     "commandType": "EXECUTION_COMMAND", 

+ 1 - 0
ambari-server/src/test/python/stacks/2.0.6/configs/default.json

@@ -14,6 +14,7 @@
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "db_name": "ambari",
         "group_list": "[\"hadoop\",\"nobody\",\"users\"]",
         "user_list": "[\"hive\",\"oozie\",\"nobody\",\"ambari-qa\",\"flume\",\"hdfs\",\"storm\",\"mapred\",\"hbase\",\"tez\",\"zookeeper\",\"falcon\",\"sqoop\",\"yarn\",\"hcat\"]"

+ 1 - 0
ambari-server/src/test/python/stacks/2.0.6/configs/default.non_gmetad_host.json

@@ -13,6 +13,7 @@
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "db_name": "ambari"
     }, 
     "commandType": "EXECUTION_COMMAND", 

+ 1 - 0
ambari-server/src/test/python/stacks/2.0.6/configs/default_client.json

@@ -14,6 +14,7 @@
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "db_name": "ambari"
     }, 
     "commandType": "EXECUTION_COMMAND", 

+ 1 - 0
ambari-server/src/test/python/stacks/2.0.6/configs/default_oozie_mysql.json

@@ -14,6 +14,7 @@
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "db_name": "ambari",
         "group_list": "[\"hadoop\",\"nobody\",\"users\"]",
         "user_list": "[\"hive\",\"oozie\",\"nobody\",\"ambari-qa\",\"flume\",\"hdfs\",\"storm\",\"mapred\",\"hbase\",\"tez\",\"zookeeper\",\"falcon\",\"sqoop\",\"yarn\",\"hcat\"]"

+ 1 - 0
ambari-server/src/test/python/stacks/2.0.6/configs/default_update_exclude_file_only.json

@@ -14,6 +14,7 @@
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "db_name": "ambari",
         "group_list": "[\"hadoop\",\"nobody\",\"users\"]",
         "user_list": "[\"hive\",\"oozie\",\"nobody\",\"ambari-qa\",\"flume\",\"hdfs\",\"storm\",\"mapred\",\"hbase\",\"tez\",\"zookeeper\",\"falcon\",\"sqoop\",\"yarn\",\"hcat\"]"

+ 1 - 0
ambari-server/src/test/python/stacks/2.0.6/configs/flume_22.json

@@ -14,6 +14,7 @@
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "db_name": "ambari",
         "group_list": "[\"hadoop\",\"nobody\",\"users\"]",
         "user_list": "[\"hive\",\"oozie\",\"nobody\",\"ambari-qa\",\"flume\",\"hdfs\",\"storm\",\"mapred\",\"hbase\",\"tez\",\"zookeeper\",\"falcon\",\"sqoop\",\"yarn\",\"hcat\"]"

+ 1 - 0
ambari-server/src/test/python/stacks/2.0.6/configs/flume_target.json

@@ -13,6 +13,7 @@
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "db_name": "ambari"
     }, 
     "commandType": "EXECUTION_COMMAND", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/ha_bootstrap_active_node.json

@@ -17,7 +17,8 @@
         "ambari_db_rca_driver": "org.postgresql.Driver", 
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "mysql_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//mysql-connector-java.jar"
     }, 
     "commandType": "EXECUTION_COMMAND", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/ha_bootstrap_standby_node.json

@@ -17,7 +17,8 @@
         "ambari_db_rca_driver": "org.postgresql.Driver", 
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "mysql_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//mysql-connector-java.jar"
     }, 
     "commandType": "EXECUTION_COMMAND", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/ha_default.json

@@ -17,7 +17,8 @@
         "ambari_db_rca_driver": "org.postgresql.Driver", 
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "mysql_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//mysql-connector-java.jar"
     }, 
     "commandType": "EXECUTION_COMMAND", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/ha_secured.json

@@ -17,7 +17,8 @@
         "ambari_db_rca_driver": "org.postgresql.Driver", 
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "mysql_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//mysql-connector-java.jar"
     }, 
     "commandType": "EXECUTION_COMMAND", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/hbase-2.2.json

@@ -48,7 +48,8 @@
     "hostLevelParams": {
         "jdk_location": "http://10.0.0.15:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://10.0.0.15/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "agentCacheDir": "/var/lib/ambari-agent/cache", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/hbase-check-2.2.json

@@ -48,7 +48,8 @@
     "hostLevelParams": {
         "jdk_location": "http://10.0.0.15:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://10.0.0.15/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "oracle_jdbc_url": "http://10.0.0.15:8080/resources//ojdbc6.jar", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/hbase-preupgrade.json

@@ -8,7 +8,8 @@
     "hostLevelParams": {
         "jdk_location": "http://10.0.0.15:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://10.0.0.15/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "oracle_jdbc_url": "http://10.0.0.15:8080/resources//ojdbc6.jar", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/hbase-rs-2.2.json

@@ -48,7 +48,8 @@
     "hostLevelParams": {
         "jdk_location": "http://10.0.0.15:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://10.0.0.15/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "agentCacheDir": "/var/lib/ambari-agent/cache", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/nn_ru_lzo.json

@@ -16,7 +16,8 @@
     "hostLevelParams": {
         "jdk_location": "http://10.0.0.15:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://10.0.0.15/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "custom_command": "RESTART", 

+ 1 - 0
ambari-server/src/test/python/stacks/2.0.6/configs/ranger-namenode-start.json

@@ -39,6 +39,7 @@
         "jdk_location": "http://hw10897.ix:8080/resources/",
         "ambari_db_rca_password": "mapred",
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://hw10897.ix/ambarirca",
         "stack_name": "HDP",
         "oracle_jdbc_url": "http://hw10897.ix:8080/resources//ojdbc6.jar",

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/rebalancehdfs_default.json

@@ -5,7 +5,8 @@
     "hostLevelParams": {
         "jdk_location": "http://c6401.ambari.apache.org:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/lib/jvm/java-1.6.0-openjdk.x86_64", 
+        "java_home": "/usr/lib/jvm/java-1.6.0-openjdk.x86_64",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://c6401.ambari.apache.org/ambarirca", 
         "stack_name": "HDP", 
         "custom_command": "REBALANCEHDFS", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/rebalancehdfs_secured.json

@@ -5,7 +5,8 @@
     "hostLevelParams": {
         "jdk_location": "http://c6401.ambari.apache.org:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/lib/jvm/java-1.6.0-openjdk.x86_64", 
+        "java_home": "/usr/lib/jvm/java-1.6.0-openjdk.x86_64",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://c6401.ambari.apache.org/ambarirca", 
         "stack_name": "HDP", 
         "custom_command": "REBALANCEHDFS", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/secured.json

@@ -16,7 +16,8 @@
         "ambari_db_rca_driver": "org.postgresql.Driver", 
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "mysql_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//mysql-connector-java.jar"
     }, 
     "commandType": "EXECUTION_COMMAND", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/secured_client.json

@@ -16,7 +16,8 @@
         "ambari_db_rca_driver": "org.postgresql.Driver", 
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "mysql_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//mysql-connector-java.jar"
     }, 
     "commandType": "EXECUTION_COMMAND", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/secured_no_jce_name.json

@@ -15,7 +15,8 @@
         "ambari_db_rca_driver": "org.postgresql.Driver", 
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "mysql_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//mysql-connector-java.jar"
     }, 
     "commandType": "EXECUTION_COMMAND", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.0.6/configs/zk-service_check_2.2.json

@@ -13,7 +13,8 @@
     "hostLevelParams": {
         "jdk_location": "http://192.168.64.1:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://192.168.64.1/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "oracle_jdbc_url": "http://192.168.64.1:8080/resources//ojdbc6.jar", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.1/configs/client-upgrade.json

@@ -49,7 +49,8 @@
     "hostLevelParams": {
         "jdk_location": "http://10.0.0.15:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://10.0.0.15/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "custom_command": "RESTART", 

+ 1 - 0
ambari-server/src/test/python/stacks/2.1/configs/default-storm-start.json

@@ -34,6 +34,7 @@
         "jdk_location": "http://c6401.ambari.apache.org:8080/resources/",
         "ambari_db_rca_password": "mapred",
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://c6401.ambari.apache.org/ambarirca",
         "jce_name": "UnlimitedJCEPolicyJDK7.zip",
         "oracle_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//ojdbc6.jar",

+ 1 - 0
ambari-server/src/test/python/stacks/2.1/configs/default.json

@@ -13,6 +13,7 @@
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "db_name": "ambari"
     }, 
     "commandType": "EXECUTION_COMMAND", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.1/configs/secured-storm-start.json

@@ -33,7 +33,8 @@
     "hostLevelParams": {
         "jdk_location": "http://c6401.ambari.apache.org:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://c6401.ambari.apache.org/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "oracle_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//ojdbc6.jar", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.1/configs/secured.json

@@ -16,7 +16,8 @@
         "ambari_db_rca_driver": "org.postgresql.Driver", 
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "mysql_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//mysql-connector-java.jar",
         "db_name": "ambari"
     }, 

+ 1 - 0
ambari-server/src/test/python/stacks/2.2/configs/default.json

@@ -13,6 +13,7 @@
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred",
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "db_name": "ambari"
     },
     "commandType": "EXECUTION_COMMAND",

+ 2 - 1
ambari-server/src/test/python/stacks/2.2/configs/falcon-upgrade.json

@@ -32,7 +32,8 @@
     "hostLevelParams": {
         "jdk_location": "http://hw10897.ix:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://hw10897.ix/ambarirca", 
         "stack_name": "HDP", 
         "custom_command": "RESTART", 

+ 1 - 0
ambari-server/src/test/python/stacks/2.2/configs/hive-upgrade.json

@@ -37,6 +37,7 @@
         "jdk_location": "http://hw10897.ix:8080/resources/",
         "ambari_db_rca_password": "mapred",
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://hw10897.ix/ambarirca",
         "stack_name": "HDP",
         "custom_command": "RESTART",

+ 2 - 1
ambari-server/src/test/python/stacks/2.2/configs/journalnode-upgrade-hdfs-secure.json

@@ -66,7 +66,8 @@
     "hostLevelParams": {
         "jdk_location": "http://c6406.ambari.apache.org:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_67", 
+        "java_home": "/usr/jdk64/jdk1.7.0_67",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://c6406.ambari.apache.org/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "custom_command": "RESTART", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.2/configs/journalnode-upgrade.json

@@ -66,7 +66,8 @@
     "hostLevelParams": {
         "jdk_location": "http://c6406.ambari.apache.org:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_67", 
+        "java_home": "/usr/jdk64/jdk1.7.0_67",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://c6406.ambari.apache.org/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "custom_command": "RESTART", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.2/configs/oozie-downgrade.json

@@ -33,7 +33,8 @@
     "hostLevelParams": {
         "jdk_location": "http://hw10897.ix:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://hw10897.ix/ambarirca", 
         "stack_name": "HDP", 
         "custom_command": "RESTART", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.2/configs/oozie-upgrade.json

@@ -32,7 +32,8 @@
     "hostLevelParams": {
         "jdk_location": "http://hw10897.ix:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_45", 
+        "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://hw10897.ix/ambarirca", 
         "stack_name": "HDP", 
         "custom_command": "RESTART", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.2/configs/pig-service-check-secure.json

@@ -38,7 +38,8 @@
     "hostLevelParams": {
         "jdk_location": "http://c6401.ambari.apache.org:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_67", 
+        "java_home": "/usr/jdk64/jdk1.7.0_67",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://c6401.ambari.apache.org/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "oracle_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//ojdbc6.jar", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.2/configs/ranger-admin-upgrade.json

@@ -58,7 +58,8 @@
     "hostLevelParams": {
         "jdk_location": "http://c6407.ambari.apache.org:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_67", 
+        "java_home": "/usr/jdk64/jdk1.7.0_67",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://c6407.ambari.apache.org/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "custom_command": "RESTART", 

+ 2 - 1
ambari-server/src/test/python/stacks/2.2/configs/ranger-usersync-upgrade.json

@@ -58,7 +58,8 @@
     "hostLevelParams": {
         "jdk_location": "http://c6407.ambari.apache.org:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_67", 
+        "java_home": "/usr/jdk64/jdk1.7.0_67",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://c6407.ambari.apache.org/ambarirca", 
         "jce_name": "UnlimitedJCEPolicyJDK7.zip", 
         "custom_command": "RESTART", 

+ 1 - 0
ambari-server/src/test/python/stacks/2.2/configs/secured.json

@@ -13,6 +13,7 @@
         "jdk_name": "jdk-7u67-linux-x64.tar.gz",
         "ambari_db_rca_username": "mapred",
         "java_home": "/usr/jdk64/jdk1.7.0_45",
+        "java_version": "8",
         "db_name": "ambari"
     },
     "commandType": "EXECUTION_COMMAND",

+ 2 - 1
ambari-server/src/test/python/stacks/2.2/configs/spark-job-history-server.json

@@ -28,7 +28,8 @@
     "hostLevelParams": {
         "jdk_location": "http://c6408.ambari.apache.org:8080/resources/", 
         "ambari_db_rca_password": "mapred", 
-        "java_home": "/usr/jdk64/jdk1.7.0_67", 
+        "java_home": "/usr/jdk64/jdk1.7.0_67",
+        "java_version": "8",
         "ambari_db_rca_url": "jdbc:postgresql://c6408.ambari.apache.org/ambarirca",
         "repo_info": "[{\"baseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.2.2.0-2538\",\"osType\":\"redhat6\",\"repoId\":\"HDP-2.2\",\"repoName\":\"HDP\",\"defaultBaseUrl\":\"http://public-repo-1.hortonworks.com/HDP/centos6/2.x/GA/2.2.0.0\",\"latestBaseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.2.2.0-2538\",\"baseSaved\":true},{\"baseUrl\":\"http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6\",\"osType\":\"redhat6\",\"repoId\":\"HDP-UTILS-1.1.0.20\",\"repoName\":\"HDP-UTILS\",\"defaultBaseUrl\":\"http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6\",\"latestBaseUrl\":\"http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6\",\"baseSaved\":true}]", 
         "group_list": "[\"hadoop\",\"users\",\"spark\"]",