全部產品
Search
文件中心

E-MapReduce:在DataLake叢集自建Hue組件

更新時間:Jul 01, 2024

新版控制台EMR DataLake叢集(EMR-5.8.0及以上版本和EMR-3.42.0及以上版本)不再包含Hue組件。本文為您介紹如何通過root使用者在EMR DataLake叢集中安裝、構建和訪問Hue組件。

前提條件

已建立DataLake叢集,詳情請參見建立叢集

使用限制

Master節點群組已開啟掛載公網開關。

操作步驟

  1. 登入叢集Master節點,詳情請參見登入叢集

  2. 從Hue的官方Git倉庫下載hue-release包,上傳到登入節點並執行以下命令解壓縮。

    cd $hue_dir
    tar zxf hue-release-4.10.0.tar.gz

    $hue_dir為hue包上傳目錄,本樣本中$hue_dir/tmp/

  3. 執行以下命令,安裝依賴包。

    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
  4. 建立資料庫並修改Hue相關配置串連MySQL。

    1. 執行以下命令,登入MySQL Shell。

      mysql -u root -pEMRroot1234
      說明

      內建MySQL登入的使用者名稱為root,密碼為EMRroot1234。

    2. 執行以下命令,建立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帳號的密碼,請您自行修改。

    3. 進入$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。

  5. 執行以下命令設定環境變數。

    export PYTHON_VER=python3.6
    export SKIP_PYTHONDEV_CHECK=true
    說明

    本文樣本使用Master節點上內建的Python 3.6版本構建Hue,但具體的Python版本需要根據實際情況進行設定。

  6. 下載依賴包並安裝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,可能會導致安裝失敗。這種情況下,建議手動下載所需軟體包並進行安裝。

    手動下載安裝

    1. 修改$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
    2. 進入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
    3. 從Hue的官方Git倉庫下載django-makodjango-babel源碼,上傳到hue包所在節點並在上傳目錄下執行以下命令解壓縮。

      unzip django-babel-master.zip
      unzip django-mako-master.zip

      本樣本上傳到master節點的根目錄/tmp/下,解壓縮後的目錄為/tmp/django-babel-master/tmp/django-mako-master

    4. 分別在django-babel和django-mako解壓縮後的根目錄下執行以下命令,安裝django-mako和django-babel。

      source /opt/apps/hue/build/env/bin/activate
      pip install -e .
  7. 執行以下命令,啟動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使用者名稱和密碼。
  8. 在瀏覽器地址欄中輸入http://<Master節點公網的IP地址>:8000,即可訪問Hue UI。

    說明

    本樣本僅包含Hue基礎配置,若需要使用Hue其餘功能請在查看Hue配置資訊後,修改/opt/apps/hue/desktop/conf/pseudo-distributed.ini設定檔並重啟Hue服務。

相關文檔

HUE官方營運文檔:ADMINISTRATOR