Browse Source

AMBARI-4961. Decommission of NodeManager failed after enabling security (Arsen Babych via dlysnichenko)

Lisnichenko Dmitro 11 years ago
parent
commit
221c8215ad

+ 10 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/package/scripts/params.py

@@ -90,6 +90,15 @@ yarn_container_bin = "/usr/lib/hadoop-yarn/bin"
 exclude_hosts = default("/clusterHostInfo/decom_nm_hosts", [])
 exclude_file_path = config['configurations']['yarn-site']['yarn.resourcemanager.nodes.exclude-path']
 
+hostname = config['hostname']
+
+if security_enabled:
+  nm_principal_name = config['configurations']['global']['nodemanager_principal_name']
+  nodemanager_keytab = config['configurations']['global']['nodemanager_keytab']
+  nodemanager_principal_name = nm_principal_name.replace('_HOST',hostname.lower())
+  nm_kinit_cmd = format("{kinit_path_local} -kt {nodemanager_keytab} {nodemanager_principal_name};")
+else:
+  nm_kinit_cmd = ""
 
 yarn_log_aggregation_enabled = config['configurations']['yarn-site']['yarn.log-aggregation-enable']
 yarn_nm_app_log_dir =  config['configurations']['yarn-site']['yarn.nodemanager.remote-app-log-dir']
@@ -113,4 +122,4 @@ HdfsDirectory = functools.partial(
   keytab = hdfs_user_keytab,
   kinit_path_local = kinit_path_local
 )
-update_exclude_file_only = config['commandParams']['update_exclude_file_only']
+update_exclude_file_only = config['commandParams']['update_exclude_file_only']

+ 2 - 2
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/package/scripts/resourcemanager.py

@@ -89,12 +89,12 @@ class Resourcemanager(Script):
     import params
 
     env.set_params(params)
-
+    nm_kinit_cmd = params.nm_kinit_cmd
     yarn_user = params.yarn_user
     conf_dir = params.config_dir
     user_group = params.user_group
 
-    yarn_refresh_cmd = format("/usr/bin/yarn --config {conf_dir} rmadmin -refreshNodes")
+    yarn_refresh_cmd = format("{nm_kinit_cmd} /usr/bin/yarn --config {conf_dir} rmadmin -refreshNodes")
 
     File(params.exclude_file_path,
          content=Template("exclude_hosts_list.j2"),