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)

Reply via email to