You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2015/11/12 20:54:33 UTC

ambari git commit: AMBARI-13845 - Breakout Some Service Masters Into Their Own Groups To Prevent Auto Skip On Upgrade (jonathanhurley)

Repository: ambari
Updated Branches:
  refs/heads/trunk 8fa73496a -> 113f3712b


AMBARI-13845 - Breakout Some Service Masters Into Their Own Groups To Prevent Auto Skip On Upgrade (jonathanhurley)


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

Branch: refs/heads/trunk
Commit: 113f3712b25660e474009fac090c8ef0b304bf4e
Parents: 8fa7349
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Wed Nov 11 15:52:30 2015 -0500
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Thu Nov 12 14:54:24 2015 -0500

----------------------------------------------------------------------
 .../HDP/2.1/upgrades/nonrolling-upgrade-2.3.xml |  81 +++++++++++---
 .../HDP/2.2/upgrades/nonrolling-upgrade-2.2.xml | 103 +++++++++++++----
 .../HDP/2.2/upgrades/nonrolling-upgrade-2.3.xml | 106 +++++++++++++-----
 .../stacks/HDP/2.2/upgrades/upgrade-2.2.xml     |  27 ++++-
 .../stacks/HDP/2.2/upgrades/upgrade-2.3.xml     |  27 +++++
 .../HDP/2.3/upgrades/nonrolling-upgrade-2.3.xml | 111 ++++++++++++++-----
 .../stacks/HDP/2.3/upgrades/upgrade-2.3.xml     |  28 ++++-
 7 files changed, 387 insertions(+), 96 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/113f3712/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 49c8385..509b9d8 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
@@ -69,8 +69,9 @@
     <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></parallel-scheduler>
+      <parallel-scheduler/>
 
       <service name="FLUME">
         <component>FLUME_HANDLER</component>
@@ -144,8 +145,9 @@
     <group xsi:type="stop" name="STOP_LOW_LEVEL_SERVICE_COMPONENTS" title="Stop Components for Core Services">
       <direction>UPGRADE</direction>
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
       <service-check>false</service-check>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
 
       <service name="HBASE">
         <component>HBASE_REGIONSERVER</component>
@@ -165,7 +167,6 @@
       </service>
     </group>
 
-
     <group xsi:type="cluster" name="Restore Backups" title="Restore Backups">
       <direction>DOWNGRADE</direction>
       <skippable>true</skippable>
@@ -191,7 +192,6 @@
     -->
     <group xsi:type="cluster" name="REMOVE_HDP_21" title="Remove HDP 2.1">
       <direction>UPGRADE</direction>
-      <skippable>false</skippable>
 
       <execute-stage title="Confirm removing HDP 2.1">
         <task xsi:type="manual">
@@ -218,6 +218,7 @@
     <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>
 
       <!--Changes for stack 2.2-->
       <!--YARN-->
@@ -333,7 +334,8 @@
     <group xsi:type="restart" name="ZOOKEEPER" title="ZooKeeper">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="ZOOKEEPER">
         <service-check>false</service-check>
         <component>ZOOKEEPER_SERVER</component>
@@ -344,20 +346,30 @@
     <group xsi:type="restart" name="HDFS" title="HDFS">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <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>DATANODE</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_LEAFE_SAFEMODE" title="HDFS - Wait to leave Safemode">
       <service-check>false</service-check>
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
       <direction>UPGRADE</direction>
 
       <execute-stage service="HDFS" component="NAMENODE" title="Wait to leave Safemode">
@@ -368,26 +380,39 @@
       </execute-stage>
     </group>
 
-    <group xsi:type="restart" name="YARN and MapReduce2" title="YARN and MapReduce2">
+    <group xsi:type="restart" name="YARN_AND_MAPR" title="YARN and MapReduce2">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <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>NODEMANAGER</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="restart" name="HBASE" title="HBASE">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="HBASE">
         <component>HBASE_MASTER</component>
         <component>HBASE_REGIONSERVER</component>
@@ -398,7 +423,7 @@
     <group xsi:type="restart" name="CLIENTS" title="Tez, Pig, Sqoop Clients">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="TEZ">
         <component>TEZ_CLIENT</component>
       </service>
@@ -426,7 +451,8 @@
     <group xsi:type="restart" name="HIVE" title="Hive">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="HIVE">
         <component>HIVE_METASTORE</component>
         <component>HIVE_SERVER</component>
@@ -439,9 +465,18 @@
     <group xsi:type="restart" name="OOZIE" title="Oozie">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="OOZIE">
+        <component>OOZIE_CLIENT</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_SERVER</component>
         <component>OOZIE_CLIENT</component>
       </service>
     </group>
@@ -449,9 +484,18 @@
     <group xsi:type="restart" name="FALCON" title="Falcon">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="FALCON">
         <component>FALCON_SERVER</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="FALCON_CLIENTS" title="Falcon Clients">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="FALCON">
         <component>FALCON_CLIENT</component>
       </service>
     </group>
@@ -459,7 +503,7 @@
     <group xsi:type="restart" name="STORM" title="Storm">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="STORM">
         <component>NIMBUS</component>
         <component>STORM_REST_API</component>
@@ -478,7 +522,7 @@
     <group xsi:type="restart" name="FLUME" title="Flume">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="FLUME">
         <component>FLUME_HANDLER</component>
       </service>
@@ -490,6 +534,7 @@
     -->
     <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>

http://git-wip-us.apache.org/repos/asf/ambari/blob/113f3712/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 0ee1bec..fa69e72 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
@@ -66,7 +66,8 @@
       <direction>UPGRADE</direction>
       <skippable>true</skippable>
       <service-check>false</service-check>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
 
       <service name="FLUME">
         <component>FLUME_HANDLER</component>
@@ -163,8 +164,8 @@
     <group xsi:type="stop" name="STOP_LOW_LEVEL_SERVICE_COMPONENTS" title="Stop Components for Core Services">
       <direction>UPGRADE</direction>
       <skippable>true</skippable>
-
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service-check>false</service-check>
 
       <service name="HBASE">
@@ -244,7 +245,8 @@
     <group xsi:type="restart" name="ZOOKEEPER" title="ZooKeeper">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="ZOOKEEPER">
         <service-check>true</service-check>
         <component>ZOOKEEPER_SERVER</component>
@@ -255,7 +257,8 @@
     <group xsi:type="restart" name="RANGER" title="Ranger">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="RANGER">
         <component>RANGER_ADMIN</component>
         <component>RANGER_USERSYNC</component>
@@ -265,20 +268,30 @@
     <group xsi:type="restart" name="HDFS" title="HDFS">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <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>DATANODE</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_LEAFE_SAFEMODE" title="HDFS - Wait to leave Safemode">
       <service-check>false</service-check>
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
       <direction>UPGRADE</direction>
 
       <execute-stage service="HDFS" component="NAMENODE" title="Wait to leave Safemode">
@@ -289,26 +302,39 @@
       </execute-stage>
     </group>
 
-    <group xsi:type="restart" name="YARN and MapReduce2" title="YARN and MapReduce2">
+    <group xsi:type="restart" name="YARN_AND_MAPR" title="YARN and MapReduce2">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <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>NODEMANAGER</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="restart" name="HBASE" title="HBASE">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="HBASE">
         <component>HBASE_MASTER</component>
         <component>HBASE_REGIONSERVER</component>
@@ -319,7 +345,7 @@
     <group xsi:type="restart" name="CLIENTS" title="Tez, Pig, Sqoop Clients">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="TEZ">
         <component>TEZ_CLIENT</component>
       </service>
@@ -348,7 +374,8 @@
     <group xsi:type="restart" name="HIVE" title="Hive">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="HIVE">
         <component>HIVE_METASTORE</component>
         <component>HIVE_SERVER</component>
@@ -361,17 +388,27 @@
     <group xsi:type="restart" name="SPARK" title="Spark">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="SPARK">
         <component>SPARK_JOBHISTORYSERVER</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">
+    <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>
@@ -381,7 +418,7 @@
     </group>
 
     <!-- Only create the ShareLib folder during a Downgrade. -->
-    <group name="Downgrade Oozie" title="Downgrade Oozie ShareLib">
+    <group name="DOWNGRADE_OOZIE" title="Downgrade Oozie ShareLib">
       <direction>DOWNGRADE</direction>
       <skippable>true</skippable>
       <execute-stage service="OOZIE" component="OOZIE_SERVER" title="Downgrade Oozie ShareLib">
@@ -395,9 +432,18 @@
     <group xsi:type="restart" name="OOZIE" title="Oozie">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="OOZIE">
+        <component>OOZIE_CLIENT</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_SERVER</component>
         <component>OOZIE_CLIENT</component>
       </service>
     </group>
@@ -405,9 +451,18 @@
     <group xsi:type="restart" name="FALCON" title="Falcon">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="FALCON">
         <component>FALCON_SERVER</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="FALCON_CLIENTS" title="Falcon Clients">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="FALCON">
         <component>FALCON_CLIENT</component>
       </service>
     </group>
@@ -415,7 +470,7 @@
     <group xsi:type="restart" name="KAFKA" title="Kafka">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="KAFKA">
         <component>KAFKA_BROKER</component>
       </service>
@@ -424,7 +479,7 @@
     <group xsi:type="restart" name="KNOX" title="Knox">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="KNOX">
         <component>KNOX_GATEWAY</component>
       </service>
@@ -433,7 +488,7 @@
     <group xsi:type="restart" name="STORM" title="Storm">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="STORM">
         <component>NIMBUS</component>
         <component>SUPERVISOR</component>
@@ -451,7 +506,7 @@
     <group xsi:type="restart" name="SLIDER" title="Slider">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="SLIDER">
         <component>SLIDER</component>
       </service>
@@ -460,7 +515,7 @@
     <group xsi:type="restart" name="FLUME" title="Flume">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="FLUME">
         <component>FLUME_HANDLER</component>
       </service>

http://git-wip-us.apache.org/repos/asf/ambari/blob/113f3712/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 9527976..5f2846f 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
@@ -65,8 +65,9 @@
     <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></parallel-scheduler>
+      <parallel-scheduler/>
 
       <service name="FLUME">
         <component>FLUME_HANDLER</component>
@@ -172,7 +173,8 @@
       <direction>UPGRADE</direction>
       <skippable>true</skippable>
       <service-check>false</service-check>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
 
       <service name="HBASE">
         <component>HBASE_REGIONSERVER</component>
@@ -197,7 +199,6 @@
       </service>
     </group>
 
-
     <group xsi:type="cluster" name="Restore Backups" title="Restore Backups">
       <direction>DOWNGRADE</direction>
       <skippable>true</skippable>
@@ -263,6 +264,7 @@
     <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>
 
       <execute-stage service="RANGER" component="RANGER_ADMIN" title="Apply config changes for Ranger">
         <task xsi:type="configure" id="hdp_2_3_0_0_update_ranger_env"/>
@@ -496,7 +498,8 @@
     <group xsi:type="restart" name="ZOOKEEPER" title="ZooKeeper">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="ZOOKEEPER">
         <service-check>false</service-check>
         <component>ZOOKEEPER_SERVER</component>
@@ -507,7 +510,8 @@
     <group xsi:type="restart" name="RANGER" title="Ranger">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="RANGER">
         <component>RANGER_ADMIN</component>
         <component>RANGER_USERSYNC</component>
@@ -517,20 +521,30 @@
     <group xsi:type="restart" name="HDFS" title="HDFS">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <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>DATANODE</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>
       <direction>UPGRADE</direction>
 
       <execute-stage service="HDFS" component="NAMENODE" title="Wait to leave Safemode">
@@ -541,26 +555,39 @@
       </execute-stage>
     </group>
 
-    <group xsi:type="restart" name="YARN and MapReduce2" title="YARN and MapReduce2">
+    <group xsi:type="restart" name="YARN_AND_MAPR" title="YARN and MapReduce2">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <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>NODEMANAGER</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="restart" name="HBASE" title="HBASE">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="HBASE">
         <component>HBASE_MASTER</component>
         <component>HBASE_REGIONSERVER</component>
@@ -571,7 +598,7 @@
     <group xsi:type="restart" name="CLIENTS" title="Tez, Pig, Sqoop Clients">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="TEZ">
         <component>TEZ_CLIENT</component>
       </service>
@@ -599,7 +626,8 @@
     <group xsi:type="restart" name="HIVE" title="Hive">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="HIVE">
         <component>HIVE_METASTORE</component>
         <component>HIVE_SERVER</component>
@@ -612,17 +640,27 @@
     <group xsi:type="restart" name="SPARK" title="Spark">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="SPARK">
         <component>SPARK_JOBHISTORYSERVER</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">
+    <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>
@@ -632,7 +670,7 @@
     </group>
 
     <!-- Only create the ShareLib folder during a Downgrade. -->
-    <group name="Downgrade Oozie" title="Downgrade Oozie ShareLib">
+    <group name="DOWNGRADE_OOZIE" title="Downgrade Oozie ShareLib">
       <direction>DOWNGRADE</direction>
       <skippable>true</skippable>
       <execute-stage service="OOZIE" component="OOZIE_SERVER" title="Downgrade Oozie ShareLib">
@@ -646,9 +684,18 @@
     <group xsi:type="restart" name="OOZIE" title="Oozie">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="OOZIE">
+        <component>OOZIE_CLIENT</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_SERVER</component>
         <component>OOZIE_CLIENT</component>
       </service>
     </group>
@@ -656,9 +703,18 @@
     <group xsi:type="restart" name="FALCON" title="Falcon">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="FALCON">
         <component>FALCON_SERVER</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="FALCON_CLIENTS" title="Falcon Clients">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="FALCON">
         <component>FALCON_CLIENT</component>
       </service>
     </group>
@@ -666,7 +722,7 @@
     <group xsi:type="restart" name="KAFKA" title="Kafka">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="KAFKA">
         <component>KAFKA_BROKER</component>
       </service>
@@ -675,7 +731,7 @@
     <group xsi:type="restart" name="KNOX" title="Knox">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="KNOX">
         <component>KNOX_GATEWAY</component>
       </service>
@@ -684,7 +740,7 @@
     <group xsi:type="restart" name="STORM" title="Storm">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="STORM">
         <component>NIMBUS</component>
         <component>SUPERVISOR</component>
@@ -702,7 +758,7 @@
     <group xsi:type="restart" name="SLIDER" title="Slider">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="SLIDER">
         <component>SLIDER</component>
       </service>
@@ -711,7 +767,7 @@
     <group xsi:type="restart" name="FLUME" title="Flume">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="FLUME">
         <component>FLUME_HANDLER</component>
       </service>
@@ -720,7 +776,7 @@
     <group xsi:type="restart" name="ACCUMULO" title="Accumulo">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="ACCUMULO">
         <component>ACCUMULO_MASTER</component>
         <component>ACCUMULO_TSERVER</component>

http://git-wip-us.apache.org/repos/asf/ambari/blob/113f3712/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 c74f11a..af66adc 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
@@ -98,6 +98,7 @@
     
     <group name="RANGER" title="Ranger">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
       <service name="RANGER">
         <component>RANGER_ADMIN</component>
         <component>RANGER_USERSYNC</component>
@@ -124,7 +125,6 @@
       <service name="HBASE">
         <component>HBASE_MASTER</component>
       </service>
-      
     </group>
     
     <group name="SERVICE_CHECK" title="All Service Checks" xsi:type="service-check">
@@ -180,6 +180,7 @@
 
     <group name="HIVE" title="Hive">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
       <service name="HIVE">
         <component>HIVE_METASTORE</component>
         <component>HIVE_SERVER</component>
@@ -189,24 +190,48 @@
 
     <group name="SPARK" title="Spark">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <service-check>false</service-check>
       <service name="SPARK">
         <component>SPARK_JOBHISTORYSERVER</component>
+      </service>
+    </group>
+
+    <group name="SPARK_CLIENTS" title="Spark Clients">
+      <skippable>true</skippable>
+      <service name="SPARK">
         <component>SPARK_CLIENT</component>
       </service>
     </group>
 
     <group name="OOZIE" title="Oozie">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <service-check>false</service-check>
       <service name="OOZIE">
         <component>OOZIE_SERVER</component>
+      </service>
+    </group>
+
+    <group name="OOZIE_CLIENTS" title="Oozie Clients">
+      <skippable>true</skippable>
+      <service name="OOZIE">
         <component>OOZIE_CLIENT</component>
       </service>
     </group>
 
     <group name="FALCON" title="Falcon">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <service-check>false</service-check>
       <service name="FALCON">
         <component>FALCON_SERVER</component>
+      </service>
+    </group>
+
+    <group name="FALCON_CLIENTS" title="Falcon Clients">
+      <skippable>true</skippable>
+      <service name="FALCON">
         <component>FALCON_CLIENT</component>
       </service>
     </group>

http://git-wip-us.apache.org/repos/asf/ambari/blob/113f3712/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 342cb73..b2fa9f8 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
@@ -19,6 +19,7 @@
   <target>2.3.*.*</target>
   <target-stack>HDP-2.3</target-stack>
   <type>ROLLING</type>
+
   <prerequisite-checks>
     <!-- List of additional pre-req checks to run in addition to the required pre-reqs -->
     <check>org.apache.ambari.server.checks.HiveMultipleMetastoreCheck</check>
@@ -127,6 +128,7 @@
 
     <group name="RANGER" title="Ranger">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
       <service name="RANGER">
         <component>RANGER_ADMIN</component>
         <component>RANGER_USERSYNC</component>
@@ -208,6 +210,7 @@
 
     <group name="HIVE" title="Hive">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
       <service name="HIVE">
         <component>HIVE_METASTORE</component>
         <component>HIVE_SERVER</component>
@@ -217,24 +220,48 @@
 
     <group name="SPARK" title="Spark">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <service-check>false</service-check>
       <service name="SPARK">
         <component>SPARK_JOBHISTORYSERVER</component>
+      </service>
+    </group>
+
+    <group name="SPARK_CLIENTS" title="Spark Clients">
+      <skippable>true</skippable>
+      <service name="SPARK">
         <component>SPARK_CLIENT</component>
       </service>
     </group>
 
     <group name="OOZIE" title="Oozie">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <service-check>false</service-check>
       <service name="OOZIE">
         <component>OOZIE_SERVER</component>
+      </service>
+    </group>
+
+    <group name="OOZIE_CLIENTS" title="Oozie Clients">
+      <skippable>true</skippable>
+      <service name="OOZIE">
         <component>OOZIE_CLIENT</component>
       </service>
     </group>
 
     <group name="FALCON" title="Falcon">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <service-check>false</service-check>
       <service name="FALCON">
         <component>FALCON_SERVER</component>
+      </service>
+    </group>
+
+    <group name="FALCON_CLIENTS" title="Falcon Clients">
+      <skippable>true</skippable>
+      <service name="FALCON">
         <component>FALCON_CLIENT</component>
       </service>
     </group>

http://git-wip-us.apache.org/repos/asf/ambari/blob/113f3712/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 561b75d..798c895 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
@@ -65,7 +65,8 @@
     <group xsi:type="stop" name="STOP_HIGH_LEVEL_SERVICE_COMPONENTS" title="Stop Components for High-Level Services">
       <direction>UPGRADE</direction>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service-check>false</service-check>
 
       <service name="ATLAS">
@@ -182,8 +183,9 @@
     <group xsi:type="stop" name="STOP_LOW_LEVEL_SERVICE_COMPONENTS" title="Stop Components for Core Services">
       <direction>UPGRADE</direction>
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
       <service-check>false</service-check>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
 
       <service name="HBASE">
         <component>HBASE_REGIONSERVER</component>
@@ -274,7 +276,8 @@
     <group xsi:type="restart" name="ZOOKEEPER" title="ZooKeeper">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="ZOOKEEPER">
         <service-check>true</service-check>
         <component>ZOOKEEPER_SERVER</component>
@@ -285,7 +288,8 @@
     <group xsi:type="restart" name="RANGER" title="Ranger">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="RANGER">
         <component>RANGER_ADMIN</component>
         <component>RANGER_USERSYNC</component>
@@ -295,7 +299,8 @@
     <group xsi:type="restart" name="RANGER_KMS" title="Ranger KMS">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="RANGER_KMS">
         <component>RANGER_KMS_SERVER</component>
       </service>
@@ -304,21 +309,30 @@
     <group xsi:type="restart" name="HDFS" title="HDFS">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <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>DATANODE</component>
         <component>HDFS_CLIENT</component>
-        <component>NFS_GATEWAY</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_LEAFE_SAFEMODE" title="HDFS - Wait to leave Safemode">
       <service-check>false</service-check>
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
       <direction>UPGRADE</direction>
 
       <execute-stage service="HDFS" component="NAMENODE" title="Wait to leave Safemode">
@@ -329,26 +343,39 @@
       </execute-stage>
     </group>
 
-    <group xsi:type="restart" name="YARN and MapReduce2" title="YARN and MapReduce2">
+    <group xsi:type="restart" name="YARN_AND_MAPR" title="YARN and MapReduce2">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <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>NODEMANAGER</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="restart" name="HBASE" title="HBASE">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="HBASE">
         <component>HBASE_MASTER</component>
         <component>HBASE_REGIONSERVER</component>
@@ -360,7 +387,7 @@
     <group xsi:type="restart" name="CLIENTS" title="Tez, Pig, Sqoop Clients">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="TEZ">
         <component>TEZ_CLIENT</component>
       </service>
@@ -392,7 +419,8 @@
     <group xsi:type="restart" name="HIVE" title="Hive">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="HIVE">
         <component>HIVE_METASTORE</component>
         <component>HIVE_SERVER</component>
@@ -405,9 +433,18 @@
     <group xsi:type="restart" name="SPARK" title="Spark">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="SPARK">
         <component>SPARK_JOBHISTORYSERVER</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>
@@ -415,16 +452,18 @@
     <group xsi:type="restart" name="ATLAS" title="Atlas">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="ATLAS">
         <component>ATLAS_SERVER</component>
       </service>
     </group>
 
     <!-- Upgrade Oozie DB only on Upgrade direction, and always create a new ShareLib. -->
-    <group name="Upgrade Oozie" title="Upgrade Oozie Database">
+    <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>
@@ -434,7 +473,7 @@
     </group>
 
     <!-- Only create the ShareLib folder during a Downgrade. -->
-    <group name="Downgrade Oozie" title="Downgrade Oozie ShareLib">
+    <group name="DOWNGRADE_OOZIE" title="Downgrade Oozie ShareLib">
       <direction>DOWNGRADE</direction>
       <skippable>true</skippable>
       <execute-stage service="OOZIE" component="OOZIE_SERVER" title="Downgrade Oozie ShareLib">
@@ -448,9 +487,18 @@
     <group xsi:type="restart" name="OOZIE" title="Oozie">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
+      <service name="OOZIE">
+        <component>OOZIE_CLIENT</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_SERVER</component>
         <component>OOZIE_CLIENT</component>
       </service>
     </group>
@@ -458,9 +506,18 @@
     <group xsi:type="restart" name="FALCON" title="Falcon">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <parallel-scheduler/>
       <service name="FALCON">
         <component>FALCON_SERVER</component>
+      </service>
+    </group>
+
+    <group xsi:type="restart" name="FALCON_CLIENTS" title="Falcon Clients">
+      <service-check>false</service-check>
+      <skippable>true</skippable>
+      <parallel-scheduler/>
+      <service name="FALCON">
         <component>FALCON_CLIENT</component>
       </service>
     </group>
@@ -468,7 +525,7 @@
     <group xsi:type="restart" name="KAFKA" title="Kafka">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="KAFKA">
         <component>KAFKA_BROKER</component>
       </service>
@@ -477,7 +534,7 @@
     <group xsi:type="restart" name="KNOX" title="Knox">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="KNOX">
         <component>KNOX_GATEWAY</component>
       </service>
@@ -486,7 +543,7 @@
     <group xsi:type="restart" name="STORM" title="Storm">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="STORM">
         <component>NIMBUS</component>
         <component>SUPERVISOR</component>
@@ -504,7 +561,7 @@
     <group xsi:type="restart" name="SLIDER" title="Slider">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="SLIDER">
         <component>SLIDER</component>
       </service>
@@ -513,7 +570,7 @@
     <group xsi:type="restart" name="FLUME" title="Flume">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="FLUME">
         <component>FLUME_HANDLER</component>
       </service>
@@ -522,7 +579,7 @@
     <group xsi:type="restart" name="ACCUMULO" title="Accumulo">
       <service-check>false</service-check>
       <skippable>true</skippable>
-      <parallel-scheduler></parallel-scheduler>
+      <parallel-scheduler/>
       <service name="ACCUMULO">
         <component>ACCUMULO_MASTER</component>
         <component>ACCUMULO_TSERVER</component>

http://git-wip-us.apache.org/repos/asf/ambari/blob/113f3712/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 7cd916a..90f50a4 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
@@ -116,6 +116,7 @@
     
     <group name="RANGER" title="Ranger">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
       <service name="RANGER">
         <component>RANGER_ADMIN</component>
         <component>RANGER_USERSYNC</component>
@@ -124,6 +125,7 @@
 
     <group name="RANGER_KMS" title="Ranger_KMS">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
       <service name="RANGER_KMS">
         <component>RANGER_KMS_SERVER</component>
       </service>
@@ -149,7 +151,6 @@
       <service name="HBASE">
         <component>HBASE_MASTER</component>
       </service>
-      
     </group>
     
     <group name="SERVICE_CHECK" title="All Service Checks" xsi:type="service-check">
@@ -207,6 +208,7 @@
 
     <group name="HIVE" title="Hive">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
       <service name="HIVE">
         <component>HIVE_METASTORE</component>
         <component>HIVE_SERVER</component>
@@ -216,24 +218,48 @@
 
     <group name="SPARK" title="Spark">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <service-check>false</service-check>
       <service name="SPARK">
         <component>SPARK_JOBHISTORYSERVER</component>
+      </service>
+    </group>
+
+    <group name="SPARK_CLIENTS" title="Spark Clients">
+      <skippable>true</skippable>
+      <service name="SPARK">
         <component>SPARK_CLIENT</component>
       </service>
     </group>
 
     <group name="OOZIE" title="Oozie">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <service-check>false</service-check>
       <service name="OOZIE">
         <component>OOZIE_SERVER</component>
+      </service>
+    </group>
+
+    <group name="OOZIE_CLIENTS" title="Oozie Clients">
+      <skippable>true</skippable>
+      <service name="OOZIE">
         <component>OOZIE_CLIENT</component>
       </service>
     </group>
 
     <group name="FALCON" title="Falcon">
       <skippable>true</skippable>
+      <supports-auto-skip-failure>false</supports-auto-skip-failure>
+      <service-check>false</service-check>
       <service name="FALCON">
         <component>FALCON_SERVER</component>
+      </service>
+    </group>
+
+    <group name="FALCON_CLIENTS" title="Falcon Clients">
+      <skippable>true</skippable>
+      <service name="FALCON">
         <component>FALCON_CLIENT</component>
       </service>
     </group>