解决Cloudera-Manager搭建CDH集群时hue数据库连接失败问题(二)

这个问题最常见的现象就是如下:

解决Cloudera-Manager搭建CDH集群时hue数据库连接失败问题(二)

在查看${CM_HOME}/log/cloudera-scm-server/cloudera-scm-server.log日志文件时,给出如下错误:

[21/Feb/2019 15:21:36 +0000] settings     DEBUG    DESKTOP_DB_TEST_NAME SET: /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/desktop/desktop-test.db
[21/Feb/2019 15:21:36 +0000] settings     DEBUG    DESKTOP_DB_TEST_USER SET: hue_test

/usr/cloudera-manager/cm-5.9.0/cm-5.9.0/run/cloudera-scm-agent/process/54-HUE-test-db-connection/altscript.sh: line 12: /usr/java/jdk1.8.0_191/bin/java: Permission denied
/usr/cloudera-manager/cm-5.9.0/cm-5.9.0/run/cloudera-scm-agent/process/54-HUE-test-db-connection/altscript.sh: line 12: exec: /usr/java/jdk1.8.0_191/bin/java: cannot execute: Permission denied

Traceback (most recent call last):
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/build/env/bin/hue", line 12, in <module>
    load_entry_point('desktop==3.9.0', 'console_scripts', 'hue')()
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/desktop/core/src/desktop/manage_entry.py", line 59, in entry
    execute_from_command_line(sys.argv)
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/core/management/__init__.py", line 399, in execute_from_command_line
    utility.execute()
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/core/management/__init__.py", line 261, in fetch_command
    commands = get_commands()
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/core/management/__init__.py", line 107, in get_commands
    apps = settings.INSTALLED_APPS
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/conf/__init__.py", line 54, in __getattr__
    self._setup(name)
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/conf/__init__.py", line 49, in _setup
    self._wrapped = Settings(settings_module)
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/conf/__init__.py", line 128, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/build/env/lib/python2.7/site-packages/Django-1.6.10-py2.7.egg/django/utils/importlib.py", line 40, in import_module
    __import__(name)
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/desktop/core/src/desktop/settings.py", line 328, in <module>
    "PASSWORD" : desktop.conf.get_database_password(),
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/desktop/core/src/desktop/conf.py", line 1278, in get_database_password
    password = DATABASE.PASSWORD_SCRIPT.get()
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/desktop/core/src/desktop/lib/conf.py", line 147, in get
    return self.config.get_value(data, present=present, prefix=self.prefix, coerce_type=True)
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/desktop/core/src/desktop/lib/conf.py", line 263, in get_value
    return self._coerce_type(raw_val, prefix)
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/desktop/core/src/desktop/lib/conf.py", line 283, in _coerce_type
    return self.type(raw)
  File "/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hue/desktop/core/src/desktop/lib/conf.py", line 712, in coerce_password_from_script
    raise subprocess.CalledProcessError(p.returncode, script)

subprocess.CalledProcessError: Command '/usr/cloudera-manager/cm-5.9.0/cm-5.9.0/run/cloudera-scm-agent/process/54-HUE-test-db-connection/altscript.sh sec-2-password' returned non-zero exit status 126

可以看到这个exec: /usr/java/jdk1.8.0_191/bin/java: cannot execute: Permission denied 主要是因为java命令的执行权限不够导致的,在网上搜索这个问题时,很多都说把$JAVA_HOME/bin/java 和 $JAVA_HOME/bin/javac这两个命令的权限设成777 ,试过了但是没有用,后来在一个国外的网址https://community.hortonworks.com/content/supportkb/151759/errorusrhdp2603-8hadoop-hdfsbinhdfsdistro-line-317.html, 上面说需要把$JAVA_HOME 下所有文件的权限递归修改成755才行

解决Cloudera-Manager搭建CDH集群时hue数据库连接失败问题(二)

我的jdk安装在/usr/java/jdk1.8.0_191/目录下,于是使用如下命令,在每一个节点上(包括server和agent)执行:

chmod -R  755  /usr/java/

最后就可以解决问题了。