AMBARI-15004. RU/EU: Upgrading Oozie database fails since new configs are not yet written to /usr/hdp/current/oozie-server/conf (alejandro)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/1ead2505 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1ead2505 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1ead2505 Branch: refs/heads/branch-dev-patch-upgrade Commit: 1ead250562513b38e7f2eb57df7cd4bb1d68f06e Parents: 8aab632 Author: Alejandro Fernandez <afernan...@hortonworks.com> Authored: Thu Feb 11 13:50:47 2016 -0800 Committer: Alejandro Fernandez <afernan...@hortonworks.com> Committed: Thu Feb 11 17:09:45 2016 -0800 ---------------------------------------------------------------------- .../state/stack/upgrade/ClusterGrouping.java | 7 ++++ .../state/stack/upgrade/ExecuteHostType.java | 7 ++++ .../state/stack/upgrade/TaskWrapperBuilder.java | 15 +++++++- .../4.0.0.2.0/package/scripts/oozie_server.py | 36 ++++++++++++++------ .../package/scripts/oozie_server_upgrade.py | 4 ++- .../4.0.0.2.0/package/scripts/params_linux.py | 3 ++ .../HDP/2.1/upgrades/nonrolling-upgrade-2.3.xml | 3 +- .../HDP/2.2/upgrades/nonrolling-upgrade-2.2.xml | 5 ++- .../HDP/2.2/upgrades/nonrolling-upgrade-2.3.xml | 5 ++- .../HDP/2.2/upgrades/nonrolling-upgrade-2.4.xml | 5 ++- .../stacks/HDP/2.2/upgrades/upgrade-2.2.xml | 5 ++- .../stacks/HDP/2.2/upgrades/upgrade-2.3.xml | 5 ++- .../stacks/HDP/2.2/upgrades/upgrade-2.4.xml | 5 ++- .../HDP/2.3/upgrades/nonrolling-upgrade-2.3.xml | 5 ++- .../HDP/2.3/upgrades/nonrolling-upgrade-2.4.xml | 5 ++- .../stacks/HDP/2.3/upgrades/upgrade-2.3.xml | 5 ++- .../stacks/HDP/2.3/upgrades/upgrade-2.4.xml | 5 ++- .../HDP/2.4/upgrades/nonrolling-upgrade-2.4.xml | 5 ++- .../stacks/HDP/2.4/upgrades/upgrade-2.4.xml | 5 ++- 19 files changed, 109 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ClusterGrouping.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ClusterGrouping.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ClusterGrouping.java index 5e21da5..8fb6ef5 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ClusterGrouping.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ClusterGrouping.java @@ -232,6 +232,13 @@ public class ClusterGrouping extends Grouping { realHosts = Collections.singleton(hosts.hosts.iterator().next()); } + // Pick the first host sorted alphabetically (case insensitive) + if (ExecuteHostType.FIRST == et.hosts && !hosts.hosts.isEmpty()) { + List<String> sortedHosts = new ArrayList<>(hosts.hosts); + Collections.sort(sortedHosts, String.CASE_INSENSITIVE_ORDER); + realHosts = Collections.singleton(sortedHosts.get(0)); + } + // !!! cannot execute against empty hosts (safety net) if (realHosts.isEmpty()) { return null; http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ExecuteHostType.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ExecuteHostType.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ExecuteHostType.java index b36dca4..80deb60 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ExecuteHostType.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ExecuteHostType.java @@ -42,6 +42,13 @@ public enum ExecuteHostType { ANY, /** + * Run on a single host that is picked by alphabetically sorting all hosts that satisfy the condition of the {@link ExecuteTask} + * . + */ + @XmlEnumValue("first") + FIRST, + + /** * Run on all of the hosts. */ @XmlEnumValue("all") http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/TaskWrapperBuilder.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/TaskWrapperBuilder.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/TaskWrapperBuilder.java index 81a3a4d..f2ef8f0 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/TaskWrapperBuilder.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/TaskWrapperBuilder.java @@ -75,7 +75,20 @@ public class TaskWrapperBuilder { collection.add(new TaskWrapper(service, component, Collections.singleton(hostsType.hosts.iterator().next()), params, t)); continue; } else { - LOG.error(MessageFormat.format("Found an Execute task for {0} and {1} meant to run on a any host but could not find host to run on. Skipping this task.", service, component)); + LOG.error(MessageFormat.format("Found an Execute task for {0} and {1} meant to run on any host but could not find host to run on. Skipping this task.", service, component)); + continue; + } + } + + // Pick the first host sorted alphabetically (case insensitive). + if (et.hosts == ExecuteHostType.FIRST) { + if (hostsType.hosts != null && !hostsType.hosts.isEmpty()) { + List<String> sortedHosts = new ArrayList<>(hostsType.hosts); + Collections.sort(sortedHosts, String.CASE_INSENSITIVE_ORDER); + collection.add(new TaskWrapper(service, component, Collections.singleton(sortedHosts.get(0)), params, t)); + continue; + } else { + LOG.error(MessageFormat.format("Found an Execute task for {0} and {1} meant to run on the first host sorted alphabetically but could not find host to run on. Skipping this task.", service, component)); continue; } } http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server.py b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server.py index dc00b13..b87e453 100644 --- a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server.py +++ b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server.py @@ -24,6 +24,8 @@ from resource_management.libraries.functions import compare_versions from resource_management.libraries.functions import conf_select from resource_management.libraries.functions import hdp_select from resource_management.libraries.functions import format_hdp_stack_version +from resource_management.libraries.functions.format import format +from resource_management.libraries.functions import default from resource_management.libraries.functions.constants import Direction from resource_management.libraries.functions.security_commons import build_expectations from resource_management.libraries.functions.security_commons import cached_kinit_executor @@ -33,6 +35,7 @@ from resource_management.libraries.functions.security_commons import FILE_TYPE_X from ambari_commons import OSConst from ambari_commons.os_family_impl import OsFamilyImpl +from ambari_commons.constants import UPGRADE_TYPE_NON_ROLLING, UPGRADE_TYPE_ROLLING from oozie import oozie from oozie_service import oozie_service @@ -52,19 +55,30 @@ class OozieServer(Script): def configure(self, env, upgrade_type=None): import params - if upgrade_type == "nonrolling" and params.upgrade_direction == Direction.UPGRADE and \ - params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0: - conf_select.select(params.stack_name, "oozie", params.version) - # In order for the "/usr/hdp/current/oozie-<client/server>" point to the new version of - # oozie, we need to create the symlinks both for server and client. - # This is required as both need to be pointing to new installed oozie version. + # The configure command doesn't actually receive the upgrade_type from Script.py, so get it from the config dictionary + if upgrade_type is None: + restart_type = default("/commandParams/restart_type", "") + if restart_type.lower() == "rolling_upgrade": + upgrade_type = UPGRADE_TYPE_ROLLING + elif restart_type.lower() == "nonrolling_upgrade": + upgrade_type = UPGRADE_TYPE_NON_ROLLING + + if upgrade_type is not None and params.upgrade_direction == Direction.UPGRADE and params.version is not None: + Logger.info(format("Configuring Oozie during upgrade type: {upgrade_type}, direction: {params.upgrade_direction}, and version {params.version}")) + if compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0: + # In order for the "/usr/hdp/current/oozie-<client/server>" point to the new version of + # oozie, we need to create the symlinks both for server and client. + # This is required as both need to be pointing to new installed oozie version. + + # Sets the symlink : eg: /usr/hdp/current/oozie-client -> /usr/hdp/2.3.x.y-<version>/oozie + hdp_select.select("oozie-client", params.version) + # Sets the symlink : eg: /usr/hdp/current/oozie-server -> /usr/hdp/2.3.x.y-<version>/oozie + hdp_select.select("oozie-server", params.version) + + if compare_versions(format_hdp_stack_version(params.version), '2.3.0.0') >= 0: + conf_select.select(params.stack_name, "oozie", params.version) - # Sets the symlink : eg: /usr/hdp/current/oozie-client -> /usr/hdp/2.3.x.y-<version>/oozie - hdp_select.select("oozie-client", params.version) - # Sets the symlink : eg: /usr/hdp/current/oozie-server -> /usr/hdp/2.3.x.y-<version>/oozie - hdp_select.select("oozie-server", params.version) env.set_params(params) - oozie(is_server=True) def start(self, env, upgrade_type=None): http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server_upgrade.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server_upgrade.py b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server_upgrade.py index 4d68f03..f0ebd20 100644 --- a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server_upgrade.py +++ b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server_upgrade.py @@ -218,6 +218,8 @@ class OozieUpgrade(Script): import params env.set_params(params) + Logger.info("Will upgrade the Oozie database") + # get the kerberos token if necessary to execute commands as oozie if params.security_enabled: oozie_principal_with_host = params.oozie_principal.replace("_HOST", params.hostname) @@ -231,7 +233,7 @@ class OozieUpgrade(Script): stack_version = upgrade_stack[1] # upgrade oozie DB - Logger.info('Upgrading the Oozie database...') + Logger.info(format('Upgrading the Oozie database, using version {stack_version}')) # the database upgrade requires the db driver JAR, but since we have # not yet run hdp-select to upgrade the current points, we have to use http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/params_linux.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/params_linux.py b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/params_linux.py index a8a93dd..7a2f6f6 100644 --- a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/params_linux.py +++ b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/params_linux.py @@ -106,7 +106,10 @@ execute_path = oozie_bin_dir + os.pathsep + hadoop_bin_dir oozie_user = config['configurations']['oozie-env']['oozie_user'] smokeuser = config['configurations']['cluster-env']['smokeuser'] smokeuser_principal = config['configurations']['cluster-env']['smokeuser_principal_name'] + +# This config actually contains {oozie_user} oozie_admin_users = format(config['configurations']['oozie-env']['oozie_admin_users']) + user_group = config['configurations']['cluster-env']['user_group'] jdk_location = config['hostLevelParams']['jdk_location'] check_db_connection_jar_name = "DBConnectionVerification.jar" http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.1/upgrades/nonrolling-upgrade-2.3.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/upgrades/nonrolling-upgrade-2.3.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/upgrades/nonrolling-upgrade-2.3.xml index 4602ad2..ab1c053 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.1/upgrades/nonrolling-upgrade-2.3.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.1/upgrades/nonrolling-upgrade-2.3.xml @@ -803,10 +803,11 @@ <!-- We need to set up the "/etc/oozie/conf" symlink before upgrading, as the HDP 2.1 directory pertaining to oozie has been deleted as part of HDP 2.1 removal in Express Upgrade from HDP 2.1->2.3. + This configure task should run on all Oozie Servers. --> <task xsi:type="configure_function"/> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task> http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.2.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.2.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.2.xml index 4fd3316..bdd8177 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.2.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.2.xml @@ -761,7 +761,10 @@ <service name="OOZIE"> <component name="OOZIE_SERVER"> <pre-upgrade> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. --> + <task xsi:type="configure_function" hosts="first" /> + + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task> http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.3.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.3.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.3.xml index 1416d10..84da86c 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.3.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.3.xml @@ -1054,7 +1054,10 @@ <service name="OOZIE"> <component name="OOZIE_SERVER"> <pre-upgrade> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. --> + <task xsi:type="configure_function" hosts="first" /> + + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task> http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.4.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.4.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.4.xml index d31914f..c0eae48 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.4.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/nonrolling-upgrade-2.4.xml @@ -1146,7 +1146,10 @@ <service name="OOZIE"> <component name="OOZIE_SERVER"> <pre-upgrade> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. --> + <task xsi:type="configure_function" hosts="first" /> + + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task> http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml index 38ee39b..daa59cc 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml @@ -607,7 +607,10 @@ <task xsi:type="server_action" summary="Adjusting Oozie properties" class="org.apache.ambari.server.serveraction.upgrades.OozieConfigCalculation"/> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. --> + <task xsi:type="configure_function" hosts="first" /> + + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task> http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.3.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.3.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.3.xml index d160d8c..353dc86 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.3.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.3.xml @@ -756,7 +756,10 @@ <function>stop</function> </task> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. --> + <task xsi:type="configure_function" hosts="first" /> + + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task> http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.4.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.4.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.4.xml index c9fabb2..cfd2904 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.4.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.4.xml @@ -769,7 +769,10 @@ <function>stop</function> </task> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. --> + <task xsi:type="configure_function" hosts="first" /> + + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task> http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.3.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.3.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.3.xml index ac84443..c1683ba 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.3.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.3.xml @@ -875,7 +875,10 @@ <service name="OOZIE"> <component name="OOZIE_SERVER"> <pre-upgrade> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. --> + <task xsi:type="configure_function" hosts="first" /> + + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task> http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.4.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.4.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.4.xml index b3da18e..4e148d5 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.4.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/nonrolling-upgrade-2.4.xml @@ -910,7 +910,10 @@ <service name="OOZIE"> <component name="OOZIE_SERVER"> <pre-upgrade> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. --> + <task xsi:type="configure_function" hosts="first" /> + + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task> http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.3.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.3.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.3.xml index 508483e..db1f602 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.3.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.3.xml @@ -707,7 +707,10 @@ <task xsi:type="server_action" summary="Adjusting Oozie properties" class="org.apache.ambari.server.serveraction.upgrades.OozieConfigCalculation"/> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. --> + <task xsi:type="configure_function" hosts="first" /> + + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task> http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.4.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.4.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.4.xml index 32e3764..59f9389 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.4.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.4.xml @@ -692,7 +692,10 @@ <function>stop</function> </task> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. --> + <task xsi:type="configure_function" hosts="first" /> + + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task> http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/nonrolling-upgrade-2.4.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/nonrolling-upgrade-2.4.xml b/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/nonrolling-upgrade-2.4.xml index 3863877..b09c84a 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/nonrolling-upgrade-2.4.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/nonrolling-upgrade-2.4.xml @@ -870,7 +870,10 @@ <service name="OOZIE"> <component name="OOZIE_SERVER"> <pre-upgrade> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. --> + <task xsi:type="configure_function" hosts="first" /> + + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task> http://git-wip-us.apache.org/repos/asf/ambari/blob/1ead2505/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/upgrade-2.4.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/upgrade-2.4.xml b/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/upgrade-2.4.xml index e45e851..5bc360e 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/upgrade-2.4.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.4/upgrades/upgrade-2.4.xml @@ -700,7 +700,10 @@ <task xsi:type="server_action" summary="Adjusting Oozie properties" class="org.apache.ambari.server.serveraction.upgrades.OozieConfigCalculation"/> - <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> + <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. --> + <task xsi:type="configure_function" hosts="first" /> + + <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib"> <script>scripts/oozie_server_upgrade.py</script> <function>upgrade_oozie_database_and_sharelib</function> </task>