You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by dm...@apache.org on 2015/09/09 17:32:49 UTC

[3/4] ambari git commit: AMBARI-12700. Stop-and-Start Upgrade: Move Configs out of Upgrade Pack (dlysnichenko)

http://git-wip-us.apache.org/repos/asf/ambari/blob/a67ddd27/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.3.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.3.xml b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.3.xml
index 7c1a1f9..8397aaf 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.3.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.3.xml
@@ -345,108 +345,18 @@
       <component name="RANGER_ADMIN">
         <pre-downgrade /> <!--  no-op to prevent config changes on downgrade -->
         <pre-upgrade>
-          <task xsi:type="configure">
-            <type>ranger-env</type>
-            <set key="xml_configurations_supported" value="true" />
-          </task>
-          <task xsi:type="configure" summary="Updating Ranger Admin">
-            <type>ranger-admin-site</type>
-            <transfer operation="copy" from-type="ranger-site" from-key="HTTPS_CLIENT_AUTH" to-key="ranger.service.https.attrib.clientAuth" default-value="" />
-            <transfer operation="copy" from-type="ranger-site" from-key="HTTPS_KEYSTORE_FILE" to-key="ranger.https.attrib.keystore.file" default-value="" />
-            <transfer operation="copy" from-type="ranger-site" from-key="HTTPS_KEYSTORE_PASS" to-key="ranger.service.https.attrib.keystore.pass" default-value="" mask="true" />
-            <transfer operation="copy" from-type="ranger-site" from-key="HTTPS_KEY_ALIAS" to-key="ranger.service.https.attrib.keystore.keyalias" default-value="" />
-            <transfer operation="copy" from-type="ranger-site" from-key="HTTPS_SERVICE_PORT" to-key="ranger.service.https.port" default-value="" />
-            <transfer operation="copy" from-type="ranger-site" from-key="HTTP_ENABLED" to-key="ranger.service.http.enabled" default-value="" />
-            <transfer operation="copy" from-type="ranger-site" from-key="HTTP_SERVICE_PORT" to-key="ranger.service.http.port" default-value="" />
-
-            <transfer operation="copy" from-type="admin-properties" from-key="authServiceHostName" to-key="ranger.unixauth.service.hostname" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="authServicePort" to-key="ranger.unixauth.service.port" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="authentication_method" to-key="ranger.authentication.method" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="remoteLoginEnabled" to-key="ranger.unixauth.remote.login.enabled" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="xa_ldap_url" to-key="ranger.ldap.url" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="xa_ldap_userDNpattern" to-key="ranger.ldap.user.dnpattern" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="xa_ldap_groupSearchBase" to-key="ranger.ldap.group.searchbase" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="xa_ldap_groupSearchFilter" to-key="ranger.ldap.group.searchfilter" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="xa_ldap_groupRoleAttribute" to-key="ranger.ldap.group.roleattribute" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="xa_ldap_ad_domain" to-key="ranger.ldap.ad.domain" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="xa_ldap_ad_url" to-key="ranger.ldap.ad.url" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="db_user" to-key="ranger.jpa.jdbc.user" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="db_password" to-key="ranger.jpa.jdbc.password" default-value="" mask="true" />
-            <transfer operation="copy" from-type="admin-properties" from-key="audit_db_user" to-key="ranger.jpa.audit.jdbc.user" default-value="" />
-            <transfer operation="copy" from-type="admin-properties" from-key="audit_db_password" to-key="ranger.jpa.audit.jdbc.password" default-value="" mask="true" />
-
-            <set key="ranger.externalurl" value="{{ranger_external_url}}" />
-          </task>
-          
+          <task xsi:type="configure" id="hdp_2_3_0_0_update_ranger_env"/>
+          <task xsi:type="configure" id="hdp_2_3_0_0_update_ranger_admin"/>
+
           <task xsi:type="server_action" summary="Calculating Ranger Properties" class="org.apache.ambari.server.serveraction.upgrades.RangerConfigCalculation" />
           
-          <task xsi:type="configure" summary="Updating Ranger Usersync">
-            <type>ranger-ugsync-site</type>
-            <transfer operation="copy" from-type="usersync-properties" from-key="CRED_KEYSTORE_FILENAME" to-key="ranger.usersync.credstore.filename" default-value="/etc/ranger/usersync/ugsync.jceks" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="MIN_UNIX_USER_ID_TO_SYNC" to-key="ranger.usersync.unix.minUserId" default-value="" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_INTERVAL" to-key="ranger.usersync.sleeptimeinmillisbetweensynccycle" default-value="60000" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_LDAP_BIND_DN" to-key="ranger.usersync.ldap.binddn" default-value="" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_LDAP_BIND_PASSWORD" to-key="ranger.usersync.ldap.ldapbindpassword" default-value="" mask="true" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_LDAP_GROUPNAME_CASE_CONVERSION" to-key="ranger.usersync.ldap.groupname.caseconversion" default-value="" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_LDAP_URL" to-key="ranger.usersync.ldap.url" default-value="" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_LDAP_USERNAME_CASE_CONVERSION" to-key="ranger.usersync.ldap.username.caseconversion" default-value="" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_LDAP_USER_GROUP_NAME_ATTRIBUTE" to-key="ranger.usersync.ldap.user.groupnameattribute" default-value="" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_LDAP_USER_NAME_ATTRIBUTE" to-key="ranger.usersync.ldap.user.nameattribute" default-value="" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_LDAP_USER_OBJECT_CLASS" to-key="ranger.usersync.ldap.user.objectclass" default-value="" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_LDAP_USER_SEARCH_BASE" to-key="ranger.usersync.ldap.user.searchbase" default-value="" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_LDAP_USER_SEARCH_FILTER" to-key="ranger.usersync.ldap.user.searchfilter" default-value="" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_LDAP_USER_SEARCH_SCOPE" to-key="ranger.usersync.ldap.user.searchscope" default-value="" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="logdir" to-key="ranger.usersync.logdir" default-value="" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="SYNC_SOURCE" to-key="ranger.usersync.sync.source" default-value="unix" />
-            <transfer operation="copy" from-type="usersync-properties" from-key="POLICY_MGR_URL" to-key="ranger.usersync.policymanager.baseURL" default-value="{{ranger_external_url}}" />
-            <set key="ranger.usersync.source.impl.class" value="" />
-            <set key="ranger.usersync.ldap.searchBase" value="" />
-            <set key="ranger.usersync.group.memberattributename" value="" />
-            <set key="ranger.usersync.group.nameattribute" value="" />
-            <set key="ranger.usersync.group.objectclass" value="" />
-            <set key="ranger.usersync.group.searchbase" value="" />
-            <set key="ranger.usersync.group.searchenabled" value="" />
-            <set key="ranger.usersync.group.searchfilter" value="" />
-            <set key="ranger.usersync.group.searchscope" value="" />
-            <set key="ranger.usersync.group.usermapsyncenabled" value="" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_update_ranger_usersync"/>
             
-          <task xsi:type="configure">
-            <type>ranger-site</type>
-            <transfer operation="delete" delete-key="HTTPS_CLIENT_AUTH" />
-            <transfer operation="delete" delete-key="HTTPS_KEYSTORE_FILE" />
-            <transfer operation="delete" delete-key="HTTPS_KEYSTORE_PASS" />
-            <transfer operation="delete" delete-key="HTTPS_KEY_ALIAS" />
-            <transfer operation="delete" delete-key="HTTPS_SERVICE_PORT" />
-            <transfer operation="delete" delete-key="HTTP_ENABLED" />
-            <transfer operation="delete" delete-key="HTTP_SERVICE_PORT" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_update_ranger_site"/>
 
-          <task xsi:type="configure">
-            <type>usersync-properties</type>
-            <transfer operation="delete" delete-key="CRED_KEYSTORE_FILENAME" />
-            <transfer operation="delete" delete-key="MIN_UNIX_USER_ID_TO_SYNC" />
-            <transfer operation="delete" delete-key="SYNC_INTERVAL" />
-            <transfer operation="delete" delete-key="SYNC_LDAP_BIND_DN" />
-            <transfer operation="delete" delete-key="SYNC_LDAP_BIND_PASSWORD" />
-            <transfer operation="delete" delete-key="SYNC_LDAP_GROUPNAME_CASE_CONVERSION" />
-            <transfer operation="delete" delete-key="SYNC_LDAP_URL" />
-            <transfer operation="delete" delete-key="SYNC_LDAP_USERNAME_CASE_CONVERSION" />
-            <transfer operation="delete" delete-key="SYNC_LDAP_USER_GROUP_NAME_ATTRIBUTE" />
-            <transfer operation="delete" delete-key="SYNC_LDAP_USER_NAME_ATTRIBUTE" />
-            <transfer operation="delete" delete-key="SYNC_LDAP_USER_OBJECT_CLASS" />
-            <transfer operation="delete" delete-key="SYNC_LDAP_USER_SEARCH_BASE" />
-            <transfer operation="delete" delete-key="SYNC_LDAP_USER_SEARCH_FILTER" />
-            <transfer operation="delete" delete-key="SYNC_LDAP_USER_SEARCH_SCOPE" />
-            <transfer operation="delete" delete-key="logdir" />
-            <transfer operation="delete" delete-key="SYNC_SOURCE" />
-            <transfer operation="delete" delete-key="POLICY_MGR_URL" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_update_ranger_usersync_properties"/>
 
-          <task xsi:type="configure">
-            <type>ranger-env</type>
-            <transfer operation="delete" delete-key="oracle_home" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_update_ranger_delete_oracle_home"/>
         </pre-upgrade>
       
         <upgrade>
@@ -466,83 +376,18 @@
         <pre-downgrade /> <!--  no-op to prevent config changes on downgrade -->
         <pre-upgrade>
 
-          <task xsi:type="configure" summary="Modify hadoop-env.sh">
-            <type>hadoop-env</type>
-            <replace key="content" find="# Add libraries required by nodemanager" replace-with="" />
-            <replace key="content" find="MAPREDUCE_LIBS={{mapreduce_libs_path}}" replace-with="" />
-            <replace key="content" find=":${MAPREDUCE_LIBS}" replace-with="" />
-            <replace key="content" find=":/usr/hdp/current/tez-client/*:/usr/hdp/current/tez-client/lib/*:/etc/tez/conf/" replace-with="" />
-            <replace key="content" find=":/usr/hdp/current/tez-client/*:/usr/hdp/current/tez-client/lib/*:/usr/hdp/current/tez-client/conf/" replace-with="" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_modify_hadoop_env"/>
 
-          <task xsi:type="configure">
-            <condition type="ranger-hdfs-plugin-properties" key="ranger-hdfs-plugin-enabled" value="Yes">
-              <type>hdfs-site</type>
-              <key>dfs.namenode.inode.attributes.provider.class</key>
-              <value>org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer</value>
-            </condition>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hdfs_adjust_ranger_plugin"/>
 
-          <task xsi:type="configure" summary="Transitioning Ranger HDFS Policy">
-            <type>ranger-hdfs-policymgr-ssl</type>
-            <transfer operation="copy" from-type="ranger-hdfs-plugin-properties" from-key="SSL_KEYSTORE_FILE_PATH" to-key="xasecure.policymgr.clientssl.keystore" default-value="/usr/hdp/current/hadoop-client/conf/ranger-plugin-keystore.jks" />
-            <transfer operation="copy" from-type="ranger-hdfs-plugin-properties" from-key="SSL_KEYSTORE_PASSWORD" to-key="xasecure.policymgr.clientssl.keystore.password" mask="true" default-value="myKeyFilePassword" />
-            <transfer operation="copy" from-type="ranger-hdfs-plugin-properties" from-key="SSL_TRUSTSTORE_FILE_PATH" to-key="xasecure.policymgr.clientssl.truststore" default-value="/usr/hdp/current/hadoop-client/conf/ranger-plugin-truststore.jks" />
-            <transfer operation="copy" from-type="ranger-hdfs-plugin-properties" from-key="SSL_TRUSTSTORE_PASSWORD" to-key="xasecure.policymgr.clientssl.truststore.password" mask="true" default-value="changeit" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hdfs_transition_ranger_hdfs_policy"/>
 
-          <task xsi:type="configure" summary="Transitioning Ranger HDFS Audit">
-            <type>ranger-hdfs-audit</type>
-            <transfer operation="copy" from-type="ranger-hdfs-plugin-properties" from-key="XAAUDIT.DB.IS_ENABLED" to-key="xasecure.audit.destination.db" default-value="false"/>
-            <transfer operation="copy" from-type="ranger-hdfs-plugin-properties" from-key="XAAUDIT.HDFS.DESTINATION_DIRECTORY" to-key="xasecure.audit.destination.hdfs.dir" default-value="hdfs://NAMENODE_HOSTNAME:8020/ranger/audit" />
-            <transfer operation="copy" from-type="ranger-hdfs-plugin-properties" from-key="XAAUDIT.HDFS.IS_ENABLED" to-key="xasecure.audit.destination.hdfs" default-value="true" />
-            <transfer operation="copy" from-type="ranger-hdfs-plugin-properties" from-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_DIRECTORY" to-key="xasecure.audit.destination.hdfs.batch.filespool.dir" default-value="/var/log/hadoop/hdfs/audit/hdfs/spool" />
-            <transfer operation="copy" from-type="ranger-hdfs-plugin-properties" from-key="XAAUDIT.DB.USER_NAME" to-key="xasecure.audit.destination.db.user" default-value="" />
-            <transfer operation="copy" from-type="ranger-hdfs-plugin-properties" from-key="XAAUDIT.DB.PASSWORD" to-key="xasecure.audit.destination.db.password" mask="true" default-value="" />
-            <set key="xasecure.audit.credential.provider.file" value="jceks://file{{credential_file}}"/>
-            <set key="xasecure.audit.destination.solr" value="false" />
-            <set key="xasecure.audit.destination.solr.urls" value="{{ranger_audit_solr_urls}}" />
-            <set key="xasecure.audit.destination.solr.zookeepers" value="none" />
-            <set key="xasecure.audit.destination.solr.batch.filespool.dir" value="/var/log/hadoop/hdfs/audit/solr/spool" />
-            <set key="xasecure.audit.destination.db.jdbc.driver" value="{{jdbc_driver}}" />
-            <set key="xasecure.audit.destination.db.jdbc.url" value="{{audit_jdbc_url}}" />
-            <set key="xasecure.audit.provider.summary.enabled" value="false" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hdfs_transition_ranger_hdfs_audit"/>
           
-          <task xsi:type="configure" summary="Transitioning Ranger HDFS Security">
-            <type>ranger-hdfs-security</type>
-            <transfer operation="copy" from-type="ranger-hdfs-plugin-properties" from-key="REPOSITORY_NAME" to-key="ranger.plugin.hdfs.service.name" default-value="{{repo_name}}" />
-            <transfer operation="copy" from-type="ranger-hdfs-plugin-properties" from-key="POLICY_MGR_URL" to-key="ranger.plugin.hdfs.policy.rest.url" default-value="{{policymgr_mgr_url}}" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hdfs_transition_ranger_hdfs_security"/>
           
-          <task xsi:type="configure">
-            <type>ranger-hdfs-plugin-properties</type>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_FILE" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_FLUSH_INTERVAL_SECONDS" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_OPEN_RETRY_INTERVAL_SECONDS" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_ROLLOVER_INTERVAL_SECONDS" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_MAX_FILE_COUNT" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_DIRECTORY" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_FILE" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_FLUSH_INTERVAL_SECONDS" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_ROLLOVER_INTERVAL_SECONDS" />
-            <transfer operation="delete" delete-key="SQL_CONNECTOR_JAR" />
-            <transfer operation="delete" delete-key="SSL_KEYSTORE_FILE_PATH" />
-            <transfer operation="delete" delete-key="SSL_KEYSTORE_PASSWORD" />
-            <transfer operation="delete" delete-key="SSL_TRUSTSTORE_FILE_PATH" />
-            <transfer operation="delete" delete-key="SSL_TRUSTSTORE_PASSWORD" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.IS_ENABLED" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINATION_DIRECTORY" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.IS_ENABLED" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_DIRECTORY" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.USER_NAME" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.PASSWORD" />
-            <transfer operation="delete" delete-key="REPOSITORY_NAME" />
-            <transfer operation="delete" delete-key="POLICY_MGR_URL" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.FLAVOUR" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.DATABASE_NAME" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.HOSTNAME" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hdfs_ranger_hdfs_delete_old_properties"/>
+
         </pre-upgrade>
 
         <upgrade>
@@ -579,12 +424,7 @@
       <component name="HISTORYSERVER">
         <pre-downgrade /> <!--  no-op to prevent config changes on downgrade -->
         <pre-upgrade>
-          <task xsi:type="configure">
-            <type>mapred-site</type>
-            <transfer operation="move" from-key="mapreduce.job.speculative.speculativecap" to-key="mapreduce.job.speculative.speculative-cap-running-tasks" default-value="0.1"/>
-            <transfer operation="delete" delete-key="mapreduce.task.tmp.dir" />
-            <set key="mapreduce.fileoutputcommitter.algorithm.version" value="1"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_mapreduce2_adjust_history_server" />
         </pre-upgrade>
 
         <upgrade>
@@ -603,12 +443,7 @@
       <component name="APP_TIMELINE_SERVER">
         <pre-downgrade /> <!--  no-op to prevent config changes on downgrade -->
         <pre-upgrade>
-          <task xsi:type="configure">
-            <type>yarn-site</type>
-            <set key="yarn.timeline-service.recovery.enabled" value="true"/>
-            <set key="yarn.timeline-service.state-store-class" value="org.apache.hadoop.yarn.server.timeline.recovery.LeveldbTimelineStateStore"/>
-            <transfer operation="copy" from-key="yarn.timeline-service.leveldb-timeline-store.path" to-key="yarn.timeline-service.leveldb-state-store.path" default-value="/hadoop/yarn/timeline"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_yarn_ats_enable_recovery"/>
         </pre-upgrade>
 
         <upgrade>
@@ -619,31 +454,13 @@
       <component name="RESOURCEMANAGER">
         <pre-downgrade /> <!--  no-op to prevent config changes on downgrade -->
         <pre-upgrade>
-          <task xsi:type="configure">
-            <type>yarn-site</type>
-            <set key="yarn.node-labels.enabled" value="false"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_yarn_rm_disable_node_labels"/>
 
-          <task xsi:type="configure">
-            <type>capacity-scheduler</type>
-            <set key="yarn.scheduler.capacity.root.default-node-label-expression" value=""/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_yarn_rm_clear_default_node_label_expression"/>
 
-          <task xsi:type="configure" summary="Checking the Capacity Scheduler root default capacity">
-            <condition type="capacity-scheduler" key="yarn.scheduler.capacity.root.accessible-node-labels.default.capacity" value="-1">
-              <type>capacity-scheduler</type>
-              <key>yarn.scheduler.capacity.root.accessible-node-labels.default.capacity</key>
-              <value>10</value>
-            </condition>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_yarn_rm_check_cs_root_def_capacity"/>
 
-          <task xsi:type="configure" summary="Checking the Capacity Scheduler root maximum capacity">
-            <condition type="capacity-scheduler" key="yarn.scheduler.capacity.root.accessible-node-labels.default.maximum-capacity" value="-1">
-              <type>capacity-scheduler</type>
-              <key>yarn.scheduler.capacity.root.accessible-node-labels.default.maximum-capacity</key>
-              <value>100</value>
-            </condition>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_yarn_rm_check_cs_root_max_capacity"/>
 
         </pre-upgrade>
         <upgrade>
@@ -668,105 +485,25 @@
       <component name="HBASE_MASTER">
         <pre-downgrade /> <!--  no-op to prevent config changes on downgrade -->
         <pre-upgrade>
-          <task xsi:type="configure">
-            <condition type="hbase-env" key="phoenix_sql_enabled" value="true">
-              <type>hbase-site</type>
-              <key>hbase.region.server.rpc.scheduler.factory.class</key>
-              <value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value>
-            </condition>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hbase_master_adjust_phoenix_scheduler_factory"/>
 
-          <task xsi:type="configure">
-            <condition type="hbase-env" key="phoenix_sql_enabled" value="true">
-              <type>hbase-site</type>
-              <key>hbase.rpc.controllerfactory.class</key>
-              <value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory</value>
-            </condition>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hbase_master_adjust_phoenix_rpc_controller_factory"/>
 
-          <task xsi:type="configure">
-            <type>hbase-site</type>
-            <transfer operation="copy" from-type="hbase-site" from-key="hbase.regionserver.global.memstore.upperLimit" to-key="hbase.regionserver.global.memstore.size" default-value="0.4" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hbase_master_set_global_memstore_size"/>
 
           <task xsi:type="server_action" summary="Calculating HBase Properties" class="org.apache.ambari.server.serveraction.upgrades.HBaseConfigCalculation" />
 
-          <task xsi:type="configure">
-            <condition type="hbase-env" key="phoenix_sql_enabled" value="true">
-              <type>hbase-site</type>
-              <key>hbase.regionserver.wal.codec</key>
-              <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
-            </condition>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hbase_master_adjust_phoenix_indexed_wal_edit_codec"/>
 
-          <task xsi:type="configure" summary="Updating Authorization Coprocessors">
-            <type>hbase-site</type>
-            <replace key="hbase.coprocessor.master.classes" find="com.xasecure.authorization.hbase.XaSecureAuthorizationCoprocessor" replace-with="org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor" />
-            <replace key="hbase.coprocessor.region.classes" find="com.xasecure.authorization.hbase.XaSecureAuthorizationCoprocessor" replace-with="org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor" />           
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hbase_master_adjust_authorization_coprocessors"/>
 
-          <task xsi:type="configure" summary="Transitioning Ranger HBase Policy">
-            <type>ranger-hbase-policymgr-ssl</type>
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="SSL_KEYSTORE_FILE_PATH" to-key="xasecure.policymgr.clientssl.keystore" default-value="/usr/hdp/current/hbase-client/conf/ranger-plugin-keystore.jks" />
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="SSL_KEYSTORE_PASSWORD" to-key="xasecure.policymgr.clientssl.keystore.password" mask="true" default-value="myKeyFilePassword" />
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="SSL_TRUSTSTORE_FILE_PATH" to-key="xasecure.policymgr.clientssl.truststore" default-value="/usr/hdp/current/hbase-client/conf/ranger-plugin-truststore.jks" />
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="SSL_TRUSTSTORE_PASSWORD" to-key="xasecure.policymgr.clientssl.truststore.password" mask="true" default-value="changeit" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hbase_master_transition_ranger_hbase_policy"/>
 
-          <task xsi:type="configure" summary="Transitioning Ranger HBase Audit">
-            <type>ranger-hbase-audit</type>
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="XAAUDIT.DB.IS_ENABLED" to-key="xasecure.audit.destination.db" default-value="false" />
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="XAAUDIT.HDFS.DESTINATION_DIRECTORY" to-key="xasecure.audit.destination.hdfs.dir" default-value="hdfs://NAMENODE_HOSTNAME:8020/ranger/audit" />
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="XAAUDIT.HDFS.IS_ENABLED" to-key="xasecure.audit.destination.hdfs" default-value="true" />
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_DIRECTORY" to-key="xasecure.audit.destination.hdfs.batch.filespool.dir" default-value="/var/log/hbase/audit/hdfs/spool" />
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="XAAUDIT.DB.USER_NAME" to-key="xasecure.audit.destination.db.user" default-value="" />
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="XAAUDIT.DB.PASSWORD" to-key="xasecure.audit.destination.db.password" mask="true" default-value="" />
-            <set key="xasecure.audit.credential.provider.file" value="jceks://file{{credential_file}}"/>
-            <set key="xasecure.audit.destination.solr" value="false" />
-            <set key="xasecure.audit.destination.solr.urls" value="{{ranger_audit_solr_urls}}" />
-            <set key="xasecure.audit.destination.solr.zookeepers" value="none" />
-            <set key="xasecure.audit.destination.solr.batch.filespool.dir" value="/var/log/hbase/audit/solr/spool" />
-            <set key="xasecure.audit.destination.db.jdbc.driver" value="{{jdbc_driver}}" />
-            <set key="xasecure.audit.destination.db.jdbc.url" value="{{audit_jdbc_url}}" />
-            <set key="xasecure.audit.provider.summary.enabled" value="true" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hbase_master_transition_ranger_hbase_audit" />
 
-          <task xsi:type="configure">
-            <type>ranger-hbase-security</type>
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="UPDATE_XAPOLICIES_ON_GRANT_REVOKE" to-key="xasecure.hbase.update.xapolicies.on.grant.revoke" default-value="true" />
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="POLICY_MGR_URL" to-key="ranger.plugin.hbase.policy.rest.url" default-value="{{policymgr_mgr_url}}" />
-            <transfer operation="copy" from-type="ranger-hbase-plugin-properties" from-key="REPOSITORY_NAME" to-key="ranger.plugin.hbase.service.name" default-value="{{repo_name}}" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hbase_master_copy_ranger_policies"/>
 
-          <task xsi:type="configure">
-            <type>ranger-hbase-plugin-properties</type>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_FILE" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_FLUSH_INTERVAL_SECONDS" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_OPEN_RETRY_INTERVAL_SECONDS" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_ROLLOVER_INTERVAL_SECONDS" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_MAX_FILE_COUNT" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_DIRECTORY" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_FILE" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_FLUSH_INTERVAL_SECONDS" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_ROLLOVER_INTERVAL_SECONDS" />
-            <transfer operation="delete" delete-key="SQL_CONNECTOR_JAR" />
-            <transfer operation="delete" delete-key="REPOSITORY_NAME" />
-            <transfer operation="delete" delete-key="POLICY_MGR_URL" />
-            <transfer operation="delete" delete-key="UPDATE_XAPOLICIES_ON_GRANT_REVOKE" />
-            <transfer operation="delete" delete-key="SSL_KEYSTORE_FILE_PATH" />
-            <transfer operation="delete" delete-key="SSL_KEYSTORE_PASSWORD" />
-            <transfer operation="delete" delete-key="SSL_TRUSTSTORE_FILE_PATH" />
-            <transfer operation="delete" delete-key="SSL_TRUSTSTORE_PASSWORD" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.IS_ENABLED" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINATION_DIRECTORY" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.IS_ENABLED" />
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_DIRECTORY" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.USER_NAME" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.PASSWORD" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.FLAVOUR" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.DATABASE_NAME" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.HOSTNAME" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hbase_master_delete_old_ranger_properties"/>
         </pre-upgrade>
 
         <upgrade>
@@ -790,11 +527,7 @@
     <service name="TEZ">
       <component name="TEZ_CLIENT">
         <pre-upgrade>
-          <task xsi:type="configure">
-            <type>tez-site</type>
-            <set key="tez.am.view-acls" value="*"/>
-            <set key="tez.task.generate.counters.per.io" value="true"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_tez_client_adjust_properties"/>
         </pre-upgrade>
         <upgrade>
           <task xsi:type="restart-task" />
@@ -832,118 +565,19 @@
             <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">
-            <condition type="hive-site" key="hive.server2.transport.mode" value="binary">
-              <type>hive-site</type>
-              <key>hive.server2.thrift.port</key>
-              <value>10010</value>
-            </condition>
-            <condition type="hive-site" key="hive.server2.transport.mode" value="http">
-              <type>hive-site</type>
-              <key>hive.server2.http.port</key>
-              <value>10011</value>
-            </condition>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hive_server_set_transport_modes"/>
           
-          <task xsi:type="configure" summary="Update Hive Authentication Manager">
-            <type>hiveserver2-site</type>
-            <replace key="hive.security.authorization.manager" find="com.xasecure.authorization.hive.authorizer.XaSecureHiveAuthorizerFactory" replace-with="org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hive_server_replace_auth_manager"/>
 
-          <task xsi:type="configure" summary="Configuring hive authentication">
-            <type>hive-site</type>
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.url" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.baseDN" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.pam.services" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
-            <transfer operation="delete" delete-key="hive.server2.custom.authentication.class" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.keytab" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.principal" if-key="hive.server2.authentication" if-type="hive-site" if-value="NONE"/>
-
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.keytab" if-key="hive.server2.authentication" if-type="hive-site" if-value="ldap"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.principal" if-key="hive.server2.authentication" if-type="hive-site" if-value="ldap"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.pam.services" if-key="hive.server2.authentication" if-type="hive-site" if-value="ldap"/>
-            <transfer operation="delete" delete-key="hive.server2.custom.authentication.class" if-key="hive.server2.authentication" if-type="hive-site" if-value="ldap"/>
-
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.url" if-key="hive.server2.authentication" if-type="hive-site" if-value="kerberos"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.baseDN" if-key="hive.server2.authentication" if-type="hive-site" if-value="kerberos"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.pam.services" if-key="hive.server2.authentication" if-type="hive-site" if-value="kerberos"/>
-            <transfer operation="delete" delete-key="hive.server2.custom.authentication.class" if-key="hive.server2.authentication" if-type="hive-site" if-value="kerberos"/>
-
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.url" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.baseDN" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
-            <transfer operation="delete" delete-key="hive.server2.custom.authentication.class" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.keytab" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.principal" if-key="hive.server2.authentication" if-type="hive-site" if-value="pam"/>
-
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.url" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.ldap.baseDN" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.pam.services" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.keytab" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
-            <transfer operation="delete" delete-key="hive.server2.authentication.kerberos.principal" if-key="hive.server2.authentication" if-type="hive-site" if-value="custom"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hive_server_configure_authentification"/>
 
-          <task xsi:type="configure" summary="Configuring Ranger Hive Policy">
-            <type>ranger-hive-policymgr-ssl</type>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="SSL_KEYSTORE_FILE_PATH" to-key="xasecure.policymgr.clientssl.keystore" default-value="/usr/hdp/current/hive-server2/conf/ranger-plugin-keystore.jks"/>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="SSL_KEYSTORE_PASSWORD" to-key="xasecure.policymgr.clientssl.keystore.password" default-value="myKeyFilePassword" mask="true"/>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="SSL_TRUSTSTORE_FILE_PATH" to-key="xasecure.policymgr.clientssl.truststore" default-value="/usr/hdp/current/hive-server2/conf/ranger-plugin-truststore.jks"/>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="SSL_TRUSTSTORE_PASSWORD" to-key="xasecure.policymgr.clientssl.truststore.password" default-value="changeit" mask="true"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hive_server_configure_ranger_policy"/>
 
-          <task xsi:type="configure" summary="Configuring Ranger Hive Security">
-            <type>ranger-hive-security</type>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="UPDATE_XAPOLICIES_ON_GRANT_REVOKE" to-key="xasecure.hive.update.xapolicies.on.grant.revoke" default-value="true"/>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="POLICY_MGR_URL" to-key="ranger.plugin.hive.policy.rest.url" default-value="{{policymgr_mgr_url}}"/>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="REPOSITORY_NAME" to-key="ranger.plugin.hive.service.name" default-value="{{repo_name}}"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hive_server_configure_ranger_security"/>
 
-          <task xsi:type="configure" summary="Configuring Ranger Hive Audit">
-            <type>ranger-hive-audit</type>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="XAAUDIT.DB.IS_ENABLED" to-key="xasecure.audit.destination.db" default-value="true"/>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="XAAUDIT.HDFS.DESTINATION_DIRECTORY" to-key="xasecure.audit.destination.hdfs.dir" default-value="hdfs://NAMENODE_HOSTNAME:8020/ranger/audit"/>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="XAAUDIT.HDFS.IS_ENABLED" to-key="xasecure.audit.destination.hdfs" default-value="true"/>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_DIRECTORY" to-key="xasecure.audit.destination.hdfs.batch.filespool.dir" default-value="/var/log/hive/audit/hdfs/spool"/>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="XAAUDIT.DB.USER_NAME" to-key="xasecure.audit.destination.db.user" default-value=""/>
-            <transfer operation="copy" from-type="ranger-hive-plugin-properties" from-key="XAAUDIT.DB.PASSWORD" to-key="xasecure.audit.destination.db.password" default-value="" mask="true"/>
-            <set key="xasecure.audit.credential.provider.file" value="jceks://file{{credential_file}}"/>
-            <set key="xasecure.audit.destination.solr" value="false"/>
-            <set key="xasecure.audit.destination.solr.urls" value="{{ranger_audit_solr_urls}}"/>
-            <set key="xasecure.audit.destination.solr.zookeepers" value="none"/>
-            <set key="xasecure.audit.destination.solr.batch.filespool.dir" value="/var/log/hive/audit/solr/spool"/>
-            <set key="xasecure.audit.destination.db.jdbc.driver" value="{{jdbc_driver}}"/>
-            <set key="xasecure.audit.destination.db.jdbc.url" value="{{audit_jdbc_url}}"/>
-            <set key="xasecure.audit.provider.summary.enabled" value="false"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hive_server_configure_ranger_audit"/>
 
-          <task xsi:type="configure" summary="Removing Deprecated Ranger Hive Plugin Configurations">
-            <type>ranger-hive-plugin-properties</type>
-            <transfer operation="delete" delete-key="SSL_KEYSTORE_FILE_PATH"/>
-            <transfer operation="delete" delete-key="SSL_KEYSTORE_PASSWORD"/>
-            <transfer operation="delete" delete-key="SSL_TRUSTSTORE_FILE_PATH"/>
-            <transfer operation="delete" delete-key="SSL_TRUSTSTORE_PASSWORD"/>
-            <transfer operation="delete" delete-key="POLICY_MGR_URL"/>
-            <transfer operation="delete" delete-key="REPOSITORY_NAME"/>
-            <transfer operation="delete" delete-key="UPDATE_XAPOLICIES_ON_GRANT_REVOKE"/>
-            <transfer operation="delete" delete-key="XAAUDIT.DB.IS_ENABLED"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINATION_DIRECTORY"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.IS_ENABLED"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_DIRECTORY"/>
-            <transfer operation="delete" delete-key="XAAUDIT.DB.USER_NAME"/>
-            <transfer operation="delete" delete-key="XAAUDIT.DB.PASSWORD"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_FILE"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_FLUSH_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_OPEN_RETRY_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_ROLLOVER_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_MAX_FILE_COUNT"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_DIRECTORY"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_FILE"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_FLUSH_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_ROLLOVER_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="SQL_CONNECTOR_JAR" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.FLAVOUR" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.DATABASE_NAME" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.HOSTNAME" />            
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hive_server_remove_deprecated_ranger_properties"/>
         </pre-upgrade>
 
         <pre-downgrade>
@@ -952,18 +586,7 @@
             <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">
-            <condition type="hive-site" key="hive.server2.transport.mode" value="binary">
-              <type>hive-site</type>
-              <key>hive.server2.thrift.port</key>
-              <value>10000</value>
-            </condition>
-            <condition type="hive-site" key="hive.server2.transport.mode" value="http">
-              <type>hive-site</type>
-              <key>hive.server2.http.port</key>
-              <value>10001</value>
-            </condition>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_hive_server_restore_transport_mode_on_downgrade"/>
         </pre-downgrade>
 
         <upgrade>
@@ -973,19 +596,9 @@
 
       <component name="WEBHCAT_SERVER">
         <pre-upgrade>
-          <task xsi:type="configure">
-            <type>webhcat-env</type>
-            <replace key="content" find="export HADOOP_HOME={{hadoop_home}}" replace-with="export HADOOP_HOME=${HADOOP_HOME:-{{hadoop_home}}}" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_webhcat_server_update_env"/>
 
-          <task xsi:type="configure" summary="Updating Configuration Paths">
-            <type>webhcat-site</type>
-            <replace key="templeton.jar" find="/usr/hdp/current/hive-webhcat" replace-with="/usr/hdp/${hdp.version}/hive"/>
-            <replace key="templeton.libjars" find="/usr/hdp/current/zookeeper-client" replace-with="/usr/hdp/${hdp.version}/zookeeper"/>
-            <replace key="templeton.hadoop" find="/usr/hdp/current/hadoop-client" replace-with="/usr/hdp/${hdp.version}/hadoop"/>
-            <replace key="templeton.hcat" find="/usr/hdp/current/hive-client" replace-with="/usr/hdp/${hdp.version}/hive"/>
-            <set key="templeton.hive.extra.files" value="/usr/hdp/${hdp.version}/tez/conf/tez-site.xml,/usr/hdp/${hdp.version}/tez,/usr/hdp/${hdp.version}/tez/lib"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_webhcat_server_update_configuration_paths"/>
         </pre-upgrade>
 
         <upgrade>
@@ -1030,36 +643,7 @@
     <service name="OOZIE">
       <component name="OOZIE_SERVER">
         <pre-upgrade>
-          <task xsi:type="configure">
-            <summary>Updating oozie-site to remove redundant configurations</summary>
-            <type>oozie-site</type>
-            <transfer operation="delete" delete-key="*" preserve-edits="true">
-              <keep-key>oozie.base.url</keep-key>
-              <keep-key>oozie.services.ext</keep-key>
-              <keep-key>oozie.db.schema.name</keep-key>
-              <keep-key>oozie.service.JPAService.jdbc.username</keep-key>
-              <keep-key>oozie.service.JPAService.jdbc.password</keep-key>
-              <keep-key>oozie.service.JPAService.jdbc.driver</keep-key>
-              <keep-key>oozie.service.JPAService.jdbc.url</keep-key>
-              <keep-key>oozie.service.AuthorizationService.security.enabled</keep-key>
-              <keep-key>oozie.authentication.type</keep-key>
-              <keep-key>oozie.authentication.simple.anonymous.allowed</keep-key>
-              <keep-key>oozie.authentication.kerberos.name.rules</keep-key>
-              <keep-key>oozie.service.HadoopAccessorService.hadoop.configurations</keep-key>
-              <keep-key>oozie.service.HadoopAccessorService.kerberos.enabled</keep-key>
-              <keep-key>oozie.service.URIHandlerService.uri.handlers</keep-key>
-
-              <!-- required by Falcon and should be preserved -->
-              <keep-key>oozie.service.ELService.ext.functions.coord-job-submit-instances</keep-key>
-              <keep-key>oozie.service.ELService.ext.functions.coord-action-create-inst</keep-key>
-              <keep-key>oozie.service.ELService.ext.functions.coord-action-create</keep-key>
-              <keep-key>oozie.service.ELService.ext.functions.coord-job-submit-data</keep-key>
-              <keep-key>oozie.service.ELService.ext.functions.coord-action-start</keep-key>
-              <keep-key>oozie.service.ELService.ext.functions.coord-sla-submit</keep-key>
-              <keep-key>oozie.service.ELService.ext.functions.coord-sla-create</keep-key>
-            </transfer>
-            <set key="oozie.credentials.credentialclasses" value="hcat=org.apache.oozie.action.hadoop.HCatCredentials,hive2=org.apache.oozie.action.hadoop.Hive2Credentials" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_oozie_remove_redundant_configurations"/>
 
           <task xsi:type="execute" hosts="all" summary="Shut down all Oozie servers">
             <script>scripts/oozie_server.py</script>
@@ -1121,60 +705,11 @@
       <component name="KNOX_GATEWAY">
         <pre-downgrade /> <!--  no-op to prevent config changes on downgrade -->
         <pre-upgrade>
-          <task xsi:type="configure" summary="Configuring Ranger Knox Policy">
-            <type>ranger-knox-policymgr-ssl</type>
-            <transfer operation="copy" from-type="ranger-knox-plugin-properties" from-key="SSL_KEYSTORE_FILE_PATH" to-key="xasecure.policymgr.clientssl.keystore" default-value="/usr/hdp/current/knox-server/conf/ranger-plugin-keystore.jks"/>
-            <transfer operation="copy" from-type="ranger-knox-plugin-properties" from-key="SSL_KEYSTORE_PASSWORD" to-key="xasecure.policymgr.clientssl.keystore.password" default-value="myKeyFilePassword" mask="true"/>
-            <transfer operation="copy" from-type="ranger-knox-plugin-properties" from-key="SSL_TRUSTSTORE_FILE_PATH" to-key="xasecure.policymgr.clientssl.truststore" default-value="/usr/hdp/current/knox-server/conf/ranger-plugin-truststore.jks"/>
-            <transfer operation="copy" from-type="ranger-knox-plugin-properties" from-key="SSL_TRUSTSTORE_PASSWORD" to-key="xasecure.policymgr.clientssl.truststore.password" default-value="changeit" mask="true"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_knox_configure_ranger_policy"/>
 
-          <task xsi:type="configure" summary="Configuring Ranger Knox Audit">
-            <type>ranger-knox-audit</type>
-            <transfer operation="copy" from-type="ranger-knox-plugin-properties" from-key="XAAUDIT.DB.IS_ENABLED" to-key="xasecure.audit.destination.db" default-value="true"/>
-            <transfer operation="copy" from-type="ranger-knox-plugin-properties" from-key="XAAUDIT.HDFS.DESTINATION_DIRECTORY" to-key="xasecure.audit.destination.hdfs.dir" default-value="hdfs://NAMENODE_HOSTNAME:8020/ranger/audit"/>
-            <transfer operation="copy" from-type="ranger-knox-plugin-properties" from-key="XAAUDIT.HDFS.IS_ENABLED" to-key="xasecure.audit.destination.hdfs" default-value="true"/>
-            <transfer operation="copy" from-type="ranger-knox-plugin-properties" from-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_DIRECTORY" to-key="xasecure.audit.destination.hdfs.batch.filespool.dir" default-value="/var/log/knox/audit/hdfs/spool"/>
-            <transfer operation="copy" from-type="ranger-knox-plugin-properties" from-key="XAAUDIT.DB.USER_NAME" to-key="xasecure.audit.destination.db.user" default-value=""/>
-            <transfer operation="copy" from-type="ranger-knox-plugin-properties" from-key="XAAUDIT.DB.PASSWORD" to-key="xasecure.audit.destination.db.passwordr" default-value="" mask="true"/>
-            <set key="xasecure.audit.credential.provider.file" value="jceks://file{{credential_file}}"/>
-            <set key="xasecure.audit.destination.solr" value="false"/>
-            <set key="xasecure.audit.destination.solr.urls" value="{{ranger_audit_solr_urls}}"/>
-            <set key="xasecure.audit.destination.solr.zookeepers" value="none"/>
-            <set key="xasecure.audit.destination.solr.batch.filespool.dir" value="/var/log/knox/audit/solr/spool"/>
-            <set key="xasecure.audit.destination.db.jdbc.driver" value="{{jdbc_driver}}"/>
-            <set key="xasecure.audit.destination.db.jdbc.url" value="{{audit_jdbc_url}}"/>
-            <set key="xasecure.audit.provider.summary.enabled" value="false"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_knox_configure_ranger_knox_audit"/>
 
-          <task xsi:type="configure" summary="Removing Deprecated Ranger Knox Plugin Configurations">
-            <type>ranger-knox-plugin-properties</type>
-            <transfer operation="delete" delete-key="SSL_KEYSTORE_FILE_PATH"/>
-            <transfer operation="delete" delete-key="SSL_KEYSTORE_PASSWORD"/>
-            <transfer operation="delete" delete-key="SSL_TRUSTSTORE_FILE_PATH"/>
-            <transfer operation="delete" delete-key="SSL_TRUSTSTORE_PASSWORD"/>
-            <transfer operation="delete" delete-key="XAAUDIT.DB.IS_ENABLED"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINATION_DIRECTORY"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.IS_ENABLED"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_DIRECTORY"/>
-            <transfer operation="delete" delete-key="XAAUDIT.DB.USER_NAME"/>
-            <transfer operation="delete" delete-key="XAAUDIT.DB.PASSWORD"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_FILE"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_FLUSH_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_OPEN_RETRY_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_ROLLOVER_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_MAX_FILE_COUNT"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_DIRECTORY"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_FILE"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_FLUSH_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_ROLLOVER_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="SQL_CONNECTOR_JAR" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.FLAVOUR" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.DATABASE_NAME" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.HOSTNAME" />
-            <transfer operation="delete" delete-key="REPOSITORY_NAME" />
-            <transfer operation="delete" delete-key="POLICY_MGR_URL" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_knox_remove_deprecated_ranger_properties"/>
         </pre-upgrade>
         <upgrade>
           <task xsi:type="restart-task" />
@@ -1215,73 +750,15 @@
             <function>delete_storm_local_data</function>
           </task>
 
-          <task xsi:type="configure" summary="Converting nimbus.host into nimbus.seeds">
-            <type>storm-site</type>
-            <transfer operation="copy" from-key="nimbus.host" to-key="nimbus.seeds" coerce-to="yaml-array"/>
-            <transfer operation="delete" delete-key="nimbus.host"/>
-            <replace key="nimbus.authorizer" find="com.xasecure.authorization.storm.authorizer.XaSecureStormAuthorizer" replace-with="org.apache.ranger.authorization.storm.authorizer.RangerStormAuthorizer" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_nimbus_convert_nimbus_host_to_seeds"/>
 
-          <task xsi:type="configure" summary="Updating Storm home and configuration environment variables">
-            <type>storm-env</type>
-            <replace key="content" find="# export STORM_CONF_DIR=&quot;&quot;" replace-with="export STORM_CONF_DIR={{conf_dir}}"/>
-            <replace key="content" find="export STORM_HOME=/usr/hdp/current/storm-client" replace-with="export STORM_HOME={{storm_component_home_dir}}"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_nimbus_update_env_vars"/>
 
-          <task xsi:type="configure" summary="Configuring Ranger Storm Policy">
-            <type>ranger-storm-policymgr-ssl</type>
-            <transfer operation="copy" from-type="ranger-storm-plugin-properties" from-key="SSL_KEYSTORE_FILE_PATH" to-key="xasecure.policymgr.clientssl.keystore" default-value="/usr/hdp/current/storm-client/conf/ranger-plugin-keystore.jks"/>
-            <transfer operation="copy" from-type="ranger-storm-plugin-properties" from-key="SSL_KEYSTORE_PASSWORD" to-key="xasecure.policymgr.clientssl.keystore.password" default-value="myKeyFilePassword" mask="true"/>
-            <transfer operation="copy" from-type="ranger-storm-plugin-properties" from-key="SSL_TRUSTSTORE_FILE_PATH" to-key="xasecure.policymgr.clientssl.truststore" default-value="/usr/hdp/current/storm-client/conf/ranger-plugin-truststore.jks"/>
-            <transfer operation="copy" from-type="ranger-storm-plugin-properties" from-key="SSL_TRUSTSTORE_PASSWORD" to-key="xasecure.policymgr.clientssl.truststore.password" default-value="changeit" mask="true"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_nimbus_configure_ranger_policy"/>
 
-          <task xsi:type="configure" summary="Configuring Ranger Storm Audit">
-            <type>ranger-storm-audit</type>
-            <transfer operation="copy" from-type="ranger-storm-plugin-properties" from-key="XAAUDIT.DB.IS_ENABLED" to-key="xasecure.audit.destination.db" default-value="true" />
-            <transfer operation="copy" from-type="ranger-storm-plugin-properties" from-key="XAAUDIT.HDFS.DESTINATION_DIRECTORY" to-key="xasecure.audit.destination.hdfs.dir" default-value="hdfs://NAMENODE_HOSTNAME:8020/ranger/audit" />
-            <transfer operation="copy" from-type="ranger-storm-plugin-properties" from-key="XAAUDIT.HDFS.IS_ENABLED" to-key="xasecure.audit.destination.hdfs" default-value="true" />
-            <transfer operation="copy" from-type="ranger-storm-plugin-properties" from-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_DIRECTORY" to-key="xasecure.audit.destination.hdfs.batch.filespool.dir" default-value="/var/log/storm/audit/hdfs/spool" />
-            <transfer operation="copy" from-type="ranger-storm-plugin-properties" from-key="XAAUDIT.DB.USER_NAME" to-key="xasecure.audit.destination.db.user" default-value=""/>
-            <transfer operation="copy" from-type="ranger-storm-plugin-properties" from-key="XAAUDIT.DB.PASSWORD" to-key="xasecure.audit.destination.db.passwordr" default-value="" mask="true"/>
-            <set key="xasecure.audit.credential.provider.file" value="jceks://file{{credential_file}}"/>
-            <set key="xasecure.audit.destination.solr" value="false"/>
-            <set key="xasecure.audit.destination.solr.urls" value="{{ranger_audit_solr_urls}}"/>
-            <set key="xasecure.audit.destination.solr.zookeepers" value="none"/>
-            <set key="xasecure.audit.destination.solr.batch.filespool.dir" value="/var/log/storm/audit/solr/spool"/>
-            <set key="xasecure.audit.destination.db.jdbc.driver" value="{{jdbc_driver}}"/>
-            <set key="xasecure.audit.destination.db.jdbc.url" value="{{audit_jdbc_url}}"/>
-            <set key="xasecure.audit.provider.summary.enabled" value="false"/>
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_nimbus_configure_ranger_audit"/>
 
-          <task xsi:type="configure" summary="Removing Deprecated Ranger Storm Plugin Configurations">
-            <type>ranger-storm-plugin-properties</type>
-            <transfer operation="delete" delete-key="SSL_KEYSTORE_FILE_PATH"/>
-            <transfer operation="delete" delete-key="SSL_KEYSTORE_PASSWORD"/>
-            <transfer operation="delete" delete-key="SSL_TRUSTSTORE_FILE_PATH"/>
-            <transfer operation="delete" delete-key="SSL_TRUSTSTORE_PASSWORD"/>
-            <transfer operation="delete" delete-key="XAAUDIT.DB.IS_ENABLED"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINATION_DIRECTORY"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.IS_ENABLED"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_DIRECTORY"/>
-            <transfer operation="delete" delete-key="XAAUDIT.DB.USER_NAME"/>
-            <transfer operation="delete" delete-key="XAAUDIT.DB.PASSWORD"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_FILE"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_FLUSH_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_OPEN_RETRY_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.DESTINTATION_ROLLOVER_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_ARCHIVE_MAX_FILE_COUNT"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_DIRECTORY"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_FILE"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_FLUSH_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="XAAUDIT.HDFS.LOCAL_BUFFER_ROLLOVER_INTERVAL_SECONDS"/>
-            <transfer operation="delete" delete-key="SQL_CONNECTOR_JAR" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.FLAVOUR" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.DATABASE_NAME" />
-            <transfer operation="delete" delete-key="XAAUDIT.DB.HOSTNAME" />
-            <transfer operation="delete" delete-key="REPOSITORY_NAME" />
-            <transfer operation="delete" delete-key="POLICY_MGR_URL" />
-          </task>
+          <task xsi:type="configure" id="hdp_2_3_0_0_nimbus_remove_deprecated_ranger_properties"/>
         </pre-upgrade>
         <upgrade>
           <task xsi:type="restart-task" />