Alejandro Fernandez created AMBARI-9507:
-------------------------------------------
Summary: RU - Prepare Namenode fails on Ubuntu12 due to path error
with import
Key: AMBARI-9507
URL: https://issues.apache.org/jira/browse/AMBARI-9507
Project: Ambari
Issue Type: Bug
Components: ambari-server
Affects Versions: 2.0.0
Reporter: Alejandro Fernandez
Assignee: Alejandro Fernandez
Fix For: 2.0.0
Prepare namenode failed during RU on Ubuntu12, retry does not help.
{code}
2015-02-03 03:11:47,374 - Task. Type: EXECUTE, Script: scripts/namenode.py -
Function: prepare_rolling_upgrade
2015-02-03 03:11:47,395 - call['python
/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts/namenode.py
prepare_rolling_upgrade /var/lib/ambari-agent/data/command-274.json
/var/lib/ambari-agent/cache/custom_actions
/var/lib/ambari-agent/data/structured-out-274.json INFO
/var/lib/ambari-agent/data/tmp'] {}
2015-02-03 03:11:47,451 - Command: python
/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts/namenode.py
prepare_rolling_upgrade /var/lib/ambari-agent/data/command-274.json
/var/lib/ambari-agent/cache/custom_actions
/var/lib/ambari-agent/data/structured-out-274.json INFO
/var/lib/ambari-agent/data/tmp
Code: 1, Out: Traceback (most recent call last):
File
"/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts/namenode.py",
line 24, in <module>
from resource_management import *
ImportError: No module named resource_management
2015-02-03 03:11:47,452 - Error while executing command 'actionexecute':
Traceback (most recent call last):
File
"/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py",
line 184, in execute
method(env)
File
"/var/lib/ambari-agent/cache/custom_actions/scripts/ru_execute_tasks.py", line
146, in actionexecute
raise Fail(out)
Fail: Traceback (most recent call last):
File
"/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts/namenode.py",
line 24, in <module>
from resource_management import *
ImportError: No module named resource_management
{code}
Compare centos6 to ubuntu12 VM.
{code}
*Centos 6*
Uses python2.6
Sys.path:
/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts
/usr/lib64/python26.zip
/usr/lib64/python2.6
/usr/lib64/python2.6/plat-linux2
/usr/lib64/python2.6/lib-tk
/usr/lib64/python2.6/lib-old
/usr/lib64/python2.6/lib-dynload
/usr/lib64/python2.6/site-packages
/usr/lib/python2.6/site-packages (inside this there are symlinks)
Contains symlink and folder
ls -la /usr/lib/python2.6/site-packages/resource_management
/usr/lib/python2.6/site-packages/resource_management ->
/usr/lib/ambari-agent/lib/resource_management
*Ubuntu 12*
Uses python 2.7
Sys.path:
/var/lib/ambari-agent/cache/common-services/HDFS/2.1.0.2.0/package/scripts
/usr/lib/python2.7
/usr/lib/python2.7/plat-linux2
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/lib-old
/usr/lib/python2.7/lib-dynload
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages
Contains folders:
/usr/lib/ambari-agent/lib/resource_management/
/usr/lib/ambari-server/lib/resource_management/
{code}
Our ambari-agent setup script calls, export
PYTHONPATH=/usr/lib/python2.6/site-packages:$PYTHONPATH
So this has no effect on Ubuntu.
install-helper.sh has,
{code}
RESOURCE_MANAGEMENT_DIR="/usr/lib/python2.6/site-packages/resource_management"
...
if [ ! -d "$RESOURCE_MANAGEMENT_DIR" ]; then
ln -s "$RESOURCE_MANAGEMENT_DIR_AGENT" "$RESOURCE_MANAGEMENT_DIR"
fi
{code}
This is because ru_execute_task.py calls python directly, instead of the python
wrapper that appends several other directories to the PYTHONPATH environment
variable.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)