-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33316/
-----------------------------------------------------------

(Updated April 17, 2015, 2:34 p.m.)


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 (updated)
-------

Manually tested in cluster with HDFS and Ranger using HDP 2.3.

**Jenkins test results**
Failed due to missing artifact.


Thanks,

Robert Levas

Reply via email to