<?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">
  <target>2.4.*.*</target>
  <target-stack>HDP-2.4</target-stack>
  <type>ROLLING</type>
  <skip-failures>false</skip-failures>
  <skip-service-check-failures>false</skip-service-check-failures>
  <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>
    <check>org.apache.ambari.server.checks.MapReduce2JobHistoryStatePreservingCheck</check>
    <check>org.apache.ambari.server.checks.SecondaryNamenodeDeletedCheck</check>
    <check>org.apache.ambari.server.checks.ServicesMapReduceDistributedCacheCheck</check>
    <check>org.apache.ambari.server.checks.ServicesNamenodeHighAvailabilityCheck</check>
    <check>org.apache.ambari.server.checks.ServicesTezDistributedCacheCheck</check>
    <check>org.apache.ambari.server.checks.ServicesYarnWorkPreservingCheck</check>
    <check>org.apache.ambari.server.checks.YarnRMHighAvailabilityCheck</check>
    <check>org.apache.ambari.server.checks.YarnTimelineServerStatePreservingCheck</check>

    <configuration>
      <!-- Configuration properties for all pre-reqs including required pre-reqs -->
      <!--TODO: is it required? -->
      <check-properties name="org.apache.ambari.server.checks.HiveDynamicServiceDiscoveryCheck">
        <property name="min-failure-stack-version">HDP-2.3.0.0</property>
      </check-properties>
    </configuration>
  </prerequisite-checks>

  <order>
    <group xsi:type="cluster" name="PRE_CLUSTER" title="Prepare Upgrade">
      <direction>UPGRADE</direction>
      <execute-stage service="HDFS" component="NAMENODE" title="Pre Upgrade HDFS">
        <task xsi:type="execute" hosts="master">
          <script>scripts/namenode.py</script>
          <function>prepare_rolling_upgrade</function>
        </task>
      </execute-stage>

      <execute-stage service="RANGER" component="RANGER_ADMIN" title="Pre Upgrade Ranger Admin">
        <task xsi:type="execute" hosts="master">
          <script>scripts/ranger_admin.py</script>
          <function>pre_rolling_restart</function>
        </task>
      </execute-stage>

      <execute-stage service="TEZ" component="TEZ_CLIENT" title="Check Tez Tarball">
        <task xsi:type="execute" hosts="any">
          <script>scripts/pre_upgrade.py</script>
          <function>prepare</function>
        </task>
      </execute-stage>
    </group>

    <group xsi:type="cluster" name="PREPARE_BACKUPS" title="Prepare Backups">
      <direction>UPGRADE</direction>
      <skippable>true</skippable>
      <supports-auto-skip-failure>false</supports-auto-skip-failure>

      <execute-stage service="HBASE" component="HBASE_MASTER" title="Pre Upgrade HBase Backup">
        <task xsi:type="execute" hosts="master">
          <script>scripts/hbase_upgrade.py</script>
          <function>take_snapshot</function>
        </task>
      </execute-stage>

      <execute-stage service="HIVE" component="HIVE_METASTORE" title="Pre Upgrade Hive Backup">
        <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="OOZIE" component="OOZIE_SERVER" title="Pre Upgrade Oozie Backup">
        <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="RANGER" component="RANGER_ADMIN" title="Pre Upgrade Ranger Admin Backup">
        <task xsi:type="manual">
          <message>Before continuing, please backup the Ranger Admin database and Ranger Audit database.
            If audit database size is too large( > 3GB ) then follow the below instructions:
            1. Backup the audit table from audit database.
            2. Truncate audit table.
            3. Follow upgrade process and once completed then restore audit data to audit table.</message>
        </task>
      </execute-stage>

      <execute-stage service="RANGER_KMS" component="RANGER_KMS_SERVER" title="Pre Upgrade Ranger KMS Backup">
        <task xsi:type="manual">
          <message>Before continuing, please backup Ranger KMS database on the following host(s): {{hosts.all}}.</message>
        </task>
      </execute-stage>
    </group>

    <group name="ZOOKEEPER" title="ZooKeeper">
      <supports-auto-skip-failure>false</supports-auto-skip-failure>
      <service name="ZOOKEEPER">
        <component>ZOOKEEPER_SERVER</component>
      </service>
    </group>

    <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>
      </service>
    </group>

    <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>
    </group>

    <group name="KAFKA" title="Kafka">
      <skippable>true</skippable>
      <service name="KAFKA">
        <component>KAFKA_BROKER</component>
      </service>
    </group>

    <group name="CORE_MASTER" title="Core Masters">
      <service-check>false</service-check>
      <service name="HDFS">
        <component>NAMENODE</component>
        <component>JOURNALNODE</component>
        <component>ZKFC</component>
      </service>

      <service name="MAPREDUCE2">
        <component>HISTORYSERVER</component>
      </service>

      <service name="YARN">
        <component>APP_TIMELINE_SERVER</component>
        <component>RESOURCEMANAGER</component>
      </service>

      <service name="HBASE">
        <component>HBASE_MASTER</component>
      </service>
    </group>
    
    <group name="SERVICE_CHECK_1" title="All Service Checks" xsi:type="service-check">
      <skippable>true</skippable>
      <direction>UPGRADE</direction>
      <priority>
        <service>ZOOKEEPER</service>
        <service>HDFS</service>
        <service>YARN</service>
        <service>MAPREDUCE2</service>
        <service>HBASE</service>
      </priority>
      <exclude>
        <service>AMBARI_METRICS</service>
        <service>LOGSEARCH</service>
      </exclude>
    </group>
    
    <group name="CORE_SLAVES" title="Core Slaves" xsi:type="colocated">
      <skippable>true</skippable>
      <service-check>false</service-check>
      <service name="HDFS">
        <component>DATANODE</component>
        <component>NFS_GATEWAY</component>
      </service>
      
      <service name="HBASE">
        <component>HBASE_REGIONSERVER</component>
        <component>PHOENIX_QUERY_SERVER</component>
      </service>

      <service name="YARN">
        <component>NODEMANAGER</component>
      </service>

      <batch>
        <percent>20</percent>
        <summary>Verification Required</summary>
        <message>The initial batch of {{components}} hosts have been {{direction.past}}. You are advised to check the hosts and perform cluster/workload-specific tests against your cluster to ensure proper operation before proceeding with {{direction.text}} of the remaining services.</message>
      </batch>
    </group>
    
    <group name="SERVICE_CHECK_2" title="All Service Checks" xsi:type="service-check">
      <skippable>true</skippable>
      <direction>UPGRADE</direction>
      <priority>
        <service>ZOOKEEPER</service>
        <service>HDFS</service>
        <service>YARN</service>
        <service>HBASE</service>
      </priority>
      <exclude>
        <service>AMBARI_METRICS</service>
        <service>LOGSEARCH</service>
      </exclude>
    </group>

    <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>
        <component>WEBHCAT_SERVER</component>
      </service>
    </group>

    <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>
        <component>SPARK_THRIFTSERVER</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>

    <group name="CLIENTS" title="Client Components">
      <service-check>false</service-check>
      <service name="ZOOKEEPER">
        <component>ZOOKEEPER_CLIENT</component>
      </service>
      <service name="HDFS">
        <component>HDFS_CLIENT</component>
      </service>

      <service name="YARN">
        <component>YARN_CLIENT</component>
      </service>

      <service name="MAPREDUCE2">
        <component>MAPREDUCE2_CLIENT</component>
      </service>

      <service name="TEZ">
        <component>TEZ_CLIENT</component>
      </service>

      <service name="HBASE">
        <component>HBASE_CLIENT</component>
      </service>

      <service name="PIG">
        <component>PIG</component>
      </service>

      <service name="SQOOP">
        <component>SQOOP</component>
      </service>

      <service name="MAHOUT">
        <component>MAHOUT</component>
      </service>

      <service name="HIVE">
        <component>HIVE_CLIENT</component>
        <component>HCAT</component>
      </service>
    </group>

    <group name="SERVICE_CHECK_3" title="All Service Checks" xsi:type="service-check">
      <skippable>true</skippable>
      <direction>UPGRADE</direction>
      <priority>
        <service>ZOOKEEPER</service>
        <service>HDFS</service>
        <service>YARN</service>
        <service>HBASE</service>
      </priority>
      <exclude>
        <service>AMBARI_METRICS</service>
        <service>LOGSEARCH</service>
      </exclude>
    </group>

    <group name="KNOX" title="Knox">
      <skippable>true</skippable>
      <service name="KNOX">
        <component>KNOX_GATEWAY</component>
      </service>
    </group>

    <group name="STORM" title="Storm">
      <skippable>true</skippable>
      <service name="STORM">
        <component>NIMBUS</component>
        <component>SUPERVISOR</component>
        <component>STORM_UI_SERVER</component>
        <component>DRPC_SERVER</component>
      </service>
    </group>

    <group name="SLIDER" title="Slider">
      <skippable>true</skippable>
      <service name="SLIDER">
        <component>SLIDER</component>
      </service>
    </group>

    <group name="FLUME" title="Flume">
      <skippable>true</skippable>
      <service name="FLUME">
        <component>FLUME_HANDLER</component>
      </service>
    </group>

    <group name="ACCUMULO" title="Accumulo">
      <skippable>true</skippable>
      <service name="ACCUMULO">
        <component>ACCUMULO_MASTER</component>
        <component>ACCUMULO_TSERVER</component>
        <component>ACCUMULO_MONITOR</component>
        <component>ACCUMULO_GC</component>
        <component>ACCUMULO_TRACER</component>
        <component>ACCUMULO_CLIENT</component>
      </service>
    </group>

    <group xsi:type="cluster" name="ALL_HOST_OPS" title="Finalize Hosts">
      <scope>COMPLETE</scope>
      <execute-stage title="Update remaining HDP 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="HIVE" component="HIVE_SERVER" title="Hive Server Port Change">
        <task xsi:type="manual">
          <message>If there are users or applications using URLS that specify the Hive Server port number, they will now fail to connect. You can restore the port back to its original value after the upgrade has been finalized.</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_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="RANGER">
      <component name="RANGER_ADMIN">
        <pre-upgrade>
          <task xsi:type="execute" hosts="all" summary="Stop Ranger Admin">
            <script>scripts/ranger_admin.py</script>
            <function>stop</function>
          </task>

          <task xsi:type="execute" hosts="all">
            <script>scripts/ranger_admin.py</script>
            <function>set_pre_start</function>
          </task>

          <task xsi:type="execute" hosts="any" summary="Upgrading Ranger database schema">
            <script>scripts/ranger_admin.py</script>
            <function>setup_ranger_database</function>
          </task>

          <task xsi:type="configure_function" hosts="all" />

          <task xsi:type="execute" hosts="any" summary="Applying Ranger java patches">
            <script>scripts/ranger_admin.py</script>
            <function>setup_ranger_java_patches</function>
          </task>
        </pre-upgrade>

        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>

      </component>

      <component name="RANGER_USERSYNC">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
    </service>

    <service name="RANGER_KMS">
      <component name="RANGER_KMS_SERVER">
        <pre-upgrade>
          <task xsi:type="execute" hosts="any" sequential="true" summary="Upgrading Ranger KMS database schema">
            <script>scripts/kms_server.py</script>
            <function>setup_ranger_kms_database</function>
          </task>
        </pre-upgrade>

        <pre-downgrade>
          <task xsi:type="execute" hosts="any" sequential="true" summary="Downgrading Ranger KMS database schema">
            <script>scripts/kms_server.py</script>
            <function>setup_ranger_kms_database</function>
          </task>
        </pre-downgrade>

        <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="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="NFS_GATEWAY">
        <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>
    </service>
    
    <service name="SLIDER">
      <component name="SLIDER">
        <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">
        <pre-upgrade>
          <task xsi:type="server_action" summary="Verifying LZO codec path for mapreduce" class="org.apache.ambari.server.serveraction.upgrades.FixLzoCodecPath"/>
        </pre-upgrade>

        <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="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="PHOENIX_QUERY_SERVER">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
    </service>

    <service name="TEZ">
      <component name="TEZ_CLIENT">
        <pre-upgrade>
          <task xsi:type="configure" id="hdp_2_4_0_0_tez_client_adjust_tez_lib_uris_property"/>

          <task xsi:type="server_action" summary="Verifying LZO codec path for Tez" class="org.apache.ambari.server.serveraction.upgrades.FixLzoCodecPath"/>
        </pre-upgrade>
        <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="MAHOUT">
      <component name="MAHOUT">
        <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">
        <pre-upgrade>
          <task xsi:type="manual">
            <summary>HiveServer Port Availability</summary>
            <message>Please note that the HiveServer port will now change to 10010 if Hive is using a binary transfer mode or 10011 if Hive is using an http transport mode. You can use "netstat -anp | grep 1001[01]" to determine if the port is available on each of following HiveServer host(s): {{hosts.all}}. If the port is not available, the process using it must be terminated.</message>
          </task>

          <task xsi:type="configure" id="hdp_2_4_0_0_hive_server_set_transport_mode"/>
        </pre-upgrade>

        <pre-downgrade>
          <task xsi:type="manual">
            <summary>HiveServer Port Availability</summary>
            <message>Please note that the HiveServer port will now change to 10000 if Hive is using a binary transfer mode or 10001 if Hive is using an http transport mode. You can use "netstat -anp | grep 1000[01]" to determine if the port is available on each of following HiveServer host(s): {{hosts.all}}. If the port is not available, the process using it must be terminated.</message>
          </task>

          <task xsi:type="configure" id="hdp_2_4_0_0_hive_server_restore_transport_mode_on_downgrade" />
        </pre-downgrade>

        <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>
          <task xsi:type="execute" hosts="all" sequential="true" summary="Shut down all Oozie servers">
            <script>scripts/oozie_server.py</script>
            <function>stop</function>
          </task>

          <task xsi:type="server_action" summary="Adjusting Oozie properties" class="org.apache.ambari.server.serveraction.upgrades.OozieConfigCalculation"/>

          <!-- It is extremely important that both of these tasks run on the exact same host. Hence, pick the first alphabetically. -->
          <task xsi:type="configure_function" hosts="first" />

          <task xsi:type="execute" hosts="first" sequential="true" summary="Upgrading the Oozie database and creating a new sharelib">
            <script>scripts/oozie_server_upgrade.py</script>
            <function>upgrade_oozie_database_and_sharelib</function>
          </task>
        </pre-upgrade>

        <pre-downgrade>
          <task xsi:type="execute" hosts="all" sequential="true" summary="Shut down all Oozie servers">
            <script>scripts/oozie_server.py</script>
            <function>stop</function>
          </task>

          <task xsi:type="execute" hosts="any" sequential="true" summary="Create a new sharelib">
            <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="FALCON">
      <component name="FALCON_SERVER">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
      <component name="FALCON_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="STORM">
      <component name="NIMBUS">
        <pre-upgrade>
          <task xsi:type="configure" id="hdp_2_4_0_0_remove_empty_storm_topology_submission_notifier_plugin_class"/>
        </pre-upgrade>

        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
      <component name="SUPERVISOR">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
      <component name="STORM_UI_SERVER">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
      <component name="DRPC_SERVER">
        <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>

    <service name="ACCUMULO">
      <component name="ACCUMULO_MASTER">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
      <component name="ACCUMULO_MONITOR">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
      <component name="ACCUMULO_GC">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
      <component name="ACCUMULO_TRACER">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
      <component name="ACCUMULO_TSERVER">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
      <component name="ACCUMULO_CLIENT">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
    </service>
  </processing>
</upgrade>
