<?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.5.*.*</target>
  <target-stack>HDP-2.5</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>
      <execute-stage service="ZEPPELIN" component="ZEPPELIN_MASTER" title="Pre Upgrade Zeppelin notebooks Backup">
        <task xsi:type="manual">
          <message>Before continuing, please backup Zeppelin notebooks directory 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>
        <component>RANGER_TAGSYNC</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>

    <!--
    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">
      <execute-stage title="Update the user-specified Kerberos descriptor" service="" component="">
        <task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.UpgradeUserKerberosDescriptor"/>
      </execute-stage>
    </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>

    <!-- Slider must be upgraded before higher-level apps that need to run apps on Slider, such as Hive. -->
    <group name="SLIDER" title="Slider">
      <skippable>true</skippable>
      <service name="SLIDER">
        <component>SLIDER</component>
      </service>
    </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>HIVE_SERVER_INTERACTIVE</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>
        <component>LIVY_SERVER</component>
      </service>
    </group>

    <group name="ZEPPELIN" title="Zeppelin">
      <skippable>true</skippable>
      <supports-auto-skip-failure>false</supports-auto-skip-failure>
      <service-check>false</service-check>
      <service name="ZEPPELIN">
        <component>ZEPPELIN_MASTER</component>
      </service>
    </group>

    <group name="SPARK_CLIENTS" title="Spark Clients">
      <skippable>true</skippable>
      <service name="SPARK">
        <component>SPARK_CLIENT</component>
      </service>
    </group>

    <group name="ATLAS" title="Atlas">
      <service-check>false</service-check>
      <skippable>true</skippable>
      <supports-auto-skip-failure>false</supports-auto-skip-failure>
      <service name="ATLAS">
        <component>ATLAS_SERVER</component>
      </service>
    </group>

    <group name="ATLAS_CLIENTS" title="Atlas Clients">
      <service-check>false</service-check>
      <skippable>true</skippable>
      <supports-auto-skip-failure>true</supports-auto-skip-failure>
      <service name="ATLAS">
        <component>ATLAS_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="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>

      <component name="RANGER_TAGSYNC">
        <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="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_5_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_5_0_0_hive_server_restore_transport_mode_on_downgrade" />
        </pre-downgrade>

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

      <component name="HIVE_SERVER_INTERACTIVE">
        <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="LIVY_SERVER">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
      <component name="SPARK_CLIENT">
        <upgrade>
          <task xsi:type="restart-task" />
        </upgrade>
      </component>
    </service>

    <service name="ZEPPELIN">
      <component name="ZEPPELIN_MASTER">
        <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_5_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>

    <service name="ATLAS">
      <component name="ATLAS_SERVER">
        <upgrade>
          <task xsi:type="restart-task"/>
        </upgrade>
      </component>
      <component name="ATLAS_CLIENT">
        <upgrade>
          <task xsi:type="restart-task"/>
        </upgrade>
      </component>
    </service>

  </processing>
</upgrade>
