全部產品
Search
文件中心

E-MapReduce:使用EMR-CLI自訂部署Gateway環境

更新時間:Dec 11, 2024

Gateway主要用於向計算叢集提交任務和進行安全隔離。為了方便部署Gateway環境,E-MapReduce提供了名為EMR-CLI的工具,它基於阿里雲ECS來建立執行個體並部署Gateway環境。當您建立了DataLake、DataFlow或OLAP類型的叢集時,可以使用本文檔來部署Gateway環境。

前提條件

已經在E-MapReduce中建立了業務情境為資料湖(DataLake)、即時資料流(DataFlow)或資料分析(OLAP)情境的計算叢集,且計算叢集狀態為運行中。建立叢集詳情請參見建立叢集

使用限制

  • 本文檔僅適用於資料湖叢集(DataLake)、即時資料流叢集(DataFlow)和資料分析叢集(OLAP)的Gateway環境部署。

    對於已存在的Hadoop叢集和Kafka叢集的Gateway環境部署,詳情請參見建立Gateway叢集

    說明

    如果您在2022年12月19日17點(UTC+8)以後第一次建立EMR叢集,則不能選擇Hadoop、Kafka叢集類型。

  • 請勿使用EMR叢集的ECS執行個體作為Gateway機器,以免影響計算叢集運行環境。

  • EMR-CLI在部署Gateway用戶端時採用覆蓋安裝模式。如果您已在ECS中部署了Gateway,則重新部署時會覆蓋舊的用戶端,並在同一目錄下安裝新的用戶端。

  • 目前支援該方式部署Gateway的服務有HDFS、YARN、HBase、HIVE、SPARK2、SPARK3、JINDOSDK 、FLINK 、SQOOP、IMPALA 、PRESTO 、HUDI 、ICEBERG 、TEZ和DELTALAKE。

首次部署Gateway環境

  1. 在ECS控制台建立執行個體,詳情請參見自訂購買執行個體

    說明

    建立的ECS執行個體可以不具備公網訪問能力。

    相關參數推薦如下。

    參數

    說明

    地區及可用性區域

    必須與EMR叢集所在地區和可用性區域一致。

    鏡像

    必須與EMR執行個體的系統匹配。

    系統硬碟

    推薦使用ESSD雲端硬碟,不小於60 GiB。

    網路

    必須與EMR叢集VPC一致。

    安全性群組

    必須與EMR叢集的Master執行個體組安全性群組一致,保證ECS執行個體與EMR叢集的網路互連。

  2. 構建EMR Gateway專用的ECS RAM角色。

    1. 使用Resource Access Management員登入RAM控制台

    2. 在左側導覽列,選擇身份管理 > 角色

    3. 角色頁面,單擊建立角色

    4. 建立角色面板中,選擇可信實體類型為阿里雲服務,單擊下一步

    5. 填寫角色名稱(例如ECSForEMRGatewayRole),在選擇受信服務下拉式清單中選擇雲端服務器,然後單擊完成

  3. 為RAM角色授權。

    1. 建立角色面板中,單擊為角色授權

    2. 單擊新增授權

    3. 新增授權面板中,選擇系統策略中的AliyunEMRFullAccess、AliyunOSSFullAccess和AliyunDLFFullAccess,單擊確認新增授權

      image.png

    4. 單擊關閉

  4. 授予ECS執行個體RAM角色。

    1. 登入ECS管理主控台

    2. 在左側導覽列,選擇執行個體與鏡像 > 執行個體

    3. 在頂部功能表列左上方處,選擇地區。

    4. 找到建立的ECS執行個體,選擇image > 執行個體設定 > 授予/收回RAM角色

    5. 在彈窗中,選擇ECSForEMRGatewayRole角色,單擊確定

  5. 串連ECS執行個體,詳情請參見串連ECS執行個體

  6. 執行以下命令,安裝EMR-CLI。

    regionId=`curl http://100.100.100.200/latest/meta-data/region-id`; curl https://ecm-repo-${regionId}.oss-${regionId}-internal.aliyuncs.com/emrcli/emrcli.sh -o /tmp/emrcli.sh; chmod 755 /tmp/emrcli.sh; sh /tmp/emrcli.sh install ${regionId}

    安裝成功會返回以下資訊。

    install emrcli success
  7. 執行以下命令,部署EMR Gateway用戶端。

    emrcli gateway deploy \
      --clusterId <ClusterId> \
      --appNames <ApplicationName>

    您需要根據實際情況修改以下參數。

    參數

    是否必選

    描述

    clusterId

    在EMR上已建立叢集的叢集ID。

    appNames

    應用程式名稱。有多個應用時,使用英文逗號(,)隔開,例如,HDFS,YARN

    未指定該參數時,預設為叢集所有支援的用戶端應用,例如Hive和HDFS。

    部署成功會返回以下資訊。

    deployGateway success
    重要

    Gateway安裝後,系統內容變數中的JAVA_HOME會調整為/usr/lib/jvm/java-1.8.0 。您可以在/etc/profile.d/emr_env.sh檔案中修改,但修改後可能影響Gateway功能,因此請謹慎操作。

  8. 重新登入ECS執行個體,使得系統內容變數生效。

  9. 可選:配置Gateway節點的網域名稱解析。

    重要

    Gateway包含Spark服務時須執行該步驟。

    1. 添加Zone,詳情請參見添加內建權威網域名稱

    2. 添加解析記錄,詳情請參見添加解析記錄

      涉及參數如下表所示。

      參數

      說明

      記錄類型

      使用預設的A

      主機記錄

      填寫Gateway機器的hostname。例如,iZ2zea8r0aht2vzbqci****。

      您可以通過命令hostname擷取。

      記錄值

      填寫Gateway機器的內網IP地址。

      您可以在節點管理頁面查看。

      TTL值

      使用預設值。

管理Gateway環境

Gateway建立完成後,如果Gateway關聯的計算叢集進行了服務的新增或服務配置的更改,您可以通過以下命令更新用戶端組件或同步最新配置。

更新用戶端組件

當計算叢集服務新增時,通過EMR CLI在Gateway上新增對應的用戶端。

命令和初次部署基本相同,只需在appNames參數中註明對應新增的應用程式名稱,已安裝應用不會受到影響。

emrcli gateway deploy \
  --clusterId <ClusterId> \
  --appNames <ApplicationName>

更新成功後返回以下資訊。

deployGateway success

同步EMR叢集修改後的配置

通過EMR CLI同步EMR叢集修改後的應用配置(例如core-site.xml等)到Gateway用戶端。

重要

同步配置時會覆蓋Gateway上的配置,因此請謹慎操作。

emrcli gateway refreshConfigs \
  --clusterId <ClusterId> \
  --appNames <ApplicationName>

同步成功後返回以下資訊。

refreshConfiguration success

管理EMR-CLI

查看EMR CLI版本

您可以通過以下命令來查看EMR CLI的版本資訊。

emrcli version

返回以下類似資訊。

2.0.0

升級EMR CLI

重新執行首次部署Gateway環境中安裝EMR CLI的步驟,會自動升級至最新版本。

常見問題

Q:如何切換計算叢集?

A:切換計算叢集的步驟如下:

  1. 使用-mv命令手動備份舊叢集(切換前叢集)中的檔案,包括/opt/apps目錄、/etc/taihao-apps目錄以及/etc/profile.d/yarn.sh檔案,以防止資料丟失。

  2. 重新執行本文中的操作,進行計算叢集的重新部署。