瀏覽代碼

AMBARI-12399. Ambari 2.1 upgrade: Save yarn configs fails due to error from stack advisor (aonishuk)

Andrew Onishuk 10 年之前
父節點
當前提交
ac49cda911

+ 24 - 0
ambari-server/src/main/python/upgradeHelper.py

@@ -1260,6 +1260,28 @@ def get_ranger_service_details():
 
   return data
 
+def get_hive_security_authorization_setting():
+  # this pattern should be used only once, changes here mimic UpgradeCatalog210.java -> updateRangerHiveConfigs
+  response = "None"
+  old_ranger_catalog = "ranger-hive-plugin-properties"
+  old_ranger_setting = "ranger-hive-plugin-enabled"
+  hive_server_catalog = "hiveserver2-site"
+  hive_sec_property = "hive.security.authorization.enabled"
+
+  scf = Options.server_config_factory
+  if scf is not None and old_ranger_catalog in scf.items():
+    cfg = scf.get_config(old_ranger_catalog)
+    prop = cfg.properties
+    if old_ranger_setting in prop and cfg.properties[old_ranger_setting].upper() == "YES":
+      response = "Ranger"
+      if hive_server_catalog in scf.items():
+         hive_props = scf.get_config(hive_server_catalog).properties
+         hive_props[hive_sec_property] = "true"
+    if old_ranger_setting in prop:
+      del prop[old_ranger_setting]
+
+  return response
+
 def _substitute_handler(upgrade_catalog, tokens, value):
   """
   Substitute handler
@@ -1275,6 +1297,8 @@ def _substitute_handler(upgrade_catalog, tokens, value):
       value = value.replace(token, get_jt_host(upgrade_catalog))
     elif token == "{ZOOKEEPER_QUORUM}":
       value = value.replace(token, get_zookeeper_quorum())
+    elif token == "{HIVE_SECURITY_AUTHORIZATION}":
+      value = value.replace(token, get_hive_security_authorization_setting())
     elif token == "{TEZ_HISTORY_URL_BASE}":
       value = value.replace(token, get_tez_history_url_base())
     elif token == "{RANGER_JDBC_DRIVER}":

+ 11 - 0
ambari-server/src/main/resources/upgrade/catalog/UpgradeCatalog_2.1_to_2.3.json

@@ -29,6 +29,10 @@
           "hive-site": {
             "merged-copy": "yes"
           },
+          "hive-env": {
+            "merged-copy": "yes",
+            "required-services": ["HIVE"]
+          },
           "oozie-site": {
             "merged-copy": "yes"
           },
@@ -47,6 +51,13 @@
         }
       },
       "properties": {
+        "hive-env": {
+          "hive_security_authorization": {
+            "value": "{HIVE_SECURITY_AUTHORIZATION}",
+            "template": "yes",
+            "override": "no"
+          }
+        },
         "falcon-startup.properties": {
           "*.application.services": "org.apache.falcon.security.AuthenticationInitializationService, org.apache.falcon.workflow.WorkflowJobEndNotificationService, org.apache.falcon.service.ProcessSubscriberService, org.apache.falcon.entity.store.ConfigurationStore, org.apache.falcon.rerun.service.RetryService, org.apache.falcon.rerun.service.LateRunService, org.apache.falcon.service.LogCleanupService",
           "*.dfs.namenode.kerberos.principal": "nn/_HOST@EXAMPLE.COM",