全部產品
Search
文件中心

DataWorks:註冊EMR叢集至DataWorks

更新時間:Jun 19, 2024

DataWorks支援基於EMR(E-MapReduce)計算引擎建立Hive、MR、Presto和Spark SQL等節點,實現EMR任務工作流程的配置、周期性調度和中繼資料管理等功能,保障資料生產及管理的高效穩定。本文為您介紹如何在DataWorks註冊同帳號或跨帳號的EMR叢集。

背景資訊

開源巨量資料開發平台E-MapReduce(簡稱EMR),是運行在阿里雲平台上的一種巨量資料處理的系統解決方案。

EMR基於開源的Apache Hadoop和Apache Spark,讓您可以方便地使用Hadoop和Spark生態系統中的其他周邊系統分析和處理資料。EMR還可以與阿里雲其他的雲資料存放區系統和資料庫系統(例如,阿里雲OSS和RDS等)進行資料轉送。阿里雲EMR提供了on ECS、on ACK和Serverless形態,以滿足不同使用者的需求。

在DataWorks運行EMR任務時可選擇多種EMR組件,不同組件運行任務時的最優配置存在差異,您在配置EMR叢集時請參考EMR叢集配置建議,根據實際情況進行選擇。

支援的叢集類型

您需將EMR叢集註冊至DataWorks,後續才可在DataWorks上使用該叢集運行相關任務。在DataWorks執行相關操作前,請提前建立好相應叢集。DataWorks目前支援註冊叢集類型如下:

說明

若您使用的叢集類型無法註冊至DataWorks,請

提交工單聯絡技術支援人員處理。

使用限制

  • 任務類型:DataWorks暫不支援執行EMR的Flink任務。

  • 任務執行:DataWorks僅支援使用獨享調度資源群組進行EMR任務執行

  • 任務治理:

    • 僅EMR Hive、EMR Spark及EMR Spark SQL節點中SQL任務支援產出血緣關係。當叢集版本為5.9.1或3.43.1及以上版本時,以上節點均支援查看錶級血緣與欄位級血緣。

      說明

      對於Spark類型節點,當EMR叢集版本為5.8.0和3.42.0及以上版本時,支援查看錶級血緣與欄位級血緣,當EMR叢集版本低於5.8.0和3.42.0版本時,僅Spark 2.x支援查看錶級血緣。

    • DataLake或自訂叢集若要在DataWorks管理中繼資料,需先在叢集側配置EMR-HOOK。若未配置,則在DataWorks中無法即時展示中繼資料、產生審計日誌、展示血緣關係,EMR相關治理任務將無法開展。目前僅EMR Hive、EMR Spark SQL服務支援配置EMR-HOOK,配置詳情請參見配置Hive的EMR-HOOK配置Spark SQL的EMR-HOOK

前提條件

  • 已開通如下許可權。

    僅擁有以下身份的RAM使用者或RAM角色,可註冊EMR叢集,操作詳情請參見為RAM使用者授權

    • 阿里雲主帳號。

    • 同時具有DataWorks空間管理員角色、AliyunEMRFullAccess策略的RAM子帳號、RAM角色。

    • 同時具有AliyunDataWorksFullAccess、AliyunEMRFullAccess策略的RAM子帳號、RAM角色。

  • 已購買對應類型EMR叢集。

    DataWorks支援註冊的叢集類型,詳情請參見使用限制

注意事項

  • 若要實現DataWorks標準模式工作空間的開發環境與生產環境隔離機制,您需要為開發環境和生產環境綁定兩個不同的EMR叢集。且這兩個叢集的中繼資料需要使用如下儲存方式:

    • 方式一(資料湖方案推薦):儲存在資料湖構建DLF(Data Lake Formation)的兩個不同資料目錄Catalog。詳情請參見切換中繼資料存放區類型

    • 方式二:儲存在阿里雲關係型資料庫RDS(Relational Database Service)的兩個不同資料庫Database。詳情請參見配置自建RDS

  • 一個EMR叢集可以註冊在同一個阿里雲帳號的多個工作空間,若當前阿里雲帳號的已有叢集登入至DataWorks,則該叢集無法跨帳號再次被註冊至DataWorks。

步驟一:進入EMR叢集頁面

  1. 進入管理中心頁面。

    登入DataWorks控制台,單擊左側導覽列的管理中心,在下拉框中選擇對應工作空間後單擊進入管理中心

  2. 單擊左側導覽列的開源叢集 > 註冊叢集 > E-MapReduce ,進入叢集註冊頁面。

步驟二:註冊EMR叢集

註冊E-MapReduce叢集頁面配置叢集資訊。

說明

標準模式工作空間,需分別填寫開發環境和生產環境的叢集資訊,工作空間模式詳情請參見必讀:簡單模式和標準模式的區別

  • 叢集顯示名稱:定義叢集在DataWorks的名稱,名稱必須唯一。

  • 叢集所屬雲帳號:選擇需要將哪個帳號下的EMR叢集註冊至當前工作空間。

    • 當前阿里雲主帳號:將當前阿里雲主帳號下的EMR叢集註冊至當前帳號的DataWorks工作空間。

    • 其他阿里雲主帳號:將其他阿里雲主帳號下的EMR叢集註冊至當前帳號的DataWorks工作空間。

請根據選擇的帳號類型,參照下文配置其他參數

叢集所屬雲帳號:當前帳號

當叢集所屬雲帳號選擇當前阿里雲主帳號時,您還需要配置如下參數:

配置項

說明

叢集類型

選擇需要綁定的EMR叢集類型,目前DataWorks可註冊的叢集類型存在限制,詳情請參見使用限制

叢集

選擇當前帳號下需要註冊至DataWorks的EMR叢集。

預設訪問身份

定義在當前工作空間下,使用什麼身份訪問該EMR叢集。

  • 開發環境:可選擇統一使用叢集帳號:hadoop,或任務責任人所映射的叢集帳號。

  • 生產環境:可選擇統一使用叢集帳號:hadoop、任務責任人、阿里雲主帳號或阿里雲子帳號所映射的叢集帳號。

說明

當預設訪問身份選擇任務責任人、阿里雲主帳號或阿里雲子帳號所映射的叢集帳號時,您可以參考設定叢集身份映射手動設定DataWorks租戶成員與EMR叢集指定帳號的映射關係。通過該映射的叢集帳號在DataWorks執行EMR任務,未配置DataWorks租戶成員與叢集帳號映射的情況下,DataWorks處理策略如下:

  • 若使用RAM使用者(子帳號)執行任務:我們將預設按照與當前操作人同名的EMR叢集系統帳號執行任務。若叢集開啟LDAP或者Kerberos認證,任務執行將失敗。

  • 若使用阿里雲主帳號執行任務:DataWorks任務執行將報錯。

設定檔

當叢集類型選擇HADOOP時,您可以前往EMR控制台擷取設定檔。詳情請參見匯出和匯入服務配置。匯出後請根據產品介面要上傳的設定檔,修改檔案名稱。

image.png

此外,您還可以登入EMR叢集,通過以下路徑擷取相關設定檔。

/etc/ecm/hadoop-conf/core-site.xml
/etc/ecm/hadoop-conf/hdfs-site.xml
/etc/ecm/hadoop-conf/mapred-site.xml
/etc/ecm/hadoop-conf/yarn-site.xml
/etc/ecm/hive-conf/hive-site.xml
/etc/ecm/spark-conf/spark-defaults.conf
/etc/ecm/spark-conf/spark-env.sh

叢集所屬雲帳號:其他阿里雲主帳號

當叢集所屬雲帳號選擇其他阿里雲主帳號時,您還需要配置如下參數:

配置項

說明

對方阿里雲主帳號UID

需添加的EMR叢集所屬的雲帳號UID。

對方RAM角色

訪問該EMR叢集的RAM角色。該角色需滿足如下條件:

  • 對方阿里雲主帳號中已建立RAM角色。

  • 對方阿里雲主帳號的RAM角色已授權訪問當前帳號的DataWorks服務。

說明

跨帳號註冊EMR叢集的相關操作,詳情請參見情境:註冊跨帳號的EMR叢集

對方EMR叢集類型

選擇需要綁定的EMR叢集類型。目前跨帳號註冊EMR叢集情境下僅支援綁定EMR on ECS:Hadoop類型的叢集。

對方EMR叢集

選擇該帳號下需要註冊至DataWorks的EMR叢集。

設定檔

請在產品介面按照提示配置各項設定檔。擷取設定檔詳情請參見匯出和匯入服務配置。匯出後請根據產品介面要上傳的設定檔,修改檔案名稱。

image.png

此外,您還可以登入EMR叢集,通過以下路徑擷取相關設定檔。

/etc/ecm/hadoop-conf/core-site.xml
/etc/ecm/hadoop-conf/hdfs-site.xml
/etc/ecm/hadoop-conf/mapred-site.xml
/etc/ecm/hadoop-conf/yarn-site.xml
/etc/ecm/hive-conf/hive-site.xml
/etc/ecm/spark-conf/spark-defaults.conf
/etc/ecm/spark-conf/spark-env.sh

預設訪問身份

定義在當前工作空間下,用什麼身份訪問該EMR叢集。

  • 開發環境:可選擇統一使用叢集帳號:hadoop,或任務責任人所映射的叢集帳號。

  • 生產環境:可選擇統一使用叢集帳號:hadoop、任務責任人、阿里雲主帳號或阿里雲子帳號所映射的叢集帳號。

說明

當預設訪問身份選擇任務責任人、阿里雲主帳號或阿里雲子帳號所映射的叢集帳號時,您可以參考設定叢集身份映射手動設定DataWorks租戶成員與EMR叢集指定帳號的映射關係。通過該映射的叢集帳號在DataWorks執行EMR任務,未配置DataWorks租戶成員與叢集帳號映射的情況下,DataWorks處理策略如下:

  • 若使用RAM使用者(子帳號)執行任務:我們將預設按照與當前操作人同名的EMR叢集系統帳號執行任務。若叢集開啟LDAP或者Kerberos認證,任務執行將失敗。

  • 若使用阿里雲主帳號執行任務:DataWorks任務執行將報錯。

步驟三:資源群組初始化

初次綁定叢集、叢集服務配置變更組件版本升級(例如:修改core-site.xml)請初始化資源群組,確保資源群組可正常訪問EMR,資源群組當前環境配置可正常執行EMR任務。

  1. 開源叢集頁面,找到登入的EMR叢集頁簽,單擊右上方的資源群組初始化

  2. 在需要的資源群組後面單擊初始化

  3. 完成後單擊確認

說明
  • DataWorks僅支援使用獨享調度資源群組運行EMR任務,所以此處僅支援選擇獨享調度資源群組進行資源群組初始化操作。

  • 資源群組初始化可能導致正在啟動並執行任務失敗。非必要情境(例如,叢集配置變更,需要立即重新初始化資源群組,否則會導致大量任務運行失敗),建議在業務低峰期對資源群組執行初始化操作。

後續步驟

  • 資料開發:您可參考通用開發流程配置相關組件環境。

  • 設定叢集身份映射:當EMR叢集預設訪問身份非hadoop帳號時,您需要配置叢集身份映射,控制操作DataWorks的RAM使用者在DataWorks僅可訪問其有許可權的資源,實現許可權管控。

  • 設定全域YARN資源隊列:您可通過YARN資源隊列映射,指定各模組使用的YARN隊列,並支援設定是否覆蓋各模組的配置。

  • 設定全域Spark參數:您可參考Spark官方文檔自訂全域Spark參數,並支援設定當存在同名參數時,空間級Spark參數配置是否覆蓋各模組的配置。