新版控制台EMR DataLake集群(EMR-5.8.0及以上版本和EMR-3.42.0及以上版本)不再包含Hue组件。本文为您介绍如何通过root用户在EMR DataLake集群中安装、构建和访问Hue组件。
前提条件
已创建DataLake集群,详情请参见创建集群。
使用限制
Master节点组已开启挂载公网开关。
操作步骤
登录集群Master节点,详情请参见登录集群。
从Hue的官方Git仓库下载hue-release包,上传到登录节点并执行以下命令解压缩。
cd $hue_dir tar zxf hue-release-4.10.0.tar.gz
$hue_dir
为hue包上传目录,本示例中$hue_dir
为/tmp/。执行以下命令,安装依赖包。
sudo yum -y install ant asciidoc cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain gcc gcc-c++ krb5-devel libffi-devel libxml2-devel libxslt-devel make mysql-devel openldap-devel python3-devel sqlite-devel gmp-devel rsync mysql-devel sudo yum -y install nodejs npm sudo yum -y install git
创建数据库并修改Hue相关配置连接MySQL。
执行以下命令,登录MySQL Shell。
mysql -u root -pEMRroot1234
说明内置MySQL登录的用户名为root,密码为EMRroot1234。
执行以下命令,创建hue数据库和hue账号,并将数据库所有权限赋予hue。
CREATE DATABASE IF NOT EXISTS hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci; CREATE USER 'hue'@'localhost' IDENTIFIED BY '******'; GRANT ALL on hue.* to 'hue'@'localhost' IDENTIFIED BY '******'; FLUSH PRIVILEGES;
说明示例中的
******
为新增hue账号的密码,请您自行修改。进入
$hue_dir/hue-release-4.10.0/desktop/conf
目录,将pseudo-distributed.ini.tmpl复制为pseudo-distributed.ini,并按实际需求修改pseudo-distributed.ini中相应配置本示例中需要修改[desktop]和[[database]]下的配置。[desktop] gunicorn_work_class=sync [[database]] # Database engine is typically one of: # postgresql_psycopg2, mysql, sqlite3 or oracle. # # Note that for sqlite3, 'name', below is a path to the filename. For other backends, it is the database name # Note for Oracle, options={"threaded":true} must be set in order to avoid crashes. # Note for Oracle, you can use the Oracle Service Name by setting "host=" and "port=" and then "name=<host>:<port>/<service_name>". # Note for MariaDB use the 'mysql' engine. engine=mysql host=localhost port=3306 user=hue password=****** # conn_max_age option to make database connection persistent value in seconds # https://docs.djangoproject.com/en/1.11/ref/databases/#persistent-connections ## conn_max_age=0 # Execute this script to produce the database password. This will be used when 'password' is not set. ## password_script=/path/script name=hue ## options={} # Database schema, to be used only when public schema is revoked in postgres ## schema=public
参数
说明
gunicorn_work_class
修改参数为sync。
engine
数据库引擎,本示例为mysql。
host
访问数据库的主机名,MySQL中默认值为localhost。
port
与数据库通信的端口号,MySQL中默认值为3306。
user
为前一步骤中创建的用户名。本示例为hue。
password
为前一步骤中新增hue账号的密码,本示例为******。
name
为前一步骤中创建的数据库名称。本示例为hue。
执行以下命令设置环境变量。
export PYTHON_VER=python3.6 export SKIP_PYTHONDEV_CHECK=true
说明本文示例使用Master节点上自带的Python 3.6版本构建Hue,但具体的Python版本需要根据实际情况进行设置。
下载依赖包并安装Hue。如果节点能够稳定访问GitHub,可以选择自动下载安装;否则请手动下载安装。
自动下载安装
进入Hue根目录执行以下命令安装Hue,自动下载安装过程中需要访问GitHub并下载相应依赖包。
构建流程完成后hue将被安装在/opt/apps/目录下。
rm -rf $hue_dir/hue-release-4.10.0/desktop/core/ext-py/ rm -rf /opt/apps/hue cd $hue_dir/hue-release-4.10.0/ PREFIX=/opt/apps make install
说明如果节点无法稳定访问GitHub,可能会导致安装失败。这种情况下,建议手动下载所需软件包并进行安装。
手动下载安装
修改$hue_dir/hue-release-4.10.0/desktop/core/requirements.txt的最后2行取消github相关依赖自动下载,修改前后内容如下所示。
# 修改前内容 # git+https://github.com/gethue/django-babel.git # git+https://github.com/gethue/django-mako.git # 修改后内容 django-babel django-mako
进入Hue根目录($hue_dir/hue-release-4.10.0/)执行以下命令安装Hue。构建流程完成后hue将被安装在/opt/apps/目录下。
rm -rf desktop/core/ext-py/ rm -rf /opt/apps/hue PREFIX=/opt/apps make install
从Hue的官方Git仓库下载django-mako和django-babel源码,上传到hue包所在节点并在上传目录下执行以下命令解压缩。
unzip django-babel-master.zip unzip django-mako-master.zip
本示例上传到master节点的根目录/tmp/下,解压缩后的目录为/tmp/django-babel-master和/tmp/django-mako-master。
分别在django-babel和django-mako解压缩后的根目录下执行以下命令,安装django-mako和django-babel。
source /opt/apps/hue/build/env/bin/activate pip install -e .
执行以下命令,启动Hue服务并使用hue。
source /opt/apps/hue/build/env/bin/activate sudo useradd hue supervisor
您可以执行以下命令,添加superuser,并使用superuser登录Hue UI。
source /opt/apps/hue/build/env/bin/activate hue createsuperuser #会触发交互式命令行,用于输入superuser用户名和密码。
在浏览器地址栏中输入
http://<Master节点公网的IP地址>:8000
,即可访问Hue UI。说明本示例仅包含Hue基础配置,若需要使用Hue其余功能请在查看Hue配置信息后,修改/opt/apps/hue/desktop/conf/pseudo-distributed.ini配置文件并重启Hue服务。
相关文档
HUE官方运维文档:ADMINISTRATOR。