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目前支持注冊的集群類型如下:
EMR Serverless StarRocks僅需創建對應類型的數據源,即可在DataWorks上使用該類型集群。詳情請參見DataWorks on EMR Serverless StarRocks最佳實踐。
若您使用的集群類型無法注冊至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。
開啟Kerberos認證的EMR集群的安全組需要對資源組綁定的交換機網段放開UDP協議端口的入權限。
說明您需單擊EMR集群基礎信息中集群安全組的圖標,進入安全組詳情頁簽,單擊訪問規則的入方向,選擇手動添加,協議類型選擇自定義UDP,端口范圍配置詳情請查看EMR集群中的
/etc/krb5.conf
文件中對應的kdc端口,授權對象設置為資源組綁定的交換機網段。
前提條件
注意事項
若要實現DataWorks標準模式工作空間的開發環境與生產環境隔離機制,您需要為開發環境和生產環境注冊兩個不同的EMR集群。且這兩個集群的元數據需要使用如下存儲方式:
一個EMR集群可以注冊在同一個阿里云賬號的多個工作空間,但無法跨賬號注冊至多個工作空間。例如,某集群已注冊至當前阿里云賬號的工作空間,則該集群將無法跨賬號再次被注冊至其他阿里云賬號的工作空間。
步驟一:進入EMR集群頁面
進入管理中心頁面。
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的 ,在下拉框中選擇對應工作空間后單擊進入管理中心。
單擊左側導航欄的集群管理,進入集群管理頁面 ,單擊注冊集群按鈕,選擇注冊集群類型為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集群。
說明 當默認訪問身份選擇任務責任人、阿里云主賬號或阿里云子賬號所映射的集群賬號時,您可以參考設置集群身份映射手動配置DataWorks租戶成員與EMR集群指定賬號的映射關系。通過該映射的集群賬號在DataWorks執行EMR任務,未配置DataWorks租戶成員與集群賬號映射的情況下,DataWorks處理策略如下:
|
傳遞Proxy User信息 | 用于配置是否傳遞Proxy User信息。 說明 當開啟LDAP/Kerberos等認證方式時,集群會為每個普通用戶都頒發一個認證憑證,該操作比較麻煩。為方便統一管理用戶權限,您可通過某個超級用戶(Real User)去代理普通用戶(Proxy User)進行權限認證,此時,通過Proxy User訪問集群時,實際使用的是超級用戶的身份認證信息。您只需添加用戶為Proxy User即可。
不同類型的EMR任務,傳遞Proxy User信息的方式如下:
|
配置文件 | 當集群類型選擇HADOOP時,您可以前往EMR控制臺獲取配置文件。詳情請參見導出和導入服務配置。導出后請根據產品界面要上傳的配置文件,修改文件名稱。 此外,您還可以登錄EMR集群,通過以下路徑獲取相關配置文件。
|
集群所屬云賬號:其他阿里云主賬號
當集群所屬云賬號選擇其他阿里云主賬號時,您還需要配置如下參數:
配置項 | 說明 |
對方阿里云主賬號UID | 需添加的EMR集群所屬的云賬號UID。 |
對方RAM角色 | 訪問該EMR集群的RAM角色。該角色需滿足如下條件:
說明 跨賬號注冊EMR集群的相關操作,詳情請參見場景:注冊跨賬號的EMR集群。 |
對方EMR集群類型 | 選擇需要注冊的EMR集群類型。目前跨賬號注冊EMR集群場景下僅支持 |
對方EMR集群 | 選擇該賬號下需要注冊至DataWorks的EMR集群。 |
配置文件 | 請在產品界面按照提示配置各項配置文件。獲取配置文件詳情請參見導出和導入服務配置。導出后請根據產品界面要上傳的配置文件,修改文件名稱。 此外,您還可以登錄EMR集群,通過以下路徑獲取相關配置文件。
|
默認訪問身份 | 定義在當前工作空間下,用什么身份訪問該EMR集群。
說明 當默認訪問身份選擇任務責任人、阿里云主賬號或阿里云子賬號所映射的集群賬號時,您可以參考設置集群身份映射手動配置DataWorks租戶成員與EMR集群指定賬號的映射關系。通過該映射的集群賬號在DataWorks執行EMR任務,未配置DataWorks租戶成員與集群賬號映射的情況下,DataWorks處理策略如下:
|
傳遞Proxy User信息 | 用于配置是否傳遞Proxy User信息。 說明 當開啟LDAP/Kerberos等認證方式時,集群會為每個普通用戶都頒發一個認證憑證,該操作比較麻煩。為方便統一管理用戶權限,您可通過某個超級用戶(Real User)去代理普通用戶(Proxy User)進行權限認證,此時,通過Proxy User訪問集群時,實際使用的是超級用戶的身份認證信息。您只需添加用戶為Proxy User即可。
不同類型的EMR任務,傳遞Proxy User信息的方式如下:
|
步驟三:資源組初始化
初次注冊集群、集群服務配置變更或組件版本升級(例如:修改core-site.xml)請初始化資源組,確保資源組可正常訪問EMR,資源組當前環境配置可正常執行EMR任務。
在開源集群頁面,找到已注冊的EMR集群頁簽,單擊右上角的資源組初始化。
在需要的資源組后面單擊初始化。
完成后單擊確認。
DataWorks支持使用Serverless資源組(推薦)或舊版獨享調度資源組運行EMR任務,所以此處支持選擇Serverless資源組或舊版獨享調度資源組進行資源組初始化操作。
資源組初始化可能導致正在運行的任務失敗。非必要場景(例如,集群配置變更,需要立即重新初始化資源組,否則會導致大量任務運行失敗),建議在業務低峰期對資源組執行初始化操作。
后續步驟
數據開發:您可參考通用開發流程配置相關組件環境。
設置集群身份映射:當EMR集群默認訪問身份非hadoop賬號時,您需要配置集群身份映射,控制操作DataWorks的RAM用戶在DataWorks僅可訪問其有權限的資源,實現權限管控。
設置全局YARN資源隊列:您可通過YARN資源隊列映射,指定各模塊使用的YARN隊列,并支持設置是否覆蓋各模塊的配置。
設置全局Spark參數:您可參考Spark官方文檔自定義全局Spark參數,并支持設置當存在同名參數時,空間級Spark參數配置是否覆蓋各模塊的配置。
設置Kyuubi連接信息:若您需使用自定義的賬號及密碼登錄Kyuubi來運行相關任務,可參考該文檔自定義Kyuubi的連接信息。