-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33316/
-----------------------------------------------------------
Review request for Ambari, Alejandro Fernandez, Andrew Onischuk, Jonathan
Hurley, and Vitalyi Brodetskyi.
Bugs: AMBARI-10550
https://issues.apache.org/jira/browse/AMBARI-10550
Repository: ambari
Description
-------
When attempting to restart the HDFS NameNode after running the Kerberos wizard
to enable Kerberos, the NameNode fails to startup.
The underlying failure in the ambari-agent appears to be:
```
"Traceback (most recent call last):
File
"/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts/namenode.py",
line 298, in <module>
NameNode().execute()
File
"/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py",
line 214, in execute
method(env)
File
"/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts/namenode.py",
line 72, in start
namenode(action="start", rolling_restart=rolling_restart, env=env)
File "/usr/lib/python2.6/site-packages/ambari_commons/os_family_impl.py",
line 89, in thunk
return fn(*args, **kwargs)
File
"/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_namenode.py",
line 38, in namenode
setup_ranger_hdfs()
File
"/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts/setup_ranger_hdfs.py",
line 66, in setup_ranger_hdfs
hdfs_repo_data = hdfs_repo_properties()
File
"/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts/setup_ranger_hdfs.py",
line 194, in hdfs_repo_properties
config_dict['dfs.datanode.kerberos.principal'] = params._dn_principal_name
AttributeError: 'module' object has no attribute '_dn_principal_name'"
```
This keeps the HDFS NameNode from starting up properly after Kerberos is
Enabled, and this seems to keep the process of Enabling Kerberos from
completing.
The problem appears to be a Python coding issue where _private_ variables
(declared with a leading underscore) are not imported from
`common-services/HDFS/2.1.0.2.0/package/scripts/params_linux.py` into
`common-services/HDFS/2.1.0.2.0/package/scripts/setup_ranger_hdfs.py`.
**Solution**
This is a basic python coding issue where _private_ variables are not imported
into the offending module -
`common-services/HDFS/2.1.0.2.0/package/scripts/setup_ranger_hdfs.py`. By
removing the underscore from the _private_ variables, the varibales become
_public_ and are then able to be imported from from
`common-services/HDFS/2.1.0.2.0/package/scripts/params_linux.py` into
`common-services/HDFS/2.1.0.2.0/package/scripts/setup_ranger_hdfs.py`.
The following variables were renamed:
Offending Name | Fixed Name
------------------ | -----------------
_dn_principal_name | dn_principal_name
_dn_keytab | dn_keytab
_dn_principal_name | dn_principal_name
_nn_principal_name | nn_principal_name
_nn_keytab | nn_keytab
_nn_principal_name | nn_principal_name
_jn_principal_name | jn_principal_name
_jn_keytab | jn_keytab
Diffs
-----
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/params_linux.py
b0e100f
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/setup_ranger_hdfs.py
9413d8e
Diff: https://reviews.apache.org/r/33316/diff/
Testing
-------
Manually tested in cluster with HDFS and Ranger using HDP 2.3.
Thanks,
Robert Levas