blob: 46e11e419a3e0a2c6d2f6d3af822ea39a68da3aa [file] [log] [blame]
<?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.SecondaryNamenodeDeletedCheck</check>
<check>org.apache.ambari.server.checks.ServicesMapReduceDistributedCacheCheck</check>
<check>org.apache.ambari.server.checks.ServicesNamenodeHighAvailabilityCheck</check>
<check>org.apache.ambari.server.checks.ServicesNamenodeTruncateCheck</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>
<check>org.apache.ambari.server.checks.AtlasPresenceCheck</check>
<check>org.apache.ambari.server.checks.RangerAuditDbCheck</check>
<!-- Specific to HDP 2.5, Storm is not rolling -->
<check>org.apache.ambari.server.checks.StormShutdownWarning</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>
<skip-failures>false</skip-failures>
<skip-service-check-failures>false</skip-service-check-failures>
<!-- Instructs the upgrade pack how to build the configuration pack -->
<upgrade-path>
<intermediate-stack version="2.4"/>
</upgrade-path>
<order>
<group xsi:type="cluster" name="PRE_CLUSTER" title="Prepare Upgrade">
<direction>UPGRADE</direction>
<supports-auto-skip-failure>false</supports-auto-skip-failure>
<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="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 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="HBASE" title="Update HBase Configuration">
<skippable>true</skippable>
<execute-stage service="HBASE" component="HBASE_MASTER" title="Update HBase Configuration">
<task xsi:type="server_action" summary="Update HBase Env Configuration" class="org.apache.ambari.server.serveraction.upgrades.HBaseEnvMaxDirectMemorySizeAction"/>
</execute-stage>
</group>
<!-- This group should exist for all RUs that cross a major stack version. -->
<group xsi:type="cluster" name="UPDATE_CLIENT_CONFIGS" title="Update Client Configs">
<direction>UPGRADE</direction>
<execute-stage service="TEZ" component="TEZ_CLIENT" title="Update tez.lib.uris">
<task xsi:type="configure" id="hdp_2_5_0_0_tez_client_adjust_tez_lib_uris_property"/>
</execute-stage>
<execute-stage service="TEZ" component="TEZ_CLIENT" title="Verify LZO codec path for Tez">
<task xsi:type="server_action" summary="Verifying LZO codec path for Tez" class="org.apache.ambari.server.serveraction.upgrades.FixLzoCodecPath"/>
</execute-stage>
</group>
<!-- This needs to be done for every Rolling Upgrade pack that changes configurations. -->
<group xsi:type="cluster" name="CONFIGURE_CLIENT_DEPENDENCIES" title="Write client configs">
<skippable>true</skippable>
<supports-auto-skip-failure>false</supports-auto-skip-failure>
<direction>UPGRADE</direction>
<execute-stage service="MAPREDUCE2" component="MAPREDUCE2_CLIENT" title="Write Mapreduce2 Client configs">
<task xsi:type="execute">
<script>scripts/mapreduce2_client.py</script>
<function>stack_upgrade_save_new_config</function>
</task>
</execute-stage>
<execute-stage service="TEZ" component="TEZ_CLIENT" title="Write Tez Client configs">
<task xsi:type="execute">
<script>scripts/tez_client.py</script>
<function>stack_upgrade_save_new_config</function>
</task>
</execute-stage>
<execute-stage service="SPARK" component="SPARK_CLIENT" title="Write Spark Client configs">
<task xsi:type="execute">
<script>scripts/spark_client.py</script>
<function>stack_upgrade_save_new_config</function>
</task>
</execute-stage>
</group>
<!--
After processing this group, the user-specified Kerberos descriptor will be updated to work with
the new stack-level Kerberos descriptor.
-->
<group xsi:type="cluster" name="UPDATE_KERBEROS_DESCRIPTORS" title="Update Kerberos Descriptors">
<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>
<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>
<!-- Storm package names changed causing an incompatibility between versions; we must
shut all daemons down before deleting ZooKeeper/local data. -->
<group xsi:type="cluster" name="STOP_STORM_WARNING" title="Deactivate Storm Topologies">
<direction>UPGRADE</direction>
<supports-auto-skip-failure>false</supports-auto-skip-failure>
<execute-stage service="STORM" component="NIMBUS" title="Deactivate Storm Topologies">
<task xsi:type="manual">
<message>Before continuing, please deactivate and kill any currently running topologies.</message>
</task>
</execute-stage>
</group>
<group xsi:type="stop" name="STOP_STORM" title="Stop Storm Services">
<direction>UPGRADE</direction>
<skippable>true</skippable>
<service-check>false</service-check>
<service name="STORM">
<component>NIMBUS</component>
<component>SUPERVISOR</component>
<component>STORM_UI_SERVER</component>
<component>DRPC_SERVER</component>
</service>
</group>
<group xsi:type="restart" name="RESTART_STORM" title="Restart Storm Services">
<skippable>true</skippable>
<service name="STORM">
<component>NIMBUS</component>
<component>SUPERVISOR</component>
<component>STORM_UI_SERVER</component>
<component>DRPC_SERVER</component>
</service>
</group>
<group xsi:type="stop" name="STOP_STORM" title="Stop Storm Services">
<direction>DOWNGRADE</direction>
<skippable>true</skippable>
<service-check>false</service-check>
<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">
<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="RANGER" component="RANGER_ADMIN" title="Ranger Kerberos Keytab Check">
<task xsi:type="server_action" class="org.apache.ambari.server.serveraction.upgrades.KerberosKeytabsAction">
<summary>Ranger Kerberos Keytab Check</summary>
<message>Please follow below steps to complete upgrade in kerberos environment</message>
<message>-- If keytabs are managed by Ambari, Perform Regenerate Keytabs for missing components to get Ranger keytabs and restart Ranger components.</message>
<message>-- If keytabs are managed manually, create the required ranger keytabs in the locations specified in ranger config and restart Ranger components.</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" />
</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-downgrade/> <!-- no-op to prevent config changes on downgrade -->
<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="configure" id="hdp_2_5_0_0_remove_audit_db_flag" />
<task xsi:type="configure" id="hdp_2_5_0_0_remove_audit_db_admin_properties" />
<task xsi:type="configure" id="hdp_2_5_0_0_remove_audit_db_ranger_admin_site" />
<task xsi:type="configure" id="hdp_2_5_0_0_remove_sso_property" />
<task xsi:type="configure" id="hdp_2_5_0_0_set_external_solrCloud_flag"/>
<task xsi:type="server_action" summary="Calculating Ranger Properties" class="org.apache.ambari.server.serveraction.upgrades.RangerKerberosConfigCalculation"/>
<task xsi:type="server_action" summary="Configuring Ranger Alerts" class="org.apache.ambari.server.serveraction.upgrades.RangerWebAlertConfigAction"/>
<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="configure" id="hdp_2_5_0_0_remove_ranger_kms_audit_db" />
<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="HDFS">
<component name="NAMENODE">
<pre-downgrade /> <!-- no-op to prevent config changes on downgrade -->
<pre-upgrade>
<task xsi:type="configure" id="hdp_2_4_0_0_namenode_ha_adjustments"/>
<task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_hdfs_audit_db" />
</pre-upgrade>
<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="MAPREDUCE2">
<component name="HISTORYSERVER">
<pre-downgrade /> <!-- no-op to prevent config changes on downgrade -->
<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">
<pre-downgrade /> <!-- no-op to prevent config changes on downgrade -->
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
</component>
<component name="RESOURCEMANAGER">
<pre-upgrade>
<task xsi:type="server_action" summary="Calculating Yarn Properties for Spark Shuffle" class="org.apache.ambari.server.serveraction.upgrades.SparkShufflePropertyConfig" />
<task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_yarn_audit_db" />
</pre-upgrade>
<pre-downgrade /> <!-- no-op to prevent config changes on downgrade -->
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
</component>
<component name="NODEMANAGER">
<pre-upgrade>
<task xsi:type="configure" id="hdp_2_5_0_0_add_spark2_yarn_shuffle"/>
</pre-upgrade>
<pre-downgrade/>
<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">
<pre-upgrade>
<!-- These HBASE configs changed in HDP 2.3.4.0, but Ambari can't distinguish HDP 2.3.2.0 vs HDP 2.3.4.0, so easier to always do them. -->
<task xsi:type="configure" id="hdp_2_4_0_0_hbase_remove_local_indexing"/>
<task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_hbase_audit_db" />
</pre-upgrade>
<pre-downgrade /> <!-- no-op to prevent config changes on downgrade -->
<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">
<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="MAHOUT">
<component name="MAHOUT">
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
</component>
</service>
<service name="SQOOP">
<component name="SQOOP">
<pre-upgrade>
<!-- Remove Atlas configs that were incorrectly added to sqoop-site instead of Atlas' application.properties. -->
<task xsi:type="configure" id="hdp_2_5_0_0_remove_sqoop_atlas_configs" />
<!-- If cluster is Kerberized, add configs to sqoop-atlas-application.properties,
which will be written to the local file system if Atlas is present. -->
<task xsi:type="configure" id="hdp_2_5_0_0_add_sqoop_atlas_security_configs" />
</pre-upgrade>
<pre-downgrade/> <!-- no-op to prevent config changes on downgrade -->
<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"/>
<task xsi:type="configure" id="hdp_2_4_0_0_hive_server_configure_authentication"/>
<task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_hive_audit_db" />
<!-- Remove Atlas configs that were incorrectly added to hive-site instead of Atlas' application.properties. -->
<task xsi:type="configure" id="hdp_2_5_0_0_remove_hive_atlas_configs" />
<task xsi:type="server_action" summary="Update hive-env content" class="org.apache.ambari.server.serveraction.upgrades.HiveEnvClasspathAction"/>
</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="WEBHCAT_SERVER">
<pre-upgrade>
<task xsi:type="configure" id="hdp_2_5_0_0_webhcat_server_update_configuration_paths"/>
</pre-upgrade>
<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="SLIDER">
<component name="SLIDER">
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
</component>
</service>
<service name="SPARK">
<component name="SPARK_JOBHISTORYSERVER">
<pre-downgrade /> <!-- no-op to prevent config changes on downgrade -->
<pre-upgrade>
<task xsi:type="configure" id="hdp_2_4_0_0_spark_jobhistoryserver"/>
<task xsi:type="configure" id="hdp_2_4_0_0_spark_java_opts"/>
</pre-upgrade>
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
</component>
<component name="SPARK_THRIFTSERVER">
<pre-downgrade /> <!-- no-op to prevent config changes on downgrade -->
<pre-upgrade>
<task xsi:type="configure" id="hdp_2_4_0_0_spark_thriftserver"/>
<task xsi:type="configure" id="hdp_2_4_0_0_spark_java_opts"/>
</pre-upgrade>
<upgrade>
<task xsi:type="restart-task"/>
</upgrade>
</component>
<component name="SPARK_CLIENT">
<pre-downgrade /> <!-- no-op to prevent config changes on downgrade -->
<pre-upgrade>
<task xsi:type="configure" id="hdp_2_4_0_0_remove_spark_properties_extraJavaOptions"/>
<task xsi:type="configure" id="hdp_2_4_0_0_spark_java_opts"/>
</pre-upgrade>
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
</component>
</service>
<service name="OOZIE">
<component name="OOZIE_SERVER">
<pre-upgrade>
<task xsi:type="configure" id="hdp_2_4_0_0_oozie_remove_service_classes" />
<task xsi:type="server_action" summary="Adjusting Oozie properties" class="org.apache.ambari.server.serveraction.upgrades.OozieConfigCalculation"/>
<task xsi:type="execute" hosts="all" sequential="true" summary="Shut down all Oozie servers">
<script>scripts/oozie_server.py</script>
<function>stop</function>
</task>
<!-- 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>
<task xsi:type="server_action" summary="Fixing Oozie admin users"
class="org.apache.ambari.server.serveraction.upgrades.FixOozieAdminUsers"/>
</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">
<pre-upgrade>
<task xsi:type="configure" id="hdp_2_5_0_0_falcon_server_adjust_services_property"/>
</pre-upgrade>
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
</component>
<component name="FALCON_CLIENT">
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
</component>
</service>
<service name="KAFKA">
<component name="KAFKA_BROKER">
<pre-downgrade/>
<pre-upgrade>
<task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_kafka_audit_db" />
</pre-upgrade>
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
</component>
</service>
<service name="KNOX">
<component name="KNOX_GATEWAY">
<pre-downgrade /> <!-- no-op to prevent config changes on downgrade -->
<pre-upgrade>
<task xsi:type="configure" id="hdp_2_5_0_0_remove_ranger_knox_audit_db" />
</pre-upgrade>
<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_ranger_storm_audit_db" />
<task xsi:type="configure" id="hdp_2_5_0_0_upgrade_storm_1.0"/>
<task xsi:type="server_action" summary="Upgrade Storm Security Configs to 1.0"
class="org.apache.ambari.server.serveraction.upgrades.StormUpgradeKerberosDescriptorConfig"/>
<!-- Remove Atlas configs that were incorrectly added to storm-site instead of Atlas' application.properties. -->
<task xsi:type="configure" id="hdp_2_5_0_0_remove_storm_atlas_configs" />
<task xsi:type="configure" id="hdp_2_3_0_0_remove_empty_storm_topology_submission_notifier_plugin_class"/>
<task xsi:type="execute" hosts="any" summary="Removing Storm data from ZooKeeper">
<script>scripts/storm_upgrade.py</script>
<function>delete_storm_zookeeper_data</function>
</task>
<task xsi:type="execute" summary="Removing local Storm data">
<script>scripts/storm_upgrade.py</script>
<function>delete_storm_local_data</function>
</task>
<task xsi:type="configure" id="hdp_2_5_0_0_add_storm_security_configs" />
</pre-upgrade>
<pre-downgrade>
<task xsi:type="execute" hosts="any" summary="Removing Storm data from ZooKeeper">
<script>scripts/storm_upgrade.py</script>
<function>delete_storm_zookeeper_data</function>
</task>
<task xsi:type="execute" summary="Removing local Storm data">
<script>scripts/storm_upgrade.py</script>
<function>delete_storm_local_data</function>
</task>
</pre-downgrade>
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
</component>
<component name="SUPERVISOR">
<pre-upgrade>
<task xsi:type="execute" summary="Removing local Storm data">
<script>scripts/storm_upgrade.py</script>
<function>delete_storm_local_data</function>
</task>
</pre-upgrade>
<pre-downgrade>
<task xsi:type="execute" summary="Removing local Storm data">
<script>scripts/storm_upgrade.py</script>
<function>delete_storm_local_data</function>
</task>
</pre-downgrade>
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
</component>
<component name="STORM_UI_SERVER">
<pre-upgrade>
<task xsi:type="execute" summary="Removing local Storm data">
<script>scripts/storm_upgrade.py</script>
<function>delete_storm_local_data</function>
</task>
</pre-upgrade>
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
</component>
<component name="DRPC_SERVER">
<pre-upgrade>
<task xsi:type="execute" summary="Removing local Storm data">
<script>scripts/storm_upgrade.py</script>
<function>delete_storm_local_data</function>
</task>
</pre-upgrade>
<upgrade>
<task xsi:type="restart-task" />
</upgrade>
<post-upgrade>
<task xsi:type="manual">
<message>Please rebuild your topology using the new Storm version dependencies and resubmit it using the newly created jar.</message>
</task>
</post-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>