全部產品
Search
文件中心

DataWorks:註冊EMR叢集至DataWorks

更新時間:Oct 25, 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支援使用Serverless資源群組(推薦)或舊版獨享調度資源群組進行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

  • 地區限制:目前僅華北3(張家口)地區支援使用EMR Serverless Spark。

前提條件

  • 已開通如下許可權。

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

    • 阿里雲主帳號。

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

    • 同時具有AliyunDataWorksFullAccessAliyunEMRFullAccess策略的RAM子帳號或RAM角色。

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

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

注意事項

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

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

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

  • 一個EMR叢集可以註冊在同一個阿里雲帳號的多個工作空間,但無法跨帳號註冊至多個工作空間。例如,某叢集登入至當前阿里雲帳號的工作空間,則該叢集將無法跨帳號再次被註冊至其他阿里雲帳號的工作空間。

步驟一:進入EMR叢集頁面

  1. 進入管理中心頁面。

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

  2. 單擊左側導覽列的叢集管理,進入叢集管理頁面 ,單擊註冊叢集按鈕,選擇註冊叢集類型E-MapReduce。進入註冊E-MapReduce叢集頁面。

步驟二:註冊EMR叢集

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

說明

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

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

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

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

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

      說明

      EMR Serverless Spark叢集不支援跨帳號註冊,即您無法將其他阿里雲帳號的EMR Serverless Spark叢集註冊至當前阿里雲帳號的工作空間。

請根據選擇的帳號類型,參照下文配置相關參數。

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

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

配置項

說明

叢集類型

選擇需要註冊的EMR叢集類型。目前DataWorks可註冊的叢集類型請參見使用限制

叢集

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

說明

若叢集類型選擇EMR Serverless Spark,您需按照介面指引及參考說明選擇相應的E-MapReduce工作空間(即要註冊的叢集)、預設引擎版本、預設資源隊列等資訊。

預設訪問身份

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

  • 開發環境:可選擇使用叢集帳號hadoop,或任務執行者所映射的叢集帳號。

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

說明

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

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

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

傳遞Proxy User資訊

用於配置是否傳遞Proxy User資訊。

說明

當開啟LDAP/Kerberos等認證方式時,叢集會為每個普通使用者都頒發一個認證憑證,該操作比較麻煩。為方便統一系統管理使用者許可權,您可通過某個超級使用者(Real User)去代理普通使用者(Proxy User)進行許可權認證,此時,通過Proxy User訪問叢集時,實際使用的是超級使用者的身份認證資訊。您只需添加使用者為Proxy User即可。

  • 傳遞:在EMR叢集中運行任務時,根據Proxy User進行資料存取權限的校正及控制。

    • DataStudio(資料開發)、資料分析:將動態傳遞任務執行者的阿里雲帳號名稱,即Proxy User資訊為任務執行者的資訊。

    • 營運中心:將固定傳遞註冊叢集時配置的預設訪問身份的阿里雲帳號名稱,即Proxy User資訊為預設訪問身份的資訊。

  • 不傳遞:在EMR叢集中運行任務時,根據註冊叢集時配置的帳號認證方式進行資料存取權限的校正及控制。

不同類型的EMR任務,傳遞Proxy User資訊的方式如下:

  • EMR Kyuubi任務:通過hive.server2.proxy.user配置項傳遞。

  • EMR Spark任務及非JDBC模式的EMR Spark SQL任務:通過-proxy-user配置項傳遞。

設定檔

當叢集類型選擇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:DataLake叢集EMR on ECS:Hadoop叢集EMR on ECS:自訂叢集

對方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任務執行將報錯。

傳遞Proxy User資訊

用於配置是否傳遞Proxy User資訊。

說明

當開啟LDAP/Kerberos等認證方式時,叢集會為每個普通使用者都頒發一個認證憑證,該操作比較麻煩。為方便統一系統管理使用者許可權,您可通過某個超級使用者(Real User)去代理普通使用者(Proxy User)進行許可權認證,此時,通過Proxy User訪問叢集時,實際使用的是超級使用者的身份認證資訊。您只需添加使用者為Proxy User即可。

  • 傳遞:在EMR叢集中運行任務時,根據Proxy User進行資料存取權限的校正及控制。

    • DataStudio(資料開發)、資料分析:將動態傳遞任務執行者的阿里雲帳號名稱,即Proxy User資訊為任務執行者的資訊。

    • 營運中心:將固定傳遞註冊叢集時配置的預設訪問身份的阿里雲帳號名稱,即Proxy User資訊為預設訪問身份的資訊。

  • 不傳遞:在EMR叢集中運行任務時,根據註冊叢集時配置的帳號認證方式進行資料存取權限的校正及控制。

不同類型的EMR任務,傳遞Proxy User資訊的方式如下:

  • EMR Kyuubi任務:通過hive.server2.proxy.user配置項傳遞。

  • EMR Spark任務及非JDBC模式的EMR Spark SQL任務:通過-proxy-user配置項傳遞。

步驟三:資源群組初始化

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

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

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

  3. 完成後單擊確認

說明
  • DataWorks支援使用Serverless資源群組(推薦)或舊版獨享調度資源群組運行EMR任務,所以此處支援選擇Serverless資源群組或舊版獨享調度資源群組進行資源群組初始化操作。

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

後續步驟

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

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

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

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

  • 設定Kyuubi串連資訊:若您需使用自訂的帳號及密碼登入Kyuubi來運行相關任務,可參考該文檔自訂Kyuubi的串連資訊。