Repository: ambari Updated Branches: refs/heads/trunk a189c91b0 -> 08ffdea38
AMBARI-15053: Stack Featurize YARN and MR services (Juanjo Marron via jluniya) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/08ffdea3 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/08ffdea3 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/08ffdea3 Branch: refs/heads/trunk Commit: 08ffdea380897db44737b87b449212136d453c1d Parents: a189c91 Author: Jayush Luniya <[email protected]> Authored: Tue Mar 29 19:20:26 2016 -0700 Committer: Jayush Luniya <[email protected]> Committed: Tue Mar 29 19:20:26 2016 -0700 ---------------------------------------------------------------------- .../libraries/functions/constants.py | 2 ++ .../libraries/functions/stack_features.py | 10 ++++++++ .../scripts/application_timeline_server.py | 8 ++++--- .../2.1.0.2.0/package/scripts/historyserver.py | 12 ++++++---- .../package/scripts/mapreduce2_client.py | 7 ++++-- .../2.1.0.2.0/package/scripts/nodemanager.py | 8 ++++--- .../2.1.0.2.0/package/scripts/params_linux.py | 25 +++++++++++++------- .../package/scripts/resourcemanager.py | 8 ++++--- .../2.1.0.2.0/package/scripts/service_check.py | 7 +++--- .../YARN/2.1.0.2.0/package/scripts/yarn.py | 4 ++-- .../2.1.0.2.0/package/scripts/yarn_client.py | 7 ++++-- .../HDP/2.0.6/properties/stack_features.json | 10 ++++++++ 12 files changed, 76 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/08ffdea3/ambari-common/src/main/python/resource_management/libraries/functions/constants.py ---------------------------------------------------------------------- diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/constants.py b/ambari-common/src/main/python/resource_management/libraries/functions/constants.py index b6aa1b8..f051cfd 100644 --- a/ambari-common/src/main/python/resource_management/libraries/functions/constants.py +++ b/ambari-common/src/main/python/resource_management/libraries/functions/constants.py @@ -49,6 +49,8 @@ class StackFeature: PHOENIX = "phoenix" NFS = "nfs" TEZ_FOR_SPARK = "tez_for_spark" + TIMELINE_STATE_STORE = "timeline_state_store" + COPY_TARBALL_TO_HDFS = "copy_tarball_to_hdfs" SPARK_16PLUS = "spark_16plus" SPARK_THRIFTSERVER = "spark_thriftserver" STORM_KERBEROS = "storm_kerberos" http://git-wip-us.apache.org/repos/asf/ambari/blob/08ffdea3/ambari-common/src/main/python/resource_management/libraries/functions/stack_features.py ---------------------------------------------------------------------- diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/stack_features.py b/ambari-common/src/main/python/resource_management/libraries/functions/stack_features.py index e5fdd89..da34696 100644 --- a/ambari-common/src/main/python/resource_management/libraries/functions/stack_features.py +++ b/ambari-common/src/main/python/resource_management/libraries/functions/stack_features.py @@ -79,6 +79,16 @@ _DEFAULT_STACK_FEATURES = { "max_version": "2.3.0.0" }, { + "name": "timeline_state_store", + "description": "Yarn application timeline-service supports state store property (AMBARI-11442)", + "min_version": "2.2.0.0" + }, + { + "name": "copy_tarball_to_hdfs", + "description": "Copy tarball to HDFS support (AMBARI-12113)", + "min_version": "2.2.0.0" + }, + { "name": "spark_16plus", "description": "Spark 1.6+", "min_version": "2.4.0.0" http://git-wip-us.apache.org/repos/asf/ambari/blob/08ffdea3/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/application_timeline_server.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/application_timeline_server.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/application_timeline_server.py index 2966581..fdb5be5 100644 --- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/application_timeline_server.py +++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/application_timeline_server.py @@ -22,7 +22,8 @@ Ambari Agent from resource_management import * from resource_management.libraries.functions import conf_select from resource_management.libraries.functions import stack_select -from resource_management.libraries.functions.version import compare_versions, format_stack_version +from resource_management.libraries.functions import StackFeature +from resource_management.libraries.functions.stack_features import check_stack_feature from resource_management.libraries.functions.security_commons import build_expectations, \ cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties,\ FILE_TYPE_XML @@ -63,14 +64,15 @@ class ApplicationTimelineServerWindows(ApplicationTimelineServer): @OsFamilyImpl(os_family=OsFamilyImpl.DEFAULT) class ApplicationTimelineServerDefault(ApplicationTimelineServer): def get_stack_to_component(self): - return {"HDP": "hadoop-yarn-timelineserver"} + import params + return {params.stack_name: "hadoop-yarn-timelineserver"} def pre_upgrade_restart(self, env, upgrade_type=None): Logger.info("Executing Stack Upgrade pre-restart") import params env.set_params(params) - if params.version and compare_versions(format_stack_version(params.version), '2.2.0.0') >= 0: + if params.version and check_stack_feature(StackFeature.ROLLING_UPGRADE, params.version): conf_select.select(params.stack_name, "hadoop", params.version) stack_select.select("hadoop-yarn-timelineserver", params.version) http://git-wip-us.apache.org/repos/asf/ambari/blob/08ffdea3/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/historyserver.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/historyserver.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/historyserver.py index 53b0e53..e9ee529 100644 --- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/historyserver.py +++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/historyserver.py @@ -23,9 +23,10 @@ from resource_management.libraries.script.script import Script from resource_management.libraries.resources.hdfs_resource import HdfsResource from resource_management.libraries.functions import conf_select from resource_management.libraries.functions import stack_select +from resource_management.libraries.functions import StackFeature +from resource_management.libraries.functions.stack_features import check_stack_feature from resource_management.libraries.functions.check_process_status import check_process_status from resource_management.libraries.functions.copy_tarball import copy_to_hdfs -from resource_management.libraries.functions.version import compare_versions, format_stack_version from resource_management.libraries.functions.format import format from resource_management.libraries.functions.security_commons import build_expectations, \ cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties, \ @@ -70,14 +71,15 @@ class HistoryserverWindows(HistoryServer): @OsFamilyImpl(os_family=OsFamilyImpl.DEFAULT) class HistoryServerDefault(HistoryServer): def get_stack_to_component(self): - return {"HDP": "hadoop-mapreduce-historyserver"} + import params + return {params.stack_name: "hadoop-mapreduce-historyserver"} def pre_upgrade_restart(self, env, upgrade_type=None): Logger.info("Executing Stack Upgrade pre-restart") import params env.set_params(params) - if params.version and compare_versions(format_stack_version(params.version), '2.2.0.0') >= 0: + if params.version and check_stack_feature(StackFeature.ROLLING_UPGRADE, params.version): conf_select.select(params.stack_name, "hadoop", params.version) stack_select.select("hadoop-mapreduce-historyserver", params.version) # MC Hammer said, "Can't touch this" @@ -91,7 +93,7 @@ class HistoryServerDefault(HistoryServer): env.set_params(params) self.configure(env) # FOR SECURITY - if params.stack_version_formatted_major and compare_versions(params.stack_version_formatted_major, '2.2.0.0') >= 0: + if params.stack_version_formatted_major and check_stack_feature(StackFeature.COPY_TARBALL_TO_HDFS, params.stack_version_formatted_major): # MC Hammer said, "Can't touch this" resource_created = copy_to_hdfs( "mapreduce", @@ -111,7 +113,7 @@ class HistoryServerDefault(HistoryServer): if resource_created: params.HdfsResource(None, action="execute") else: - # In HDP 2.1, tez.tar.gz was copied to a different folder in HDFS. + # In stack versions before copy_tarball_to_hdfs support tez.tar.gz was copied to a different folder in HDFS. install_tez_jars() service('historyserver', action='start', serviceName='mapreduce') http://git-wip-us.apache.org/repos/asf/ambari/blob/08ffdea3/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/mapreduce2_client.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/mapreduce2_client.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/mapreduce2_client.py index 9fc1e32..16f43dc 100644 --- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/mapreduce2_client.py +++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/mapreduce2_client.py @@ -23,6 +23,8 @@ import sys from resource_management import * from resource_management.libraries.functions import conf_select from resource_management.libraries.functions import stack_select +from resource_management.libraries.functions import StackFeature +from resource_management.libraries.functions.stack_features import check_stack_feature from yarn import yarn from ambari_commons import OSConst from ambari_commons.os_family_impl import OsFamilyImpl @@ -50,13 +52,14 @@ class MapReduce2ClientWindows(MapReduce2Client): @OsFamilyImpl(os_family=OsFamilyImpl.DEFAULT) class MapReduce2ClientDefault(MapReduce2Client): def get_stack_to_component(self): - return {"HDP": "hadoop-client"} + import params + return {params.stack_name: "hadoop-client"} def pre_upgrade_restart(self, env, upgrade_type=None): import params env.set_params(params) - if params.version and compare_versions(format_stack_version(params.version), '2.2.0.0') >= 0: + if params.version and check_stack_feature(StackFeature.ROLLING_UPGRADE, params.version): conf_select.select(params.stack_name, "hadoop", params.version) stack_select.select("hadoop-client", params.version) http://git-wip-us.apache.org/repos/asf/ambari/blob/08ffdea3/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py index fd14d0f..dd6b130 100644 --- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py +++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py @@ -24,7 +24,8 @@ import nodemanager_upgrade from resource_management import * from resource_management.libraries.functions import conf_select from resource_management.libraries.functions import stack_select -from resource_management.libraries.functions.version import compare_versions, format_stack_version +from resource_management.libraries.functions import StackFeature +from resource_management.libraries.functions.stack_features import check_stack_feature from resource_management.libraries.functions.format import format from resource_management.libraries.functions.security_commons import build_expectations, \ cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties, \ @@ -65,14 +66,15 @@ class NodemanagerWindows(Nodemanager): @OsFamilyImpl(os_family=OsFamilyImpl.DEFAULT) class NodemanagerDefault(Nodemanager): def get_stack_to_component(self): - return {"HDP": "hadoop-yarn-nodemanager"} + import params + return {params.stack_name: "hadoop-yarn-nodemanager"} def pre_upgrade_restart(self, env, upgrade_type=None): Logger.info("Executing NodeManager Stack Upgrade pre-restart") import params env.set_params(params) - if params.version and compare_versions(format_stack_version(params.version), '2.2.0.0') >= 0: + if params.version and check_stack_feature(StackFeature.ROLLING_UPGRADE, params.version): conf_select.select(params.stack_name, "hadoop", params.version) stack_select.select("hadoop-yarn-nodemanager", params.version) http://git-wip-us.apache.org/repos/asf/ambari/blob/08ffdea3/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/params_linux.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/params_linux.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/params_linux.py index 719f42c..40b076d 100644 --- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/params_linux.py +++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/params_linux.py @@ -25,6 +25,8 @@ from resource_management.libraries.resources.hdfs_resource import HdfsResource from resource_management.libraries.functions import conf_select from resource_management.libraries.functions import stack_select from resource_management.libraries.functions import format +from resource_management.libraries.functions import StackFeature +from resource_management.libraries.functions.stack_features import check_stack_feature from resource_management.libraries.functions import get_kinit_path from resource_management.libraries.functions.get_not_managed_resources import get_not_managed_resources from resource_management.libraries.functions.version import format_stack_version @@ -52,6 +54,7 @@ config = Script.get_config() tmp_dir = Script.get_tmp_dir() stack_name = default("/hostLevelParams/stack_name", None) +stack_root = Script.get_stack_root() tarball_map = default("/configurations/cluster-env/tarball_map", None) # This is expected to be of the form #.#.#.# @@ -59,6 +62,9 @@ stack_version_unformatted = config['hostLevelParams']['stack_version'] stack_version_formatted_major = format_stack_version(stack_version_unformatted) stack_version_formatted = functions.get_stack_version('hadoop-yarn-resourcemanager') +stack_supports_ru = stack_version_formatted_major and check_stack_feature(StackFeature.ROLLING_UPGRADE, stack_version_formatted_major) +stack_supports_timeline_state_store = stack_version_formatted_major and check_stack_feature(StackFeature.TIMELINE_STATE_STORE, stack_version_formatted_major) + # New Cluster Stack Version that is defined during the RESTART of a Stack Upgrade. # It cannot be used during the initial Cluser Install because the version is not yet known. version = default("/commandParams/version", None) @@ -77,8 +83,8 @@ yarn_bin = "/usr/lib/hadoop-yarn/sbin" yarn_container_bin = "/usr/lib/hadoop-yarn/bin" hadoop_java_io_tmpdir = os.path.join(tmp_dir, "hadoop_java_io_tmpdir") -# hadoop parameters for 2.2+ -if Script.is_stack_greater_or_equal("2.2"): +# hadoop parameters stack supporting rolling_uprade +if stack_supports_ru: # MapR directory root mapred_role_root = "hadoop-mapreduce-client" command_role = default("/role", "") @@ -90,14 +96,15 @@ if Script.is_stack_greater_or_equal("2.2"): if command_role in YARN_SERVER_ROLE_DIRECTORY_MAP: yarn_role_root = YARN_SERVER_ROLE_DIRECTORY_MAP[command_role] - hadoop_mapred2_jar_location = format("/usr/hdp/current/{mapred_role_root}") - mapred_bin = format("/usr/hdp/current/{mapred_role_root}/sbin") + hadoop_mapred2_jar_location = format("{stack_root}/current/{mapred_role_root}") + mapred_bin = format("{stack_root}/current/{mapred_role_root}/sbin") - hadoop_yarn_home = format("/usr/hdp/current/{yarn_role_root}") - yarn_bin = format("/usr/hdp/current/{yarn_role_root}/sbin") - yarn_container_bin = format("/usr/hdp/current/{yarn_role_root}/bin") + hadoop_yarn_home = format("{stack_root}/current/{yarn_role_root}") + yarn_bin = format("{stack_root}/current/{yarn_role_root}/sbin") + yarn_container_bin = format("{stack_root}/current/{yarn_role_root}/bin") - # Timeline Service property that was added in 2.2 +if stack_supports_timeline_state_store: + # Timeline Service property that was added timeline_state_store stack feature ats_leveldb_state_store_dir = config['configurations']['yarn-site']['yarn.timeline-service.leveldb-state-store.path'] # ats 1.5 properties @@ -220,7 +227,7 @@ if security_enabled: _rm_keytab = config['configurations']['yarn-site']['yarn.resourcemanager.keytab'] rm_kinit_cmd = format("{kinit_path_local} -kt {_rm_keytab} {_rm_principal_name};") - # YARN timeline security options are only available in HDP Champlain + # YARN timeline security options if has_ats: _yarn_timelineservice_principal_name = config['configurations']['yarn-site']['yarn.timeline-service.principal'] _yarn_timelineservice_principal_name = _yarn_timelineservice_principal_name.replace('_HOST', hostname.lower()) http://git-wip-us.apache.org/repos/asf/ambari/blob/08ffdea3/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/resourcemanager.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/resourcemanager.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/resourcemanager.py index e51ca8a..141b11a 100644 --- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/resourcemanager.py +++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/resourcemanager.py @@ -22,9 +22,10 @@ Ambari Agent from resource_management.libraries.script.script import Script from resource_management.libraries.functions import conf_select from resource_management.libraries.functions import stack_select +from resource_management.libraries.functions import StackFeature +from resource_management.libraries.functions.stack_features import check_stack_feature from resource_management.libraries.functions.check_process_status import check_process_status from resource_management.libraries.functions.format import format -from resource_management.libraries.functions.version import compare_versions, format_stack_version from resource_management.libraries.functions.security_commons import build_expectations, \ cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties, \ FILE_TYPE_XML @@ -98,14 +99,15 @@ class ResourcemanagerWindows(Resourcemanager): @OsFamilyImpl(os_family=OsFamilyImpl.DEFAULT) class ResourcemanagerDefault(Resourcemanager): def get_stack_to_component(self): - return {"HDP": "hadoop-yarn-resourcemanager"} + import params + return {params.stack_name: "hadoop-yarn-resourcemanager"} def pre_upgrade_restart(self, env, upgrade_type=None): Logger.info("Executing Stack Upgrade post-restart") import params env.set_params(params) - if params.version and compare_versions(format_stack_version(params.version), '2.2.0.0') >= 0: + if params.version and check_stack_feature(StackFeature.ROLLING_UPGRADE, params.version): conf_select.select(params.stack_name, "hadoop", params.version) stack_select.select("hadoop-yarn-resourcemanager", params.version) http://git-wip-us.apache.org/repos/asf/ambari/blob/08ffdea3/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py index 93af5d2..e8d98ab 100644 --- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py +++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py @@ -19,7 +19,6 @@ Ambari Agent """ -from resource_management.libraries.functions.version import compare_versions from resource_management import * import sys import ambari_simplejson as json # simplejson is much faster comparing to Python 2.6 json module and has the same functions set. @@ -28,6 +27,8 @@ import subprocess from ambari_commons import os_utils from ambari_commons import OSConst from ambari_commons.os_family_impl import OsFamilyImpl +from resource_management.libraries.functions import StackFeature +from resource_management.libraries.functions.stack_features import check_stack_feature from resource_management.libraries.functions.get_user_call_output import get_user_call_output CURL_CONNECTION_TIMEOUT = '5' @@ -85,8 +86,8 @@ class ServiceCheckDefault(ServiceCheck): import params env.set_params(params) - if params.stack_version_formatted_major != "" and compare_versions(params.stack_version_formatted_major, '2.2') >= 0: - path_to_distributed_shell_jar = "/usr/hdp/current/hadoop-yarn-client/hadoop-yarn-applications-distributedshell.jar" + if params.stack_version_formatted_major and check_stack_feature(StackFeature.ROLLING_UPGRADE, params.stack_version_formatted_major): + path_to_distributed_shell_jar = format("{stack_root}/current/hadoop-yarn-client/hadoop-yarn-applications-distributedshell.jar") else: path_to_distributed_shell_jar = "/usr/lib/hadoop-yarn/hadoop-yarn-applications-distributedshell*.jar" http://git-wip-us.apache.org/repos/asf/ambari/blob/08ffdea3/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn.py index 4110d39..82f8de4 100644 --- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn.py +++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn.py @@ -260,8 +260,8 @@ def yarn(name = None): cd_access="a", ) - # if HDP stack is greater than/equal to 2.2, mkdir for state store property (added in 2.2) - if (Script.is_stack_greater_or_equal("2.2")): + # if stack support application timeline-service state store property (timeline_state_store stack feature) + if params.stack_supports_timeline_state_store: Directory(params.ats_leveldb_state_store_dir, owner=params.yarn_user, group=params.user_group, http://git-wip-us.apache.org/repos/asf/ambari/blob/08ffdea3/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn_client.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn_client.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn_client.py index d300279..1fdd9d6 100644 --- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn_client.py +++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn_client.py @@ -23,6 +23,8 @@ import sys from resource_management import * from resource_management.libraries.functions import conf_select from resource_management.libraries.functions import stack_select +from resource_management.libraries.functions import StackFeature +from resource_management.libraries.functions.stack_features import check_stack_feature from yarn import yarn from ambari_commons import OSConst from ambari_commons.os_family_impl import OsFamilyImpl @@ -50,13 +52,14 @@ class YarnClientWindows(YarnClient): @OsFamilyImpl(os_family=OsFamilyImpl.DEFAULT) class YarnClientDefault(YarnClient): def get_stack_to_component(self): - return {"HDP": "hadoop-client"} + import params + return {params.stack_name: "hadoop-client"} def pre_upgrade_restart(self, env, upgrade_type=None): import params env.set_params(params) - if params.version and compare_versions(format_stack_version(params.version), '2.2.0.0') >= 0: + if params.version and check_stack_feature(StackFeature.ROLLING_UPGRADE, params.version): conf_select.select(params.stack_name, "hadoop", params.version) stack_select.select("hadoop-client", params.version) http://git-wip-us.apache.org/repos/asf/ambari/blob/08ffdea3/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_features.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_features.json b/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_features.json index 0234bba..86e5971 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_features.json +++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/properties/stack_features.json @@ -53,6 +53,16 @@ "max_version": "2.3.0.0" }, { + "name": "timeline_state_store", + "description": "Yarn application timeline-service supports state store property (AMBARI-11442)", + "min_version": "2.2.0.0" + }, + { + "name": "copy_tarball_to_hdfs", + "description": "Copy tarball to HDFS support (AMBARI-12113)", + "min_version": "2.2.0.0" + }, + { "name": "spark_16plus", "description": "Spark 1.6+", "min_version": "2.4.0.0"
