DSW連接EMR集群
本文為您介紹如何在DSW環(huán)境中連接至EMR集群,提交并執(zhí)行Spark作業(yè),以及通過PySpark實(shí)現(xiàn)交互式應(yīng)用開發(fā)。您可以在同一DSW實(shí)例中,充分利用EMR的強(qiáng)大計(jì)算性能高效處理數(shù)據(jù),并無縫銜接至模型開發(fā)、訓(xùn)練和部署階段,感受一體化的大數(shù)據(jù)與AI融合體驗(yàn)。
背景信息
數(shù)據(jù)預(yù)處理在機(jī)器學(xué)習(xí)和大語言模型領(lǐng)域中至關(guān)重要,但通常耗時(shí)且復(fù)雜,涵蓋數(shù)據(jù)清洗、轉(zhuǎn)換及特征構(gòu)建等關(guān)鍵步驟。因此,DSW與開源大數(shù)據(jù)平臺(tái)EMR合作推出了一站式大數(shù)據(jù)與AI整合方案。
EMR作為阿里云平臺(tái)上的全托管大數(shù)據(jù)處理服務(wù),集成了Apache Spark,使得用戶能便捷地在云環(huán)境搭建、管理和使用Spark集群,并進(jìn)行大規(guī)模數(shù)據(jù)處理、實(shí)時(shí)計(jì)算、機(jī)器學(xué)習(xí)任務(wù)以及圖形處理等。
使用限制
只有以下類型的DSW實(shí)例支持連接到EMR集群:
使用公共資源組創(chuàng)建的后付費(fèi)DSW實(shí)例。
僅支持以下類型的EMR集群:
DataLake集群
安裝了Spark3和Hadoop的自定義集群
每個(gè)DSW實(shí)例最多可以連接一個(gè)EMR集群,連接完成后不支持切換到其它集群。
前提條件
已開通EMR并創(chuàng)建EMR集群,具體操作,請參見創(chuàng)建集群。
已創(chuàng)建DSW實(shí)例,鏡像的操作系統(tǒng)版本不高于ubuntu 20.04,在網(wǎng)絡(luò)配置中指定與EMR集群相同的VPC和安全組。具體操作,請參見創(chuàng)建DSW實(shí)例。
重要DSW實(shí)例的VPC和安全組,必須與EMR集群相同,否則會(huì)導(dǎo)致后續(xù)配置失敗。
操作步驟
在DSW中打開教程文件
進(jìn)入DSW開發(fā)環(huán)境。
登錄PAI控制臺(tái)。
在頁面左上方,選擇DSW實(shí)例所在的地域。
在左側(cè)導(dǎo)航欄單擊工作空間列表,在工作空間列表頁面中單擊默認(rèn)工作空間名稱,進(jìn)入對應(yīng)工作空間內(nèi)。
在左側(cè)導(dǎo)航欄,選擇模型開發(fā)與訓(xùn)練>交互式建模(DSW)。
單擊需要打開的實(shí)例操作列下的打開,進(jìn)入DSW實(shí)例開發(fā)環(huán)境。
在Notebook頁簽的Launcher頁面,單擊快速開始區(qū)域Tool下的DSW Gallery,打開DSW Gallery頁面。
在DSW Gallery頁面中,搜索大數(shù)據(jù)和AI一體化:向EMR集群提交Spark作業(yè),單擊在DSW中打開,即可自動(dòng)將本教程所需的資源和教程文件下載至DSW實(shí)例中,并在下載完成后自動(dòng)打開教程文件。
運(yùn)行教程文件
在打開的教程文件emr_connect.ipynb中,您可以查看教程內(nèi)容以及直接運(yùn)行教程。
在教程文件中單擊運(yùn)行對應(yīng)步驟的命令,當(dāng)成功運(yùn)行結(jié)束一個(gè)步驟命令后,再順次運(yùn)行下個(gè)步驟的命令。
本教程包括以下4個(gè)運(yùn)行步驟:
選擇EMR集群
連接指定集群
使用spark-submit提交作業(yè)
運(yùn)行PySpark交互式應(yīng)用
常見問題
DSW實(shí)例重啟后,運(yùn)行Spark作業(yè)報(bào)錯(cuò),應(yīng)如何解決?
DSW實(shí)例重啟后,需要重新執(zhí)行選擇EMR集群和連接指定集群,初始化EMR集群的連接信息。
報(bào)錯(cuò)spark-submit: command not found,應(yīng)如何解決?
執(zhí)行EMR集群連接操作成功后,需要新建Terminal加載Spark相關(guān)的環(huán)境參數(shù)。可以執(zhí)行以下命令檢查當(dāng)前會(huì)話中Spark配置是否生效,如果返回為空,說明未生效。
env | grep -i SPARK_HOME
報(bào)錯(cuò)Python in worker has different version * than that in driver *,應(yīng)如何解決?
該錯(cuò)誤表示Driver所在客戶端的Python版本與集群Worker節(jié)點(diǎn)的Python版本不匹配。
ModuleNotFoundError: No module named ***,應(yīng)如何解決?
集群中Executor使用的Python環(huán)境中沒有安裝PySpark應(yīng)用中依賴的包,推薦使用spark.archives配置將本地Python環(huán)境同步到遠(yuǎn)端,或者手動(dòng)在集群每個(gè)Worker節(jié)點(diǎn)安裝相關(guān)依賴。
創(chuàng)建PySpark內(nèi)核并初始化完成后,新建Notebook時(shí),下拉列表里沒有PySpark選項(xiàng),應(yīng)如何解決?
在Notebook頁簽的工具欄,選擇Kernel>Restart Kernel。