在DataLake集群自建Hue組件
新版控制臺(tái)EMR DataLake集群(EMR-5.8.0及以上版本和EMR-3.42.0及以上版本)不再包含Hue組件。本文為您介紹如何通過root用戶在EMR DataLake集群中安裝、構(gòu)建和訪問Hue組件。
前提條件
已創(chuàng)建DataLake集群,詳情請(qǐng)參見創(chuàng)建集群。
使用限制
Master節(jié)點(diǎn)組已開啟掛載公網(wǎng)開關(guān)。
操作步驟
登錄集群Master節(jié)點(diǎn),詳情請(qǐng)參見登錄集群。
從Hue的官方Git倉庫下載hue-release包,上傳到登錄節(jié)點(diǎn)并執(zhí)行以下命令解壓縮。
cd $hue_dir tar zxf hue-release-4.10.0.tar.gz
$hue_dir
為hue包上傳目錄,本示例中$hue_dir
為/tmp/。執(zhí)行以下命令,安裝依賴包。
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
創(chuàng)建數(shù)據(jù)庫并修改Hue相關(guān)配置連接MySQL。
執(zhí)行以下命令,登錄MySQL Shell。
mysql -u root -pEMRroot1234
說明內(nèi)置MySQL登錄的用戶名為root,密碼為EMRroot1234。
執(zhí)行以下命令,創(chuàng)建hue數(shù)據(jù)庫和hue賬號(hào),并將數(shù)據(jù)庫所有權(quán)限賦予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賬號(hào)的密碼,請(qǐng)您自行修改。進(jìn)入
$hue_dir/hue-release-4.10.0/desktop/conf
目錄,將pseudo-distributed.ini.tmpl復(fù)制為pseudo-distributed.ini,并按實(shí)際需求修改pseudo-distributed.ini中相應(yīng)配置本示例中需要修改[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
參數(shù)
說明
gunicorn_work_class
修改參數(shù)為sync。
engine
數(shù)據(jù)庫引擎,本示例為mysql。
host
訪問數(shù)據(jù)庫的主機(jī)名,MySQL中默認(rèn)值為localhost。
port
與數(shù)據(jù)庫通信的端口號(hào),MySQL中默認(rèn)值為3306。
user
為前一步驟中創(chuàng)建的用戶名。本示例為hue。
password
為前一步驟中新增hue賬號(hào)的密碼,本示例為******。
name
為前一步驟中創(chuàng)建的數(shù)據(jù)庫名稱。本示例為hue。
執(zhí)行以下命令設(shè)置環(huán)境變量。
export PYTHON_VER=python3.6 export SKIP_PYTHONDEV_CHECK=true
說明本文示例使用Master節(jié)點(diǎn)上自帶的Python 3.6版本構(gòu)建Hue,但具體的Python版本需要根據(jù)實(shí)際情況進(jìn)行設(shè)置。
下載依賴包并安裝Hue。如果節(jié)點(diǎn)能夠穩(wěn)定訪問GitHub,可以選擇自動(dòng)下載安裝;否則請(qǐng)手動(dòng)下載安裝。
自動(dòng)下載安裝
進(jìn)入Hue根目錄執(zhí)行以下命令安裝Hue,自動(dòng)下載安裝過程中需要訪問GitHub并下載相應(yīng)依賴包。
構(gòu)建流程完成后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
說明如果節(jié)點(diǎn)無法穩(wěn)定訪問GitHub,可能會(huì)導(dǎo)致安裝失敗。這種情況下,建議手動(dòng)下載所需軟件包并進(jìn)行安裝。
手動(dòng)下載安裝
修改$hue_dir/hue-release-4.10.0/desktop/core/requirements.txt的最后2行取消github相關(guān)依賴自動(dòng)下載,修改前后內(nèi)容如下所示。
# 修改前內(nèi)容 # git+https://github.com/gethue/django-babel.git # git+https://github.com/gethue/django-mako.git # 修改后內(nèi)容 django-babel django-mako
進(jìn)入Hue根目錄($hue_dir/hue-release-4.10.0/)執(zhí)行以下命令安裝Hue。構(gòu)建流程完成后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包所在節(jié)點(diǎn)并在上傳目錄下執(zhí)行以下命令解壓縮。
unzip django-babel-master.zip unzip django-mako-master.zip
本示例上傳到master節(jié)點(diǎn)的根目錄/tmp/下,解壓縮后的目錄為/tmp/django-babel-master和/tmp/django-mako-master。
分別在django-babel和django-mako解壓縮后的根目錄下執(zhí)行以下命令,安裝django-mako和django-babel。
source /opt/apps/hue/build/env/bin/activate pip install -e .
執(zhí)行以下命令,啟動(dòng)Hue服務(wù)并使用hue。
source /opt/apps/hue/build/env/bin/activate sudo useradd hue supervisor
您可以執(zhí)行以下命令,添加superuser,并使用superuser登錄Hue UI。
source /opt/apps/hue/build/env/bin/activate hue createsuperuser #會(huì)觸發(fā)交互式命令行,用于輸入superuser用戶名和密碼。
在瀏覽器地址欄中輸入
http://<Master節(jié)點(diǎn)公網(wǎng)的IP地址>:8000
,即可訪問Hue UI。說明本示例僅包含Hue基礎(chǔ)配置,若需要使用Hue其余功能請(qǐng)?jiān)诓榭?a class="" target="_blank" >Hue配置信息后,修改/opt/apps/hue/desktop/conf/pseudo-distributed.ini配置文件并重啟Hue服務(wù)。
相關(guān)文檔
HUE官方運(yùn)維文檔:ADMINISTRATOR。