新版控制台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。