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。
開啟Kerberos認證的EMR叢集的安全性群組需要對資源群組綁定的交換器網段放開UDP協議連接埠的入許可權。
說明您需單擊EMR叢集基礎資訊中叢集安全性群組的表徵圖,進入安全性群組詳情頁簽,單擊訪問規則的入方向,選擇手動添加,協議類型選擇自訂UDP,連接埠範圍配置詳情請查看EMR叢集中的
/etc/krb5.conf
檔案中對應的kdc連接埠,授權對象設定為資源群組綁定的交換器網段。
前提條件
注意事項
若要實現DataWorks標準模式工作空間的開發環境與生產環境隔離機制,您需要為開發環境和生產環境註冊兩個不同的EMR叢集。且這兩個叢集的中繼資料需要使用如下儲存方式:
方式一(資料湖方案推薦):儲存在資料湖構建DLF(Data Lake Formation)的兩個不同資料目錄Catalog。詳情請參見切換中繼資料存放區類型。
方式二:儲存在阿里雲關係型資料庫RDS(Relational Database Service)的兩個不同資料庫Database。詳情請參見配置自建RDS。
一個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的串連資訊。