You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2017/06/27 21:48:52 UTC

ambari git commit: AMBARI-21350. ADDENDUM. Create a cross stack upgrade pack in Ambari (alejandro)

Repository: ambari
Updated Branches:
  refs/heads/branch-feature-AMBARI-21348 196ed48b8 -> 7b8f0eab5


AMBARI-21350. ADDENDUM. Create a cross stack upgrade pack in Ambari (alejandro)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7b8f0eab
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7b8f0eab
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7b8f0eab

Branch: refs/heads/branch-feature-AMBARI-21348
Commit: 7b8f0eab5146855c2dae21c3431bc1511a1fc4c9
Parents: 196ed48
Author: Alejandro Fernandez <af...@hortonworks.com>
Authored: Tue Jun 27 14:47:25 2017 -0700
Committer: Alejandro Fernandez <af...@hortonworks.com>
Committed: Tue Jun 27 14:47:25 2017 -0700

----------------------------------------------------------------------
 .../BigInsights/4.2/upgrades/config-upgrade.xml | 118 +++
 .../upgrades/nonrolling-upgrade-to-hdp-2.6.xml  | 797 +++++++++++++++++++
 .../BigInsights/upgrades/config-upgrade.xml     | 118 ---
 .../upgrades/nonrolling-upgrade-to-hdp-2.6.xml  | 797 -------------------
 4 files changed, 915 insertions(+), 915 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/7b8f0eab/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/config-upgrade.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/config-upgrade.xml b/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/config-upgrade.xml
new file mode 100644
index 0000000..540c017
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/config-upgrade.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<upgrade-config-changes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <services>
+    <service name="HDFS">
+      <component name="NAMENODE">
+        <changes>
+          <definition xsi:type="configure" id="biginsights_4_2_namenode_update_hadoop_env" summary="Update Hadoop env">
+            <type>hadoop-env</type>
+            <replace key="content" find="export JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:/usr/iop/current/hadoop-client/lib/native/Linux-amd64-64" replace-with="export JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:/usr/hdp/current/hadoop-client/lib/native" />
+            <replace key="content" find="export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}${JAVA_JDBC_LIBS}:${MAPREDUCE_LIBS}" replace-with="export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}${JAVA_JDBC_LIBS}:${MAPREDUCE_LIBS}&#10;if [ -d &quot;/usr/lib/hadoop-lzo&quot; ]; then&#10;  export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/lib/hadoop-lzo/lib/*&#10;  export JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:/usr/lib/hadoop-lzo/lib/native&#10;fi"/>
+          </definition>
+        </changes>
+      </component>
+    </service>
+    
+    <service name="MAPREDUCE2">
+      <component name="HISTORYSERVER">
+        <changes>
+          <definition xsi:type="configure" id="biginsights_4_2_mapreduce_application_framework_patch" summary="Update MapReduce2 configurations">
+            <type>mapred-site</type>
+            <set key="mapreduce.application.framework.path" value="/hdp/apps/${hdp.version}/mapreduce/mapreduce.tar.gz#mr-framework"/>
+          </definition>
+        </changes>
+      </component>
+    </service>
+    
+    <service name="HIVE">
+      <component name="HIVE_SERVER">
+        <changes>
+          <definition xsi:type="configure" id="biginsights_4_2_0_0_hive_server_configure_authentication" summary="Configuring hive authentication">
+            <type>hive-site</type>
+            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.url" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.baseDN" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.pam.services" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
+            <transfer operation="delete" delete-key="hive.server2.custom.authentication.class" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.keytab" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.principal" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
+
+            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.keytab" if-key="hive.server2.authentication" if-type="hive-site" if-value="ldap"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.principal" if-key="hive.server2.authentication" if-type="hive-site" if-value="ldap"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.pam.services" if-key="hive.server2.authentication" if-type="hive-site" if-value="ldap"/>
+            <transfer operation="delete" delete-key="hive.server2.custom.authentication.class" if-key="hive.server2.authentication" if-type="hive-site" if-value="ldap"/>
+
+            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.url" if-key="hive.server2.authentication" if-type="hive-site" if-value="kerberos"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.baseDN" if-key="hive.server2.authentication" if-type="hive-site" if-value="kerberos"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.pam.services" if-key="hive.server2.authentication" if-type="hive-site" if-value="kerberos"/>
+            <transfer operation="delete" delete-key="hive.server2.custom.authentication.class" if-key="hive.server2.authentication" if-type="hive-site" if-value="kerberos"/>
+
+            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.url" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.baseDN" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
+            <transfer operation="delete" delete-key="hive.server2.custom.authentication.class" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.keytab" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.principal" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
+
+            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.url" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.baseDN" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.pam.services" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.keytab" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
+            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.principal" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
+          </definition>
+          
+        </changes>
+      </component>
+      
+      <component name="WEBHCAT_SERVER">
+        <changes>
+          <definition xsi:type="configure" id="biginsights_4_2_webhcat_server_update_environment_configurations" summary="Update Hadoop home">
+            <type>webhcat-env</type>
+            <replace key="content" find="export HADOOP_HOME={{hadoop_home}}" replace-with="export HADOOP_HOME=${HADOOP_HOME:-{{hadoop_home}}}" />
+          </definition>
+          
+          <definition xsi:type="configure" id="biginsights_4_2_webhcat_server_update_configurations" summary="Updating Configuration Paths">
+            <type>webhcat-site</type>
+            <replace key="templeton.jar" find="/usr/iop/current/hive-webhcat" replace-with="/usr/hdp/${hdp.version}/hive"/>
+            <replace key="templeton.libjars" find="/usr/iop/current/zookeeper-client" replace-with="/usr/hdp/${hdp.version}/zookeeper"/>
+            <replace key="templeton.hadoop" find="/usr/iop/current/hadoop-client" replace-with="/usr/hdp/${hdp.version}/hadoop"/>
+            <replace key="templeton.hcat" find="/usr/iop/current/hive-client" replace-with="/usr/hdp/${hdp.version}/hive"/>
+          </definition>
+        </changes>
+      </component>
+    </service>
+    
+    <service name="OOZIE">
+      <component name="OOZIE_SERVER">
+        <changes>
+          <definition xsi:type="configure" id="biginsights_4_2_oozie_server_update_configurations" Summary="Updating oozie-site configurations">
+            <condition type="oozie-site" key="oozie.services" value="org.apache.oozie.service.SchedulerService,      org.apache.oozie.service.InstrumentationService,      org.apache.oozie.service.CallableQueueService,      org.apache.oozie.service.UUIDService,      org.apache.oozie.service.ELService,      org.apache.oozie.service.AuthorizationService,      org.apache.oozie.service.UserGroupInformationService,      org.apache.oozie.service.HadoopAccessorService,   org.apache.oozie.service.JobsConcurrencyService,      org.apache.oozie.service.URIHandlerService,      org.apache.oozie.service.MemoryLocksService,      org.apache.oozie.service.DagXLogInfoService,      org.apache.oozie.service.SchemaService,      org.apache.oozie.service.LiteWorkflowAppService,      org.apache.oozie.service.JPAService,      org.apache.oozie.service.StoreService,      org.apache.oozie.service.SLAStoreService,      org.apache.oozie.service.DBLiteWorkflowStoreService,      org.apache.oozie.service.CallbackSer
 vice,   org.apache.oozie.service.ActionService, org.apache.oozie.service.ShareLibService,      org.apache.oozie.service.ActionCheckerService,      org.apache.oozie.service.RecoveryService,      org.apache.oozie.service.PurgeService,      org.apache.oozie.service.CoordinatorEngineService,      org.apache.oozie.service.BundleEngineService,      org.apache.oozie.service.DagEngineService,      org.apache.oozie.service.CoordMaterializeTriggerService,      org.apache.oozie.service.StatusTransitService,      org.apache.oozie.service.PauseTransitService,      org.apache.oozie.service.GroupsService,      org.apache.oozie.service.ProxyUserService,    org.apache.oozie.service.XLogStreamingService,      org.apache.oozie.service.JvmPauseMonitorService">
+              <type>oozie-site</type>
+              <key>oozie.services</key>
+              <value>org.apache.oozie.service.SchedulerService,      org.apache.oozie.service.InstrumentationService,      org.apache.oozie.service.CallableQueueService,      org.apache.oozie.service.UUIDService,      org.apache.oozie.service.ELService,      org.apache.oozie.service.AuthorizationService,      org.apache.oozie.service.UserGroupInformationService,      org.apache.oozie.service.HadoopAccessorService,   org.apache.oozie.service.JobsConcurrencyService,      org.apache.oozie.service.URIHandlerService,      org.apache.oozie.service.MemoryLocksService,      org.apache.oozie.service.DagXLogInfoService,      org.apache.oozie.service.SchemaService,      org.apache.oozie.service.LiteWorkflowAppService,      org.apache.oozie.service.JPAService,      org.apache.oozie.service.StoreService,      org.apache.oozie.service.SLAStoreService,      org.apache.oozie.service.DBLiteWorkflowStoreService,      org.apache.oozie.service.CallbackService,   org.apache.oozie.service.ActionService, 
 org.apache.oozie.service.ShareLibService,      org.apache.oozie.service.ActionCheckerService,      org.apache.oozie.service.RecoveryService,      org.apache.oozie.service.PurgeService,      org.apache.oozie.service.CoordinatorEngineService,      org.apache.oozie.service.BundleEngineService,      org.apache.oozie.service.DagEngineService,      org.apache.oozie.service.CoordMaterializeTriggerService,      org.apache.oozie.service.StatusTransitService,      org.apache.oozie.service.PauseTransitService,      org.apache.oozie.service.GroupsService,      org.apache.oozie.service.ProxyUserService,    org.apache.oozie.service.XLogStreamingService,      org.apache.oozie.service.JvmPauseMonitorService,     org.apache.oozie.service.SparkConfigurationService</value>
+            </condition>
+          </definition>
+          <definition xsi:type="configure" id="biginsights_4_2_oozie_server_update_environment_configurations" summary="Update oozie env">
+            <type>oozie-env</type>
+            <replace key="content" find="export CATALINA_BASE=${CATALINA_BASE:-{{oozie_server_dir}}}" replace-with="export CATALINA_BASE={{oozie_server_dir}}" />            
+          </definition>
+        </changes>
+      </component>
+    </service>
+  </services>
+</upgrade-config-changes>

http://git-wip-us.apache.org/repos/asf/ambari/blob/7b8f0eab/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/nonrolling-upgrade-to-hdp-2.6.xml b/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
new file mode 100644
index 0000000..2dad692
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/BigInsights/4.2/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
@@ -0,0 +1,797 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+
+<upgrade xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="upgrade-pack.xsd">
+  <target>2.6.*.*</target>
+  <target-stack>HDP-2.6</target-stack>
+  <type>NON_ROLLING</type>
+  <downgrade-allowed>false</downgrade-allowed>
+  <prerequisite-checks>
+    <check>org.apache.ambari.server.checks.ServicesYarnWorkPreservingCheck</check>
+    <check>org.apache.ambari.server.checks.JavaVersionCheck</check>
+    <configuration>
+      <!-- Configuration properties for all pre-reqs including required pre-reqs -->
+      <check-properties name="org.apache.ambari.server.checks.HiveDynamicServiceDiscoveryCheck">
+        <property name="min-failure-stack-version">BigInsights-4.1</property>
+      </check-properties>
+      <check-properties name="org.apache.ambari.server.checks.JavaVersionCheck">
+        <property name="java-version">1.8</property>
+      </check-properties>
+    </configuration>
+  </prerequisite-checks>
+
+  <order>
+    <!-- NOT SUPPORTED AT THIS TIME
+    <group xsi:type="stop" name="STOP_HIGH_LEVEL_SERVICE_COMPONENTS" title="Stop Components for High-Level Services">
+      <direction>UPGRADE</direction>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <service-check>false</service-check>
+      <parallel-scheduler/>
+
+      <service name="FLUME">
+        <component>FLUME_HANDLER</component>
+      </service>
+
+      <service name="KNOX">
+        <component>KNOX_GATEWAY</component>
+      </service>
+
+      <service name="KAFKA">
+        <component>KAFKA_BROKER</component>
+      </service>
+
+      <service name="OOZIE">
+        <component>OOZIE_SERVER</component>
+      </service>
+
+      <service name="SPARK">
+        <component>SPARK_JOBHISTORYSERVER</component>
+        <component>SPARK_THRIFTSERVER</component>
+      </service>
+
+      <service name="HIVE">
+        <component>WEBHCAT_SERVER</component>
+        <component>HIVE_SERVER</component>
+        <component>HIVE_METASTORE</component>
+      </service>
+
+      <service name="YARN">
+        <component>NODEMANAGER</component>
+        <component>RESOURCEMANAGER</component>
+        <component>APP_TIMELINE_SERVER</component>
+      </service>
+
+      <service name="MAPREDUCE2">
+        <component>HISTORYSERVER</component>
+      </service>
+    </group>
+
+    <group xsi:type="cluster" name="Backups" title="Perform Backups">
+      <direction>UPGRADE</direction>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+
+      <execute-stage service="OOZIE" component="OOZIE_SERVER" title="Backup Oozie Database">
+        <task xsi:type="manual">
+          <message>Before continuing, please backup the Oozie Server database referenced by the Oozie server located on {{hosts.all}}.</message>
+        </task>
+      </execute-stage>
+
+      <execute-stage service="HIVE" component="HIVE_METASTORE" title="Backup Hive Metastore">
+        <task xsi:type="manual">
+          <message>Before continuing, please backup the Hive Metastore database referenced by the Hive Metastore service(s) located on the following host(s): {{hosts.all}}.</message>
+        </task>
+      </execute-stage>
+
+      <execute-stage service="KNOX" component="KNOX_GATEWAY" title="Backup Knox Data">
+        <task xsi:type="manual">
+          <message>Before continuing, please backup the Knox data. E.g., "cp -RL /usr/iop/current/knox-server/data/* ~/knox_backup/" on the following host(s): {{hosts.all}}.</message>
+        </task>
+      </execute-stage>
+
+      <execute-stage service="HBASE" component="HBASE_MASTER" title="Snapshot HBASE">
+        <task xsi:type="execute" hosts="master">
+          <script>scripts/hbase_upgrade.py</script>
+          <function>snapshot</function>
+        </task>
+      </execute-stage>
+
+      <execute-stage service="HDFS" component="NAMENODE" title="Prepare HDFS">
+        <task xsi:type="execute" hosts="master">
+          <script>scripts/namenode.py</script>
+          <function>prepare_express_upgrade</function>
+        </task>
+      </execute-stage>
+    </group>
+
+    <group xsi:type="stop" name="STOP_LOW_LEVEL_SERVICE_COMPONENTS" title="Stop Components for Core Services">
+      <direction>UPGRADE</direction>
+      <skippable>true</skippable>
+      <service-check>false</service-check>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+
+      <service name="HBASE">
+        <component>HBASE_REGIONSERVER</component>
+        <component>HBASE_MASTER</component>
+        <component>HBASE_REST_SERVER</component>
+      </service>
+
+      <service name="HDFS">
+        <component>DATANODE</component>
+        <component>NAMENODE</component>
+        <component>SECONDARY_NAMENODE</component>
+        <component>ZKFC</component>
+        <component>JOURNALNODE</component>
+        <component>NFS_GATEWAY</component>
+      </service>
+
+      <service name="ZOOKEEPER">
+        <component>ZOOKEEPER_SERVER</component>
+      </service>
+    </group>
+    -->
+
+    <!-- After processing this group, will change the effective Stack of the UpgradeContext object. -->
+    <group xsi:type="update-stack" name="UPDATE_DESIRED_STACK_ID" title="Update Target Stack">
+      <execute-stage title="Update Target Stack" service="" component="">
+        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.UpdateDesiredStackAction">
+        </task>
+      </execute-stage>
+    </group>
+
+    <group xsi:type="cluster" name="Upgrade service configs" title="Upgrade service configs">
+      <direction>UPGRADE</direction>    <!--  prevent config changes on downgrade -->
+      <skippable>true</skippable>       <!-- May fix configuration problems manually -->
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+
+      <!-- HDFS -->
+      <execute-stage service="HDFS" component="NAMENODE" title="Apply config changes for Hadoop NameNode">
+        <task xsi:type="configure" id="biginsights_4_2_namenode_update_hadoop_env" />
+      </execute-stage>
+
+      <!-- YARN -->
+      <execute-stage service="MAPREDUCE2" component="HISTORYSERVER" title="Apply config changes for HistoryServer">
+        <task xsi:type="configure" id="biginsights_4_2_mapreduce_application_framework_patch" />
+      </execute-stage>
+      
+      <!-- HIVE -->
+      <execute-stage service="HIVE" component="HIVE_SERVER" title="Apply config changes for Hive Server">
+        <task xsi:type="configure" id="biginsights_4_2_0_0_hive_server_configure_authentication"/>
+      </execute-stage>      
+      <execute-stage service="HIVE" component="WEBHCAT_SERVER" title="Apply config changes for Hive WebHCat server">
+        <task xsi:type="configure" id="biginsights_4_2_webhcat_server_update_environment_configurations" />
+      </execute-stage>
+      <execute-stage service="HIVE" component="WEBHCAT_SERVER" title="Apply config changes for Hive WebHCat server">
+        <task xsi:type="configure" id="biginsights_4_2_webhcat_server_update_configurations" />
+      </execute-stage>
+      
+      <!-- OOZIE -->
+      <execute-stage service="OOZIE" component="OOZIE_SERVER" title="Apply config changes for Oozie server">
+        <task xsi:type="configure" id="biginsights_4_2_oozie_server_update_configurations" />
+      </execute-stage>
+      <execute-stage service="OOZIE" component="OOZIE_SERVER" title="Apply config changes for Oozie server">
+        <task xsi:type="configure" id="biginsights_4_2_oozie_server_update_environment_configurations" />
+      </execute-stage>
+    </group>
+
+
+    <!--
+    After processing this group, the user-specified Kerberos descriptor will be updated to work with
+    the new stack-level Kerberos descriptor.
+    -->
+    <group xsi:type="cluster" name="UPDATE_KERBEROS_DESCRIPTORS" title="Update Kerberos Descriptors">
+      <condition xsi:type="security" type="kerberos"/>
+      <execute-stage title="Update the user-specified Kerberos descriptor">
+        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.UpgradeUserKerberosDescriptor"/>
+      </execute-stage>
+    </group>
+
+    <!--
+    Invoke "hdp-select set all" to change any components we may have missed
+    that are installed on the hosts but not known by Ambari.
+    -->
+    <group xsi:type="cluster" name="ALL_HOST_OPS" title="Set Version On All Hosts">
+      <scope>COMPLETE</scope>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+
+      <execute-stage title="Update stack to {{version}}">
+        <task xsi:type="execute">
+          <script>scripts/ru_set_all.py</script>
+          <function>actionexecute</function>
+        </task>
+      </execute-stage>
+    </group>
+
+    <!-- Now, restart all of the services. -->
+    <group xsi:type="restart" name="ZOOKEEPER" title="ZooKeeper">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="ZOOKEEPER">
+        <service-check>false</service-check>
+        <component>ZOOKEEPER_SERVER</component>
+        <component>ZOOKEEPER_CLIENT</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="HDFS" title="HDFS">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="HDFS">
+        <component>JOURNALNODE</component>
+        <component>ZKFC</component>
+        <component>NAMENODE</component>
+        <component>SECONDARY_NAMENODE</component>
+        <component>NFS_GATEWAY</component>
+        <component>HDFS_CLIENT</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="HDFS_DATANODES" title="HDFS DataNodes">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="HDFS">
+        <component>DATANODE</component>
+      </service>
+    </group>
+
+    <group xsi:type="cluster" name="HDFS_LEAVE_SAFEMODE" title="HDFS - Wait to leave Safemode">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+
+      <execute-stage service="HDFS" component="NAMENODE" title="Wait to leave Safemode">
+        <task xsi:type="execute" hosts="all" summary="Wait for NameNode to leave Safemode">
+          <script>scripts/namenode.py</script>
+          <function>wait_for_safemode_off</function>
+        </task>
+      </execute-stage>
+    </group>
+
+    <group xsi:type="restart" name="KAFKA" title="Kafka">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="KAFKA">
+        <component>KAFKA_BROKER</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="YARN_AND_MAPR" title="YARN and MapReduce2">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+
+      <service name="MAPREDUCE2">
+        <component>HISTORYSERVER</component>
+        <component>MAPREDUCE2_CLIENT</component>
+      </service>
+
+      <service name="YARN">
+        <component>APP_TIMELINE_SERVER</component>
+        <component>RESOURCEMANAGER</component>
+        <component>YARN_CLIENT</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="YARN_NODEMANAGERS" title="YARN NodeManagers">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+
+      <service name="YARN">
+        <component>NODEMANAGER</component>
+      </service>
+    </group>
+
+    <group xsi:type="cluster" name="START_YARN_QUEUES" title="Start YARN Queues">
+      <direction>UPGRADE</direction>
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+
+      <execute-stage service="YARN" component="RESOURCEMANAGER" title="Start YARN Queues">
+        <condition xsi:type="config" type="yarn-site" property="yarn.resourcemanager.work-preserving-recovery.enabled" value="true" comparison="not-equals"/>
+        <task xsi:type="manual">
+          <message>Before continuing, please start all YARN queues.</message>
+        </task>
+      </execute-stage>
+    </group>
+
+    <group xsi:type="restart" name="HBASE" title="HBASE">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="HBASE">
+        <component>HBASE_MASTER</component>
+        <component>HBASE_REGIONSERVER</component>
+        <component>HBASE_CLIENT</component>
+        <component>HBASE_REST_SERVER</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="CLIENTS" title="Pig, Sqoop Clients">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="PIG">
+        <component>PIG</component>
+      </service>
+
+      <service name="SQOOP">
+        <component>SQOOP</component>
+      </service>
+    </group>
+
+    <group name="SERVICE_CHECK" title="All Service Checks" xsi:type="service-check">
+      <skippable>true</skippable>
+      <direction>UPGRADE</direction>
+      <priority>
+        <service>HDFS</service>
+        <service>YARN</service>
+        <service>MAPREDUCE2</service>
+        <service>HBASE</service>
+      </priority>
+    </group>
+
+    <!-- Slider must be upgraded before higher-level apps that need to run apps on Slider, such as Hive. -->
+    <group xsi:type="restart" name="SLIDER" title="Slider">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="SLIDER">
+        <component>SLIDER</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="HIVE_MASTERS" title="Hive Masters">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <!-- Must be ran sequentially because Hive Metastore upgrades the schema and Hive Server copies tarballs. -->
+      <parallel-scheduler>
+        <max-degree-of-parallelism>1</max-degree-of-parallelism>
+      </parallel-scheduler>
+      <service name="HIVE">
+        <component>HIVE_METASTORE</component>
+        <component>HIVE_SERVER</component>
+        <component>WEBHCAT_SERVER</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="HIVE_CLIENTS" title="Hive Clients">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="HIVE">
+        <component>HIVE_CLIENT</component>
+        <component>HCAT</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="SPARK" title="Spark">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="SPARK">
+        <component>SPARK_JOBHISTORYSERVER</component>
+        <component>SPARK_THRIFTSERVER</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="SPARK_CLIENTS" title="Spark Clients">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="SPARK">
+        <component>SPARK_CLIENT</component>
+      </service>
+    </group>
+
+    <!-- Upgrade Oozie DB only on Upgrade direction, and always create a new ShareLib. -->
+    <group name="UPGRADE_OOZIE" title="Upgrade Oozie Database">
+      <direction>UPGRADE</direction>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <execute-stage service="OOZIE" component="OOZIE_SERVER" title="Upgrade Oozie Database">
+        <task xsi:type="execute" hosts="any" summary="Upgrading the database and creating a new sharelib">
+          <script>scripts/oozie_server_upgrade.py</script>
+          <function>upgrade_oozie_database_and_sharelib</function>
+        </task>
+      </execute-stage>
+    </group>
+
+    <group xsi:type="restart" name="OOZIE" title="Oozie">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="OOZIE">
+        <component>OOZIE_SERVER</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="OOZIE_CLIENTS" title="Oozie Clients">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="OOZIE">
+        <component>OOZIE_CLIENT</component>
+      </service>
+    </group>
+
+    <group name="SERVICE_CHECK_2" title="All Service Checks" xsi:type="service-check">
+      <direction>UPGRADE</direction>
+      <skippable>true</skippable>
+      <priority>
+        <service>SLIDER</service>
+        <service>HIVE</service>
+        <service>SPARK</service>
+        <service>OOZIE</service>
+      </priority>
+    </group>
+
+    <group xsi:type="restart" name="KNOX" title="Knox">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="KNOX">
+        <component>KNOX_GATEWAY</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="FLUME" title="Flume">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="FLUME">
+        <component>FLUME_HANDLER</component>
+      </service>
+    </group>
+
+    <group name="SERVICE_CHECK_3" title="All Service Checks" xsi:type="service-check">
+      <direction>UPGRADE</direction>
+      <skippable>true</skippable>
+      <priority>
+        <service>KNOX</service>
+        <service>FLUME</service>
+      </priority>
+    </group>
+
+    <!--
+    Invoke "hdp-select set all" to change any components we may have missed
+    that are installed on the hosts but not known by Ambari.
+    -->
+    <group xsi:type="cluster" name="ALL_HOST_OPS" title="Set Version On All Hosts">
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+
+      <execute-stage title="Update stack to {{version}}">
+        <task xsi:type="execute">
+          <script>scripts/ru_set_all.py</script>
+          <function>actionexecute</function>
+        </task>
+      </execute-stage>
+    </group>
+
+    <group xsi:type="cluster" name="FINALIZE_PRE_CHECK" title="Finalize {{direction.text.proper}} Pre-Check">
+      <direction>UPGRADE</direction>
+      
+      <execute-stage title="Check Component Versions">
+        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.ComponentVersionCheckAction" />
+      </execute-stage>
+    </group>
+
+    <group xsi:type="cluster" name="POST_CLUSTER" title="Finalize {{direction.text.proper}}">
+      <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+
+      <execute-stage title="Confirm Finalize">
+        <direction>UPGRADE</direction>
+        <task xsi:type="manual">
+          <message>Please confirm you are ready to finalize.</message>
+        </task>
+      </execute-stage>
+
+      <execute-stage service="HBASE" component="HBASE_MASTER" title="Delete HBase snapshots">
+        <direction>UPGRADE</direction>
+        <task xsi:type="manual">
+          <message>You can now remove any HBase snapshots which were created at the beginning of the upgrade. To see existing snapshots, use the following HBase shell command:</message>
+          <message>hbase> list_snapshots</message>
+          <message>Once you have found an existing snapshot which you would like to remove, you can use the following command:</message>
+          <message>hbase> delete_snapshot 'snapshotName'</message>
+        </task>
+      </execute-stage>
+
+      <execute-stage service="HDFS" component="NAMENODE" title="Execute HDFS Finalize">
+        <task xsi:type="execute" hosts="master">
+          <script>scripts/namenode.py</script>
+          <function>finalize_non_rolling_upgrade</function>
+        </task>
+      </execute-stage>
+
+      <execute-stage title="Save Cluster State" service="" component="">
+        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.FinalizeUpgradeAction">
+        </task>
+      </execute-stage>
+    </group>
+  </order>
+
+  <processing>
+    <service name="ZOOKEEPER">
+      <component name="ZOOKEEPER_SERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="ZOOKEEPER_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="HDFS">
+      <component name="NAMENODE">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="DATANODE">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="HDFS_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="JOURNALNODE">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="ZKFC">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="NFS_GATEWAY">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="MAPREDUCE2">
+      <component name="HISTORYSERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="MAPREDUCE2_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="YARN">
+      <component name="APP_TIMELINE_SERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="RESOURCEMANAGER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="NODEMANAGER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="YARN_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="KAFKA">
+      <component name="KAFKA_BROKER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="HBASE">
+      <component name="HBASE_MASTER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="HBASE_REGIONSERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="HBASE_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="HBASE_REST_SERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="PIG">
+      <component name="PIG">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="SQOOP">
+      <component name="SQOOP">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="HIVE">
+      <component name="HIVE_METASTORE">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="HIVE_SERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="WEBHCAT_SERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="HIVE_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="HCAT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="SPARK">
+      <component name="SPARK_JOBHISTORYSERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+      <component name="SPARK_THRIFTSERVER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+      <component name="SPARK_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="OOZIE">
+      <component name="OOZIE_SERVER">
+        <pre-upgrade>
+          <!-- 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</summary>
+            <script>scripts/oozie_server_upgrade.py</script>
+            <function>upgrade_oozie_database_and_sharelib</function>
+          </task>
+        </pre-upgrade>
+
+        <pre-downgrade>
+          <task xsi:type="execute" hosts="any" sequential="true">
+            <summary>Create a new sharelib</summary>
+            <script>scripts/oozie_server_upgrade.py</script>
+            <function>create_sharelib</function>
+          </task>
+        </pre-downgrade>
+
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+
+      <component name="OOZIE_CLIENT">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="KNOX">
+      <component name="KNOX_GATEWAY">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="SLIDER">
+      <component name="SLIDER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+
+    <service name="FLUME">
+      <component name="FLUME_HANDLER">
+        <upgrade>
+          <task xsi:type="restart-task"/>
+        </upgrade>
+      </component>
+    </service>
+  </processing>
+</upgrade>

http://git-wip-us.apache.org/repos/asf/ambari/blob/7b8f0eab/ambari-server/src/main/resources/stacks/BigInsights/upgrades/config-upgrade.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BigInsights/upgrades/config-upgrade.xml b/ambari-server/src/main/resources/stacks/BigInsights/upgrades/config-upgrade.xml
deleted file mode 100644
index 540c017..0000000
--- a/ambari-server/src/main/resources/stacks/BigInsights/upgrades/config-upgrade.xml
+++ /dev/null
@@ -1,118 +0,0 @@
-<?xml version="1.0"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-
-<upgrade-config-changes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <services>
-    <service name="HDFS">
-      <component name="NAMENODE">
-        <changes>
-          <definition xsi:type="configure" id="biginsights_4_2_namenode_update_hadoop_env" summary="Update Hadoop env">
-            <type>hadoop-env</type>
-            <replace key="content" find="export JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:/usr/iop/current/hadoop-client/lib/native/Linux-amd64-64" replace-with="export JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:/usr/hdp/current/hadoop-client/lib/native" />
-            <replace key="content" find="export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}${JAVA_JDBC_LIBS}:${MAPREDUCE_LIBS}" replace-with="export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}${JAVA_JDBC_LIBS}:${MAPREDUCE_LIBS}&#10;if [ -d &quot;/usr/lib/hadoop-lzo&quot; ]; then&#10;  export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/lib/hadoop-lzo/lib/*&#10;  export JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:/usr/lib/hadoop-lzo/lib/native&#10;fi"/>
-          </definition>
-        </changes>
-      </component>
-    </service>
-    
-    <service name="MAPREDUCE2">
-      <component name="HISTORYSERVER">
-        <changes>
-          <definition xsi:type="configure" id="biginsights_4_2_mapreduce_application_framework_patch" summary="Update MapReduce2 configurations">
-            <type>mapred-site</type>
-            <set key="mapreduce.application.framework.path" value="/hdp/apps/${hdp.version}/mapreduce/mapreduce.tar.gz#mr-framework"/>
-          </definition>
-        </changes>
-      </component>
-    </service>
-    
-    <service name="HIVE">
-      <component name="HIVE_SERVER">
-        <changes>
-          <definition xsi:type="configure" id="biginsights_4_2_0_0_hive_server_configure_authentication" summary="Configuring hive authentication">
-            <type>hive-site</type>
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.url" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.baseDN" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.pam.services" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
-            <transfer operation="delete" delete-key="hive.server2.custom.authentication.class" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.keytab" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.principal" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
-
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.keytab" if-key="hive.server2.authentication" if-type="hive-site" if-value="ldap"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.principal" if-key="hive.server2.authentication" if-type="hive-site" if-value="ldap"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.pam.services" if-key="hive.server2.authentication" if-type="hive-site" if-value="ldap"/>
-            <transfer operation="delete" delete-key="hive.server2.custom.authentication.class" if-key="hive.server2.authentication" if-type="hive-site" if-value="ldap"/>
-
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.url" if-key="hive.server2.authentication" if-type="hive-site" if-value="kerberos"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.baseDN" if-key="hive.server2.authentication" if-type="hive-site" if-value="kerberos"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.pam.services" if-key="hive.server2.authentication" if-type="hive-site" if-value="kerberos"/>
-            <transfer operation="delete" delete-key="hive.server2.custom.authentication.class" if-key="hive.server2.authentication" if-type="hive-site" if-value="kerberos"/>
-
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.url" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.baseDN" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
-            <transfer operation="delete" delete-key="hive.server2.custom.authentication.class" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.keytab" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.principal" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
-
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.url" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.baseDN" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.pam.services" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.keytab" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.principal" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
-          </definition>
-          
-        </changes>
-      </component>
-      
-      <component name="WEBHCAT_SERVER">
-        <changes>
-          <definition xsi:type="configure" id="biginsights_4_2_webhcat_server_update_environment_configurations" summary="Update Hadoop home">
-            <type>webhcat-env</type>
-            <replace key="content" find="export HADOOP_HOME={{hadoop_home}}" replace-with="export HADOOP_HOME=${HADOOP_HOME:-{{hadoop_home}}}" />
-          </definition>
-          
-          <definition xsi:type="configure" id="biginsights_4_2_webhcat_server_update_configurations" summary="Updating Configuration Paths">
-            <type>webhcat-site</type>
-            <replace key="templeton.jar" find="/usr/iop/current/hive-webhcat" replace-with="/usr/hdp/${hdp.version}/hive"/>
-            <replace key="templeton.libjars" find="/usr/iop/current/zookeeper-client" replace-with="/usr/hdp/${hdp.version}/zookeeper"/>
-            <replace key="templeton.hadoop" find="/usr/iop/current/hadoop-client" replace-with="/usr/hdp/${hdp.version}/hadoop"/>
-            <replace key="templeton.hcat" find="/usr/iop/current/hive-client" replace-with="/usr/hdp/${hdp.version}/hive"/>
-          </definition>
-        </changes>
-      </component>
-    </service>
-    
-    <service name="OOZIE">
-      <component name="OOZIE_SERVER">
-        <changes>
-          <definition xsi:type="configure" id="biginsights_4_2_oozie_server_update_configurations" Summary="Updating oozie-site configurations">
-            <condition type="oozie-site" key="oozie.services" value="org.apache.oozie.service.SchedulerService,      org.apache.oozie.service.InstrumentationService,      org.apache.oozie.service.CallableQueueService,      org.apache.oozie.service.UUIDService,      org.apache.oozie.service.ELService,      org.apache.oozie.service.AuthorizationService,      org.apache.oozie.service.UserGroupInformationService,      org.apache.oozie.service.HadoopAccessorService,   org.apache.oozie.service.JobsConcurrencyService,      org.apache.oozie.service.URIHandlerService,      org.apache.oozie.service.MemoryLocksService,      org.apache.oozie.service.DagXLogInfoService,      org.apache.oozie.service.SchemaService,      org.apache.oozie.service.LiteWorkflowAppService,      org.apache.oozie.service.JPAService,      org.apache.oozie.service.StoreService,      org.apache.oozie.service.SLAStoreService,      org.apache.oozie.service.DBLiteWorkflowStoreService,      org.apache.oozie.service.CallbackSer
 vice,   org.apache.oozie.service.ActionService, org.apache.oozie.service.ShareLibService,      org.apache.oozie.service.ActionCheckerService,      org.apache.oozie.service.RecoveryService,      org.apache.oozie.service.PurgeService,      org.apache.oozie.service.CoordinatorEngineService,      org.apache.oozie.service.BundleEngineService,      org.apache.oozie.service.DagEngineService,      org.apache.oozie.service.CoordMaterializeTriggerService,      org.apache.oozie.service.StatusTransitService,      org.apache.oozie.service.PauseTransitService,      org.apache.oozie.service.GroupsService,      org.apache.oozie.service.ProxyUserService,    org.apache.oozie.service.XLogStreamingService,      org.apache.oozie.service.JvmPauseMonitorService">
-              <type>oozie-site</type>
-              <key>oozie.services</key>
-              <value>org.apache.oozie.service.SchedulerService,      org.apache.oozie.service.InstrumentationService,      org.apache.oozie.service.CallableQueueService,      org.apache.oozie.service.UUIDService,      org.apache.oozie.service.ELService,      org.apache.oozie.service.AuthorizationService,      org.apache.oozie.service.UserGroupInformationService,      org.apache.oozie.service.HadoopAccessorService,   org.apache.oozie.service.JobsConcurrencyService,      org.apache.oozie.service.URIHandlerService,      org.apache.oozie.service.MemoryLocksService,      org.apache.oozie.service.DagXLogInfoService,      org.apache.oozie.service.SchemaService,      org.apache.oozie.service.LiteWorkflowAppService,      org.apache.oozie.service.JPAService,      org.apache.oozie.service.StoreService,      org.apache.oozie.service.SLAStoreService,      org.apache.oozie.service.DBLiteWorkflowStoreService,      org.apache.oozie.service.CallbackService,   org.apache.oozie.service.ActionService, 
 org.apache.oozie.service.ShareLibService,      org.apache.oozie.service.ActionCheckerService,      org.apache.oozie.service.RecoveryService,      org.apache.oozie.service.PurgeService,      org.apache.oozie.service.CoordinatorEngineService,      org.apache.oozie.service.BundleEngineService,      org.apache.oozie.service.DagEngineService,      org.apache.oozie.service.CoordMaterializeTriggerService,      org.apache.oozie.service.StatusTransitService,      org.apache.oozie.service.PauseTransitService,      org.apache.oozie.service.GroupsService,      org.apache.oozie.service.ProxyUserService,    org.apache.oozie.service.XLogStreamingService,      org.apache.oozie.service.JvmPauseMonitorService,     org.apache.oozie.service.SparkConfigurationService</value>
-            </condition>
-          </definition>
-          <definition xsi:type="configure" id="biginsights_4_2_oozie_server_update_environment_configurations" summary="Update oozie env">
-            <type>oozie-env</type>
-            <replace key="content" find="export CATALINA_BASE=${CATALINA_BASE:-{{oozie_server_dir}}}" replace-with="export CATALINA_BASE={{oozie_server_dir}}" />            
-          </definition>
-        </changes>
-      </component>
-    </service>
-  </services>
-</upgrade-config-changes>

http://git-wip-us.apache.org/repos/asf/ambari/blob/7b8f0eab/ambari-server/src/main/resources/stacks/BigInsights/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BigInsights/upgrades/nonrolling-upgrade-to-hdp-2.6.xml b/ambari-server/src/main/resources/stacks/BigInsights/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
deleted file mode 100644
index 2dad692..0000000
--- a/ambari-server/src/main/resources/stacks/BigInsights/upgrades/nonrolling-upgrade-to-hdp-2.6.xml
+++ /dev/null
@@ -1,797 +0,0 @@
-<?xml version="1.0"?>
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--->
-
-
-<upgrade xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="upgrade-pack.xsd">
-  <target>2.6.*.*</target>
-  <target-stack>HDP-2.6</target-stack>
-  <type>NON_ROLLING</type>
-  <downgrade-allowed>false</downgrade-allowed>
-  <prerequisite-checks>
-    <check>org.apache.ambari.server.checks.ServicesYarnWorkPreservingCheck</check>
-    <check>org.apache.ambari.server.checks.JavaVersionCheck</check>
-    <configuration>
-      <!-- Configuration properties for all pre-reqs including required pre-reqs -->
-      <check-properties name="org.apache.ambari.server.checks.HiveDynamicServiceDiscoveryCheck">
-        <property name="min-failure-stack-version">BigInsights-4.1</property>
-      </check-properties>
-      <check-properties name="org.apache.ambari.server.checks.JavaVersionCheck">
-        <property name="java-version">1.8</property>
-      </check-properties>
-    </configuration>
-  </prerequisite-checks>
-
-  <order>
-    <!-- NOT SUPPORTED AT THIS TIME
-    <group xsi:type="stop" name="STOP_HIGH_LEVEL_SERVICE_COMPONENTS" title="Stop Components for High-Level Services">
-      <direction>UPGRADE</direction>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <service-check>false</service-check>
-      <parallel-scheduler/>
-
-      <service name="FLUME">
-        <component>FLUME_HANDLER</component>
-      </service>
-
-      <service name="KNOX">
-        <component>KNOX_GATEWAY</component>
-      </service>
-
-      <service name="KAFKA">
-        <component>KAFKA_BROKER</component>
-      </service>
-
-      <service name="OOZIE">
-        <component>OOZIE_SERVER</component>
-      </service>
-
-      <service name="SPARK">
-        <component>SPARK_JOBHISTORYSERVER</component>
-        <component>SPARK_THRIFTSERVER</component>
-      </service>
-
-      <service name="HIVE">
-        <component>WEBHCAT_SERVER</component>
-        <component>HIVE_SERVER</component>
-        <component>HIVE_METASTORE</component>
-      </service>
-
-      <service name="YARN">
-        <component>NODEMANAGER</component>
-        <component>RESOURCEMANAGER</component>
-        <component>APP_TIMELINE_SERVER</component>
-      </service>
-
-      <service name="MAPREDUCE2">
-        <component>HISTORYSERVER</component>
-      </service>
-    </group>
-
-    <group xsi:type="cluster" name="Backups" title="Perform Backups">
-      <direction>UPGRADE</direction>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-
-      <execute-stage service="OOZIE" component="OOZIE_SERVER" title="Backup Oozie Database">
-        <task xsi:type="manual">
-          <message>Before continuing, please backup the Oozie Server database referenced by the Oozie server located on {{hosts.all}}.</message>
-        </task>
-      </execute-stage>
-
-      <execute-stage service="HIVE" component="HIVE_METASTORE" title="Backup Hive Metastore">
-        <task xsi:type="manual">
-          <message>Before continuing, please backup the Hive Metastore database referenced by the Hive Metastore service(s) located on the following host(s): {{hosts.all}}.</message>
-        </task>
-      </execute-stage>
-
-      <execute-stage service="KNOX" component="KNOX_GATEWAY" title="Backup Knox Data">
-        <task xsi:type="manual">
-          <message>Before continuing, please backup the Knox data. E.g., "cp -RL /usr/iop/current/knox-server/data/* ~/knox_backup/" on the following host(s): {{hosts.all}}.</message>
-        </task>
-      </execute-stage>
-
-      <execute-stage service="HBASE" component="HBASE_MASTER" title="Snapshot HBASE">
-        <task xsi:type="execute" hosts="master">
-          <script>scripts/hbase_upgrade.py</script>
-          <function>snapshot</function>
-        </task>
-      </execute-stage>
-
-      <execute-stage service="HDFS" component="NAMENODE" title="Prepare HDFS">
-        <task xsi:type="execute" hosts="master">
-          <script>scripts/namenode.py</script>
-          <function>prepare_express_upgrade</function>
-        </task>
-      </execute-stage>
-    </group>
-
-    <group xsi:type="stop" name="STOP_LOW_LEVEL_SERVICE_COMPONENTS" title="Stop Components for Core Services">
-      <direction>UPGRADE</direction>
-      <skippable>true</skippable>
-      <service-check>false</service-check>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <parallel-scheduler/>
-
-      <service name="HBASE">
-        <component>HBASE_REGIONSERVER</component>
-        <component>HBASE_MASTER</component>
-        <component>HBASE_REST_SERVER</component>
-      </service>
-
-      <service name="HDFS">
-        <component>DATANODE</component>
-        <component>NAMENODE</component>
-        <component>SECONDARY_NAMENODE</component>
-        <component>ZKFC</component>
-        <component>JOURNALNODE</component>
-        <component>NFS_GATEWAY</component>
-      </service>
-
-      <service name="ZOOKEEPER">
-        <component>ZOOKEEPER_SERVER</component>
-      </service>
-    </group>
-    -->
-
-    <!-- After processing this group, will change the effective Stack of the UpgradeContext object. -->
-    <group xsi:type="update-stack" name="UPDATE_DESIRED_STACK_ID" title="Update Target Stack">
-      <execute-stage title="Update Target Stack" service="" component="">
-        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.UpdateDesiredStackAction">
-        </task>
-      </execute-stage>
-    </group>
-
-    <group xsi:type="cluster" name="Upgrade service configs" title="Upgrade service configs">
-      <direction>UPGRADE</direction>    <!--  prevent config changes on downgrade -->
-      <skippable>true</skippable>       <!-- May fix configuration problems manually -->
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-
-      <!-- HDFS -->
-      <execute-stage service="HDFS" component="NAMENODE" title="Apply config changes for Hadoop NameNode">
-        <task xsi:type="configure" id="biginsights_4_2_namenode_update_hadoop_env" />
-      </execute-stage>
-
-      <!-- YARN -->
-      <execute-stage service="MAPREDUCE2" component="HISTORYSERVER" title="Apply config changes for HistoryServer">
-        <task xsi:type="configure" id="biginsights_4_2_mapreduce_application_framework_patch" />
-      </execute-stage>
-      
-      <!-- HIVE -->
-      <execute-stage service="HIVE" component="HIVE_SERVER" title="Apply config changes for Hive Server">
-        <task xsi:type="configure" id="biginsights_4_2_0_0_hive_server_configure_authentication"/>
-      </execute-stage>      
-      <execute-stage service="HIVE" component="WEBHCAT_SERVER" title="Apply config changes for Hive WebHCat server">
-        <task xsi:type="configure" id="biginsights_4_2_webhcat_server_update_environment_configurations" />
-      </execute-stage>
-      <execute-stage service="HIVE" component="WEBHCAT_SERVER" title="Apply config changes for Hive WebHCat server">
-        <task xsi:type="configure" id="biginsights_4_2_webhcat_server_update_configurations" />
-      </execute-stage>
-      
-      <!-- OOZIE -->
-      <execute-stage service="OOZIE" component="OOZIE_SERVER" title="Apply config changes for Oozie server">
-        <task xsi:type="configure" id="biginsights_4_2_oozie_server_update_configurations" />
-      </execute-stage>
-      <execute-stage service="OOZIE" component="OOZIE_SERVER" title="Apply config changes for Oozie server">
-        <task xsi:type="configure" id="biginsights_4_2_oozie_server_update_environment_configurations" />
-      </execute-stage>
-    </group>
-
-
-    <!--
-    After processing this group, the user-specified Kerberos descriptor will be updated to work with
-    the new stack-level Kerberos descriptor.
-    -->
-    <group xsi:type="cluster" name="UPDATE_KERBEROS_DESCRIPTORS" title="Update Kerberos Descriptors">
-      <condition xsi:type="security" type="kerberos"/>
-      <execute-stage title="Update the user-specified Kerberos descriptor">
-        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.UpgradeUserKerberosDescriptor"/>
-      </execute-stage>
-    </group>
-
-    <!--
-    Invoke "hdp-select set all" to change any components we may have missed
-    that are installed on the hosts but not known by Ambari.
-    -->
-    <group xsi:type="cluster" name="ALL_HOST_OPS" title="Set Version On All Hosts">
-      <scope>COMPLETE</scope>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-
-      <execute-stage title="Update stack to {{version}}">
-        <task xsi:type="execute">
-          <script>scripts/ru_set_all.py</script>
-          <function>actionexecute</function>
-        </task>
-      </execute-stage>
-    </group>
-
-    <!-- Now, restart all of the services. -->
-    <group xsi:type="restart" name="ZOOKEEPER" title="ZooKeeper">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <parallel-scheduler/>
-      <service name="ZOOKEEPER">
-        <service-check>false</service-check>
-        <component>ZOOKEEPER_SERVER</component>
-        <component>ZOOKEEPER_CLIENT</component>
-      </service>
-    </group>
-
-    <group xsi:type="restart" name="HDFS" title="HDFS">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <parallel-scheduler/>
-      <service name="HDFS">
-        <component>JOURNALNODE</component>
-        <component>ZKFC</component>
-        <component>NAMENODE</component>
-        <component>SECONDARY_NAMENODE</component>
-        <component>NFS_GATEWAY</component>
-        <component>HDFS_CLIENT</component>
-      </service>
-    </group>
-
-    <group xsi:type="restart" name="HDFS_DATANODES" title="HDFS DataNodes">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <parallel-scheduler/>
-      <service name="HDFS">
-        <component>DATANODE</component>
-      </service>
-    </group>
-
-    <group xsi:type="cluster" name="HDFS_LEAVE_SAFEMODE" title="HDFS - Wait to leave Safemode">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-
-      <execute-stage service="HDFS" component="NAMENODE" title="Wait to leave Safemode">
-        <task xsi:type="execute" hosts="all" summary="Wait for NameNode to leave Safemode">
-          <script>scripts/namenode.py</script>
-          <function>wait_for_safemode_off</function>
-        </task>
-      </execute-stage>
-    </group>
-
-    <group xsi:type="restart" name="KAFKA" title="Kafka">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <parallel-scheduler/>
-      <service name="KAFKA">
-        <component>KAFKA_BROKER</component>
-      </service>
-    </group>
-
-    <group xsi:type="restart" name="YARN_AND_MAPR" title="YARN and MapReduce2">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <parallel-scheduler/>
-
-      <service name="MAPREDUCE2">
-        <component>HISTORYSERVER</component>
-        <component>MAPREDUCE2_CLIENT</component>
-      </service>
-
-      <service name="YARN">
-        <component>APP_TIMELINE_SERVER</component>
-        <component>RESOURCEMANAGER</component>
-        <component>YARN_CLIENT</component>
-      </service>
-    </group>
-
-    <group xsi:type="restart" name="YARN_NODEMANAGERS" title="YARN NodeManagers">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <parallel-scheduler/>
-
-      <service name="YARN">
-        <component>NODEMANAGER</component>
-      </service>
-    </group>
-
-    <group xsi:type="cluster" name="START_YARN_QUEUES" title="Start YARN Queues">
-      <direction>UPGRADE</direction>
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <parallel-scheduler/>
-
-      <execute-stage service="YARN" component="RESOURCEMANAGER" title="Start YARN Queues">
-        <condition xsi:type="config" type="yarn-site" property="yarn.resourcemanager.work-preserving-recovery.enabled" value="true" comparison="not-equals"/>
-        <task xsi:type="manual">
-          <message>Before continuing, please start all YARN queues.</message>
-        </task>
-      </execute-stage>
-    </group>
-
-    <group xsi:type="restart" name="HBASE" title="HBASE">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <parallel-scheduler/>
-      <service name="HBASE">
-        <component>HBASE_MASTER</component>
-        <component>HBASE_REGIONSERVER</component>
-        <component>HBASE_CLIENT</component>
-        <component>HBASE_REST_SERVER</component>
-      </service>
-    </group>
-
-    <group xsi:type="restart" name="CLIENTS" title="Pig, Sqoop Clients">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <parallel-scheduler/>
-      <service name="PIG">
-        <component>PIG</component>
-      </service>
-
-      <service name="SQOOP">
-        <component>SQOOP</component>
-      </service>
-    </group>
-
-    <group name="SERVICE_CHECK" title="All Service Checks" xsi:type="service-check">
-      <skippable>true</skippable>
-      <direction>UPGRADE</direction>
-      <priority>
-        <service>HDFS</service>
-        <service>YARN</service>
-        <service>MAPREDUCE2</service>
-        <service>HBASE</service>
-      </priority>
-    </group>
-
-    <!-- Slider must be upgraded before higher-level apps that need to run apps on Slider, such as Hive. -->
-    <group xsi:type="restart" name="SLIDER" title="Slider">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <parallel-scheduler/>
-      <service name="SLIDER">
-        <component>SLIDER</component>
-      </service>
-    </group>
-
-    <group xsi:type="restart" name="HIVE_MASTERS" title="Hive Masters">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <!-- Must be ran sequentially because Hive Metastore upgrades the schema and Hive Server copies tarballs. -->
-      <parallel-scheduler>
-        <max-degree-of-parallelism>1</max-degree-of-parallelism>
-      </parallel-scheduler>
-      <service name="HIVE">
-        <component>HIVE_METASTORE</component>
-        <component>HIVE_SERVER</component>
-        <component>WEBHCAT_SERVER</component>
-      </service>
-    </group>
-
-    <group xsi:type="restart" name="HIVE_CLIENTS" title="Hive Clients">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <parallel-scheduler/>
-      <service name="HIVE">
-        <component>HIVE_CLIENT</component>
-        <component>HCAT</component>
-      </service>
-    </group>
-
-    <group xsi:type="restart" name="SPARK" title="Spark">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <parallel-scheduler/>
-      <service name="SPARK">
-        <component>SPARK_JOBHISTORYSERVER</component>
-        <component>SPARK_THRIFTSERVER</component>
-      </service>
-    </group>
-
-    <group xsi:type="restart" name="SPARK_CLIENTS" title="Spark Clients">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <parallel-scheduler/>
-      <service name="SPARK">
-        <component>SPARK_CLIENT</component>
-      </service>
-    </group>
-
-    <!-- Upgrade Oozie DB only on Upgrade direction, and always create a new ShareLib. -->
-    <group name="UPGRADE_OOZIE" title="Upgrade Oozie Database">
-      <direction>UPGRADE</direction>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <execute-stage service="OOZIE" component="OOZIE_SERVER" title="Upgrade Oozie Database">
-        <task xsi:type="execute" hosts="any" summary="Upgrading the database and creating a new sharelib">
-          <script>scripts/oozie_server_upgrade.py</script>
-          <function>upgrade_oozie_database_and_sharelib</function>
-        </task>
-      </execute-stage>
-    </group>
-
-    <group xsi:type="restart" name="OOZIE" title="Oozie">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-      <parallel-scheduler/>
-      <service name="OOZIE">
-        <component>OOZIE_SERVER</component>
-      </service>
-    </group>
-
-    <group xsi:type="restart" name="OOZIE_CLIENTS" title="Oozie Clients">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <parallel-scheduler/>
-      <service name="OOZIE">
-        <component>OOZIE_CLIENT</component>
-      </service>
-    </group>
-
-    <group name="SERVICE_CHECK_2" title="All Service Checks" xsi:type="service-check">
-      <direction>UPGRADE</direction>
-      <skippable>true</skippable>
-      <priority>
-        <service>SLIDER</service>
-        <service>HIVE</service>
-        <service>SPARK</service>
-        <service>OOZIE</service>
-      </priority>
-    </group>
-
-    <group xsi:type="restart" name="KNOX" title="Knox">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <parallel-scheduler/>
-      <service name="KNOX">
-        <component>KNOX_GATEWAY</component>
-      </service>
-    </group>
-
-    <group xsi:type="restart" name="FLUME" title="Flume">
-      <service-check>false</service-check>
-      <skippable>true</skippable>
-      <parallel-scheduler/>
-      <service name="FLUME">
-        <component>FLUME_HANDLER</component>
-      </service>
-    </group>
-
-    <group name="SERVICE_CHECK_3" title="All Service Checks" xsi:type="service-check">
-      <direction>UPGRADE</direction>
-      <skippable>true</skippable>
-      <priority>
-        <service>KNOX</service>
-        <service>FLUME</service>
-      </priority>
-    </group>
-
-    <!--
-    Invoke "hdp-select set all" to change any components we may have missed
-    that are installed on the hosts but not known by Ambari.
-    -->
-    <group xsi:type="cluster" name="ALL_HOST_OPS" title="Set Version On All Hosts">
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-
-      <execute-stage title="Update stack to {{version}}">
-        <task xsi:type="execute">
-          <script>scripts/ru_set_all.py</script>
-          <function>actionexecute</function>
-        </task>
-      </execute-stage>
-    </group>
-
-    <group xsi:type="cluster" name="FINALIZE_PRE_CHECK" title="Finalize {{direction.text.proper}} Pre-Check">
-      <direction>UPGRADE</direction>
-      
-      <execute-stage title="Check Component Versions">
-        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.ComponentVersionCheckAction" />
-      </execute-stage>
-    </group>
-
-    <group xsi:type="cluster" name="POST_CLUSTER" title="Finalize {{direction.text.proper}}">
-      <skippable>true</skippable>
-      <supports-auto-skip-failure>false</supports-auto-skip-failure>
-
-      <execute-stage title="Confirm Finalize">
-        <direction>UPGRADE</direction>
-        <task xsi:type="manual">
-          <message>Please confirm you are ready to finalize.</message>
-        </task>
-      </execute-stage>
-
-      <execute-stage service="HBASE" component="HBASE_MASTER" title="Delete HBase snapshots">
-        <direction>UPGRADE</direction>
-        <task xsi:type="manual">
-          <message>You can now remove any HBase snapshots which were created at the beginning of the upgrade. To see existing snapshots, use the following HBase shell command:</message>
-          <message>hbase> list_snapshots</message>
-          <message>Once you have found an existing snapshot which you would like to remove, you can use the following command:</message>
-          <message>hbase> delete_snapshot 'snapshotName'</message>
-        </task>
-      </execute-stage>
-
-      <execute-stage service="HDFS" component="NAMENODE" title="Execute HDFS Finalize">
-        <task xsi:type="execute" hosts="master">
-          <script>scripts/namenode.py</script>
-          <function>finalize_non_rolling_upgrade</function>
-        </task>
-      </execute-stage>
-
-      <execute-stage title="Save Cluster State" service="" component="">
-        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.FinalizeUpgradeAction">
-        </task>
-      </execute-stage>
-    </group>
-  </order>
-
-  <processing>
-    <service name="ZOOKEEPER">
-      <component name="ZOOKEEPER_SERVER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="ZOOKEEPER_CLIENT">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="HDFS">
-      <component name="NAMENODE">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="DATANODE">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="HDFS_CLIENT">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="JOURNALNODE">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="ZKFC">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="NFS_GATEWAY">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="MAPREDUCE2">
-      <component name="HISTORYSERVER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="MAPREDUCE2_CLIENT">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="YARN">
-      <component name="APP_TIMELINE_SERVER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="RESOURCEMANAGER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="NODEMANAGER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="YARN_CLIENT">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="KAFKA">
-      <component name="KAFKA_BROKER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="HBASE">
-      <component name="HBASE_MASTER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="HBASE_REGIONSERVER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="HBASE_CLIENT">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="HBASE_REST_SERVER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="PIG">
-      <component name="PIG">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="SQOOP">
-      <component name="SQOOP">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="HIVE">
-      <component name="HIVE_METASTORE">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="HIVE_SERVER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="WEBHCAT_SERVER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="HIVE_CLIENT">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="HCAT">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="SPARK">
-      <component name="SPARK_JOBHISTORYSERVER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-      <component name="SPARK_THRIFTSERVER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-      <component name="SPARK_CLIENT">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="OOZIE">
-      <component name="OOZIE_SERVER">
-        <pre-upgrade>
-          <!-- 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</summary>
-            <script>scripts/oozie_server_upgrade.py</script>
-            <function>upgrade_oozie_database_and_sharelib</function>
-          </task>
-        </pre-upgrade>
-
-        <pre-downgrade>
-          <task xsi:type="execute" hosts="any" sequential="true">
-            <summary>Create a new sharelib</summary>
-            <script>scripts/oozie_server_upgrade.py</script>
-            <function>create_sharelib</function>
-          </task>
-        </pre-downgrade>
-
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-
-      <component name="OOZIE_CLIENT">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="KNOX">
-      <component name="KNOX_GATEWAY">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="SLIDER">
-      <component name="SLIDER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-
-    <service name="FLUME">
-      <component name="FLUME_HANDLER">
-        <upgrade>
-          <task xsi:type="restart-task"/>
-        </upgrade>
-      </component>
-    </service>
-  </processing>
-</upgrade>