注冊(cè)EMR集群至DataWorks
DataWorks支持基于EMR(E-MapReduce)集群創(chuàng)建Hive、MR、Presto和Spark SQL等節(jié)點(diǎn),實(shí)現(xiàn)EMR任務(wù)工作流的配置、周期性調(diào)度和元數(shù)據(jù)管理等功能,保障數(shù)據(jù)生產(chǎn)及管理的高效穩(wěn)定。本文為您介紹如何在DataWorks注冊(cè)同賬號(hào)或跨賬號(hào)的EMR集群。
背景信息
開(kāi)源大數(shù)據(jù)開(kāi)發(fā)平臺(tái)E-MapReduce(簡(jiǎn)稱EMR),是運(yùn)行在阿里云平臺(tái)上的一種大數(shù)據(jù)處理的系統(tǒng)解決方案。
EMR基于開(kāi)源的Apache Hadoop和Apache Spark,讓您可以方便地使用Hadoop和Spark生態(tài)系統(tǒng)中的其他周邊系統(tǒng)分析和處理數(shù)據(jù)。EMR還可以與阿里云其他的云數(shù)據(jù)存儲(chǔ)系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)(例如,阿里云OSS和RDS等)進(jìn)行數(shù)據(jù)傳輸。阿里云EMR提供了on ECS、on ACK和Serverless等形態(tài),以滿足不同用戶的需求。
在DataWorks運(yùn)行EMR任務(wù)時(shí)可選擇多種EMR組件,不同組件運(yùn)行任務(wù)時(shí)的最優(yōu)配置存在差異,您在配置EMR集群時(shí)請(qǐng)參考EMR集群配置建議,根據(jù)實(shí)際情況進(jìn)行選擇。
支持的集群類(lèi)型
您需將EMR集群注冊(cè)至DataWorks,后續(xù)才可在DataWorks上使用該集群運(yùn)行相關(guān)任務(wù)。在DataWorks執(zhí)行相關(guān)操作前,請(qǐng)?zhí)崆皠?chuàng)建好相應(yīng)集群。DataWorks目前支持注冊(cè)的集群類(lèi)型如下:
EMR Serverless StarRocks僅需創(chuàng)建對(duì)應(yīng)類(lèi)型的數(shù)據(jù)源,即可在DataWorks上使用該類(lèi)型集群。詳情請(qǐng)參見(jiàn)DataWorks on EMR Serverless StarRocks最佳實(shí)踐。
若您使用的集群類(lèi)型無(wú)法注冊(cè)至DataWorks,請(qǐng)提交工單聯(lián)系技術(shù)支持人員處理。
使用限制
任務(wù)類(lèi)型:DataWorks暫不支持執(zhí)行EMR的Flink任務(wù)。
任務(wù)執(zhí)行:DataWorks支持使用Serverless資源組(推薦)或舊版獨(dú)享調(diào)度資源組進(jìn)行EMR任務(wù)執(zhí)行。
任務(wù)治理:
僅EMR Hive、EMR Spark及EMR Spark SQL節(jié)點(diǎn)中SQL任務(wù)支持產(chǎn)出血緣關(guān)系。當(dāng)集群版本為5.9.1或3.43.1及以上版本時(shí),以上節(jié)點(diǎn)均支持查看表級(jí)血緣與字段級(jí)血緣。
說(shuō)明對(duì)于Spark類(lèi)型節(jié)點(diǎn),當(dāng)EMR集群版本為5.8.0和3.42.0及以上版本時(shí),支持查看表級(jí)血緣與字段級(jí)血緣,當(dāng)EMR集群版本低于5.8.0和3.42.0版本時(shí),僅Spark 2.x支持查看表級(jí)血緣。
DataLake或自定義集群若要在DataWorks管理元數(shù)據(jù),需先在集群側(cè)配置EMR-HOOK。若未配置,則在DataWorks中無(wú)法實(shí)時(shí)展示元數(shù)據(jù)、生成審計(jì)日志、展示血緣關(guān)系,EMR相關(guān)治理任務(wù)將無(wú)法開(kāi)展。目前僅EMR Hive、EMR Spark SQL服務(wù)支持配置EMR-HOOK,配置詳情請(qǐng)參見(jiàn)配置Hive的EMR-HOOK、配置Spark SQL的EMR-HOOK。
地域限制:目前僅華北3(張家口)地域支持使用EMR Serverless Spark。
開(kāi)啟Kerberos認(rèn)證的EMR集群的安全組需要對(duì)資源組綁定的交換機(jī)網(wǎng)段放開(kāi)UDP協(xié)議端口的入權(quán)限。
說(shuō)明您需單擊EMR集群基礎(chǔ)信息中集群安全組的圖標(biāo),進(jìn)入安全組詳情頁(yè)簽,單擊訪問(wèn)規(guī)則的入方向,選擇手動(dòng)添加,協(xié)議類(lèi)型選擇自定義UDP,端口范圍配置詳情請(qǐng)查看EMR集群中的
/etc/krb5.conf
文件中對(duì)應(yīng)的kdc端口,授權(quán)對(duì)象設(shè)置為資源組綁定的交換機(jī)網(wǎng)段。
前提條件
已開(kāi)通如下權(quán)限。
僅擁有以下身份的RAM用戶或RAM角色,可注冊(cè)EMR集群,操作詳情請(qǐng)參見(jiàn)為RAM用戶授權(quán)。
阿里云主賬號(hào)。
同時(shí)具有DataWorks
空間管理員角色
、AliyunEMRFullAccess
策略的RAM子賬號(hào)或RAM角色。同時(shí)具有
AliyunDataWorksFullAccess
、AliyunEMRFullAccess
策略的RAM子賬號(hào)或RAM角色。
已購(gòu)買(mǎi)對(duì)應(yīng)類(lèi)型EMR集群。
DataWorks支持注冊(cè)的集群類(lèi)型,詳情請(qǐng)參見(jiàn)使用限制。
注意事項(xiàng)
若要實(shí)現(xiàn)DataWorks標(biāo)準(zhǔn)模式工作空間的開(kāi)發(fā)環(huán)境與生產(chǎn)環(huán)境隔離機(jī)制,您需要為開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境注冊(cè)兩個(gè)不同的EMR集群。且這兩個(gè)集群的元數(shù)據(jù)需要使用如下存儲(chǔ)方式:
方式一(數(shù)據(jù)湖方案推薦):存儲(chǔ)在數(shù)據(jù)湖構(gòu)建DLF(Data Lake Formation)的兩個(gè)不同數(shù)據(jù)目錄Catalog。詳情請(qǐng)參見(jiàn)DLF統(tǒng)一元數(shù)據(jù)。
方式二:存儲(chǔ)在阿里云關(guān)系型數(shù)據(jù)庫(kù)RDS(Relational Database Service)的兩個(gè)不同數(shù)據(jù)庫(kù)Database。詳情請(qǐng)參見(jiàn)配置自建RDS。
一個(gè)EMR集群可以注冊(cè)在同一個(gè)阿里云賬號(hào)的多個(gè)工作空間,但無(wú)法跨賬號(hào)注冊(cè)至多個(gè)工作空間。例如,某集群已注冊(cè)至當(dāng)前阿里云賬號(hào)的工作空間,則該集群將無(wú)法跨賬號(hào)再次被注冊(cè)至其他阿里云賬號(hào)的工作空間。
步驟一:進(jìn)入EMR集群頁(yè)面
進(jìn)入管理中心頁(yè)面。
登錄DataWorks控制臺(tái),切換至目標(biāo)地域后,單擊左側(cè)導(dǎo)航欄的 ,在下拉框中選擇對(duì)應(yīng)工作空間后單擊進(jìn)入管理中心。
單擊左側(cè)導(dǎo)航欄的集群管理,進(jìn)入集群管理頁(yè)面 ,單擊注冊(cè)集群按鈕,選擇注冊(cè)集群類(lèi)型為E-MapReduce。進(jìn)入注冊(cè)E-MapReduce集群頁(yè)面。
步驟二:注冊(cè)EMR集群
在注冊(cè)E-MapReduce集群頁(yè)面配置集群信息。
標(biāo)準(zhǔn)模式工作空間,需分別填寫(xiě)開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境的集群信息,工作空間模式詳情請(qǐng)參見(jiàn)必讀:簡(jiǎn)單模式和標(biāo)準(zhǔn)模式的區(qū)別。
集群顯示名稱:定義集群在DataWorks的名稱,名稱必須唯一。
集群所屬云賬號(hào):選擇需要將哪個(gè)賬號(hào)下的EMR集群注冊(cè)至當(dāng)前工作空間。
當(dāng)前阿里云主賬號(hào):將當(dāng)前阿里云主賬號(hào)下的EMR集群注冊(cè)至當(dāng)前賬號(hào)的DataWorks工作空間。
其他阿里云主賬號(hào):將其他阿里云主賬號(hào)下的EMR集群注冊(cè)至當(dāng)前賬號(hào)的DataWorks工作空間。
說(shuō)明EMR Serverless Spark集群不支持跨賬號(hào)注冊(cè),即您無(wú)法將其他阿里云賬號(hào)的EMR Serverless Spark集群注冊(cè)至當(dāng)前阿里云賬號(hào)的工作空間。
請(qǐng)根據(jù)選擇的賬號(hào)類(lèi)型,參照下文配置相關(guān)參數(shù)。
集群所屬云賬號(hào):當(dāng)前賬號(hào)
當(dāng)集群所屬云賬號(hào)選擇當(dāng)前阿里云主賬號(hào)時(shí),您還需要配置如下參數(shù):
配置項(xiàng) | 說(shuō)明 |
集群類(lèi)型 | 選擇需要注冊(cè)的EMR集群類(lèi)型。目前DataWorks可注冊(cè)的集群類(lèi)型請(qǐng)參見(jiàn)使用限制。 |
集群 | 選擇當(dāng)前賬號(hào)下需要注冊(cè)至DataWorks的EMR集群。 說(shuō)明 若集群類(lèi)型選擇EMR Serverless Spark,您需按照界面指引及參考說(shuō)明選擇相應(yīng)的E-MapReduce工作空間(即要注冊(cè)的集群)、默認(rèn)引擎版本、默認(rèn)資源隊(duì)列等信息。 |
默認(rèn)訪問(wèn)身份 | 定義在當(dāng)前工作空間下,使用什么身份訪問(wèn)該EMR集群。
說(shuō)明 當(dāng)默認(rèn)訪問(wèn)身份選擇任務(wù)責(zé)任人、阿里云主賬號(hào)或阿里云子賬號(hào)所映射的集群賬號(hào)時(shí),您可以參考設(shè)置集群身份映射手動(dòng)配置DataWorks租戶成員與EMR集群指定賬號(hào)的映射關(guān)系。通過(guò)該映射的集群賬號(hào)在DataWorks執(zhí)行EMR任務(wù),未配置DataWorks租戶成員與集群賬號(hào)映射的情況下,DataWorks處理策略如下:
|
傳遞Proxy User信息 | 用于配置是否傳遞Proxy User信息。 說(shuō)明 當(dāng)開(kāi)啟LDAP/Kerberos等認(rèn)證方式時(shí),集群會(huì)為每個(gè)普通用戶都頒發(fā)一個(gè)認(rèn)證憑證,該操作比較麻煩。為方便統(tǒng)一管理用戶權(quán)限,您可通過(guò)某個(gè)超級(jí)用戶(Real User)去代理普通用戶(Proxy User)進(jìn)行權(quán)限認(rèn)證,此時(shí),通過(guò)Proxy User訪問(wèn)集群時(shí),實(shí)際使用的是超級(jí)用戶的身份認(rèn)證信息。您只需添加用戶為Proxy User即可。
不同類(lèi)型的EMR任務(wù),傳遞Proxy User信息的方式如下:
|
配置文件 | 當(dāng)集群類(lèi)型選擇HADOOP時(shí),您可以前往EMR控制臺(tái)獲取配置文件。詳情請(qǐng)參見(jiàn)導(dǎo)出和導(dǎo)入服務(wù)配置。導(dǎo)出后請(qǐng)根據(jù)產(chǎn)品界面要上傳的配置文件,修改文件名稱。 此外,您還可以登錄EMR集群,通過(guò)以下路徑獲取相關(guān)配置文件。
|
集群所屬云賬號(hào):其他阿里云主賬號(hào)
當(dāng)集群所屬云賬號(hào)選擇其他阿里云主賬號(hào)時(shí),您還需要配置如下參數(shù):
配置項(xiàng) | 說(shuō)明 |
對(duì)方阿里云主賬號(hào)UID | 需添加的EMR集群所屬的云賬號(hào)UID。 |
對(duì)方RAM角色 | 訪問(wèn)該EMR集群的RAM角色。該角色需滿足如下條件:
說(shuō)明 跨賬號(hào)注冊(cè)EMR集群的相關(guān)操作,詳情請(qǐng)參見(jiàn)場(chǎng)景:注冊(cè)跨賬號(hào)的EMR集群。 |
對(duì)方EMR集群類(lèi)型 | 選擇需要注冊(cè)的EMR集群類(lèi)型。目前跨賬號(hào)注冊(cè)EMR集群場(chǎng)景下僅支持 |
對(duì)方EMR集群 | 選擇該賬號(hào)下需要注冊(cè)至DataWorks的EMR集群。 |
配置文件 | 請(qǐng)?jiān)诋a(chǎn)品界面按照提示配置各項(xiàng)配置文件。獲取配置文件詳情請(qǐng)參見(jiàn)導(dǎo)出和導(dǎo)入服務(wù)配置。導(dǎo)出后請(qǐng)根據(jù)產(chǎn)品界面要上傳的配置文件,修改文件名稱。 此外,您還可以登錄EMR集群,通過(guò)以下路徑獲取相關(guān)配置文件。
|
默認(rèn)訪問(wèn)身份 | 定義在當(dāng)前工作空間下,用什么身份訪問(wèn)該EMR集群。
說(shuō)明 當(dāng)默認(rèn)訪問(wèn)身份選擇任務(wù)責(zé)任人、阿里云主賬號(hào)或阿里云子賬號(hào)所映射的集群賬號(hào)時(shí),您可以參考設(shè)置集群身份映射手動(dòng)配置DataWorks租戶成員與EMR集群指定賬號(hào)的映射關(guān)系。通過(guò)該映射的集群賬號(hào)在DataWorks執(zhí)行EMR任務(wù),未配置DataWorks租戶成員與集群賬號(hào)映射的情況下,DataWorks處理策略如下:
|
傳遞Proxy User信息 | 用于配置是否傳遞Proxy User信息。 說(shuō)明 當(dāng)開(kāi)啟LDAP/Kerberos等認(rèn)證方式時(shí),集群會(huì)為每個(gè)普通用戶都頒發(fā)一個(gè)認(rèn)證憑證,該操作比較麻煩。為方便統(tǒng)一管理用戶權(quán)限,您可通過(guò)某個(gè)超級(jí)用戶(Real User)去代理普通用戶(Proxy User)進(jìn)行權(quán)限認(rèn)證,此時(shí),通過(guò)Proxy User訪問(wèn)集群時(shí),實(shí)際使用的是超級(jí)用戶的身份認(rèn)證信息。您只需添加用戶為Proxy User即可。
不同類(lèi)型的EMR任務(wù),傳遞Proxy User信息的方式如下:
|
步驟三:資源組初始化
初次注冊(cè)集群、集群服務(wù)配置變更或組件版本升級(jí)(例如:修改core-site.xml)請(qǐng)初始化資源組,確保資源組可正常訪問(wèn)EMR,資源組當(dāng)前環(huán)境配置可正常執(zhí)行EMR任務(wù)。
在開(kāi)源集群頁(yè)面,找到已注冊(cè)的EMR集群頁(yè)簽,單擊右上角的資源組初始化。
在需要的資源組后面單擊初始化。
完成后單擊確認(rèn)。
DataWorks支持使用Serverless資源組(推薦)或舊版獨(dú)享調(diào)度資源組運(yùn)行EMR任務(wù),所以此處支持選擇Serverless資源組或舊版獨(dú)享調(diào)度資源組進(jìn)行資源組初始化操作。
資源組初始化可能導(dǎo)致正在運(yùn)行的任務(wù)失敗。非必要場(chǎng)景(例如,集群配置變更,需要立即重新初始化資源組,否則會(huì)導(dǎo)致大量任務(wù)運(yùn)行失敗),建議在業(yè)務(wù)低峰期對(duì)資源組執(zhí)行初始化操作。
后續(xù)步驟
數(shù)據(jù)開(kāi)發(fā):您可參考通用開(kāi)發(fā)流程配置相關(guān)組件環(huán)境。
設(shè)置集群身份映射:當(dāng)EMR集群默認(rèn)訪問(wèn)身份非hadoop賬號(hào)時(shí),您需要配置集群身份映射,控制操作DataWorks的RAM用戶在DataWorks僅可訪問(wèn)其有權(quán)限的資源,實(shí)現(xiàn)權(quán)限管控。
設(shè)置全局YARN資源隊(duì)列:您可通過(guò)YARN資源隊(duì)列映射,指定各模塊使用的YARN隊(duì)列,并支持設(shè)置是否覆蓋各模塊的配置。
設(shè)置全局Spark參數(shù):您可參考Spark官方文檔自定義全局Spark參數(shù),并支持設(shè)置當(dāng)存在同名參數(shù)時(shí),空間級(jí)Spark參數(shù)配置是否覆蓋各模塊的配置。
設(shè)置Kyuubi連接信息:若您需使用自定義的賬號(hào)及密碼登錄Kyuubi來(lái)運(yùn)行相關(guān)任務(wù),可參考該文檔自定義Kyuubi的連接信息。