支援您跨阿里雲帳號註冊EMR叢集。該操作必須通過RAM角色訪問的方式執行。本文為您介紹,如何使用RAM角色訪問方式,讓阿里雲帳號A可以在DataWorks中註冊阿里雲帳號B的EMR叢集,實現跨帳號訪問EMR資料。
前提條件
注意事項
僅支援跨帳號綁定未使用DLF管理中繼資料的Hadoop叢集。
不支援Kerberos認證。
Spark僅支援SQL任務的表血緣,不支援欄位血緣。
帳號B側:建立RAM角色並允許帳號A訪問
帳號B擁有訪問雲資源EMR的RAM角色,帳號B允許帳號A來扮演該角色,讓帳號A能夠訪問帳號B下的雲資源EMR。
建立RAM角色。
使用阿里雲帳號B登入RAM控制台,建立RAM角色並添加帳號A為該角色信任的雲帳號,後續可使用帳號A扮演該角色訪問相關被授權的資源。建立角色,詳情請參見建立可信實體為阿里雲帳號的RAM角色。
角色關鍵配置樣本如下:
角色名稱為:EMRRole。
信任的雲帳號選擇其他帳號:此處填寫的是帳號A的帳號ID。您可使用目標帳號(帳號A)登入控制台,滑鼠移至上方至頂部功能表列的帳戶圖片,擷取帳號ID。
配置完成後,帳號A後續即可扮演EMRRole角色,訪問相關被授權的資源。
修改角色信任策略。
您需進入EMRRole角色詳情頁,修改角色信任策略,授權帳號A可訪問當前帳號B的EMR叢集。修改角色的信任策略,詳情請參見修改RAM角色的信任策略。策略內容如下。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "san******@emr.dataworks.aliyuncs.com" ] } } ], "Version": "1" }
說明san******@emr.dataworks.aliyuncs.com
:需要授權的主賬戶A的uid。為EMRRole新增AliyunDataWorksAccessingEMRReadOnlyPolicy許可權。
帳號A側:註冊帳號B的叢集
在本步驟,您將在帳號A的DataWorks空間註冊帳號B的emr叢集。實現叢集的跨帳號註冊。因此,執行本步驟前,您需提前從帳號B處擷取UID。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的 ,在下拉框中選擇對應工作空間後單擊進入管理中心。
單擊左側導覽列的叢集管理,進入叢集管理頁面 ,單擊註冊叢集按鈕,選擇註冊叢集類型為E-MapReduce。進入註冊E-MapReduce叢集頁面。
配置叢集資訊。
配置基本資料。
根據介面提示,配置如下資訊。標準模式工作空間,需分別註冊開發環境叢集和生產環境叢集。工作空間模式,詳情請參見必讀:簡單模式和標準模式的區別。
關鍵參數配置如下:
對方帳號的UID:跨帳號註冊叢集的帳號UID。即帳號B的UID,需從帳號B處擷取。
對方RAM角色:允許對方帳號訪問本帳號資源的角色。即本文已建立的角色EMRRole。
對方EMR叢集:選擇需要註冊至DataWorks的EMR叢集,此處僅可選擇版本為3.38.3或3.38.2且未使用DLF管理中繼資料的Hadoop叢集。
更多註冊叢集的配置詳情,請參見註冊EMR叢集至DataWorks。
配置資源群組初始化。
初次註冊叢集、叢集服務配置變更或組件版本升級(例如:修改core-site.xml)請初始化資源群組,確保資源群組可正常訪問EMR,資源群組當前環境配置可正常執行EMR任務。
說明DataWorks支援使用Serverless資源群組(推薦)或舊版獨享調度資源群組運行EMR任務,所以此處支援選擇Serverless資源群組或舊版獨享調度資源群組進行資源群組初始化操作。
資源群組初始化可能導致正在啟動並執行任務失敗。非必要情境(例如,叢集配置變更,需要立即重新初始化資源群組,否則會導致大量任務運行失敗),建議在業務低峰期對資源群組執行初始化操作。
後續步驟
叢集建立後,您可執行如下操作:
設定叢集身份映射:當EMR叢集預設訪問身份非Hadoop帳號時,您需要配置叢集身份映射,控制操作DataWorks的RAM使用者在DataWorks僅可訪問其有許可權的資源,實現許可權管控。
基於該叢集進行Data Integration同步操作。詳情請參見Data Integration概述。