Spark是一個通用的巨量資料分析引擎,以其高效能、易用性和廣泛的適用性而著稱。它支援複雜的記憶體計算,非常適合構建大規模且低延遲的資料分析應用。DataWorks平台提供Serverless Spark Batch節點,使您能夠在 DataWorks上基於EMR Serverless Spark 叢集便捷地開發和周期性調度Spark任務。
適用範圍
計算資源限制:僅支援綁定EMR Serverless Spark計算資源,需確保資源群組和計算資源網路連通。
資源群組限制:僅支援使用Serverless資源群組運行該類型任務。
(可選,RAM帳號需要)進行任務開發的RAM帳號已被添加至對應工作空間中,並具有開發或空間管理員(許可權較大,謹慎添加)角色許可權,新增成員的操作詳情請參見為工作空間增加空間成員。
如果您使用的是主帳號,則可忽略該添加操作。
建立節點
建立入口參考:建立節點。
開發節點
開發Serverless Spark Batch任務前,需先在EMR中開發Spark任務代碼並編譯成JAR包。Spark開發指導,請參見Spark教程。
根據不同情境需求選擇適合您的操作方案:
方案一:先上傳資源後引用EMR JAR資源
DataWorks支援從本地先上傳資源至Data Studio,再引用資源。Serverless Spark Batch任務編譯完成後,需擷取編譯後的JAR包,建議根據JAR包大小選擇不同方式儲存JAR包資源。JAR包小於500MB時,可將JAR包通過本地上傳的方式上傳為DataWorks的EMR JAR資源。
建立EMR JAR資源。
在左側導覽列單擊資源管理按鈕
,進入資源管理頁面。在資源管理頁面,單擊
按鈕,選擇,輸入名稱spark-examples_2.11-2.4.0.jar。單擊點擊上傳按鈕,上傳spark-examples_2.11-2.4.0.jar。
選擇儲存路徑、資料來源及資源群組。
重要資料來源需選擇綁定的Serverless Spark叢集。
單擊儲存按鈕進行儲存。

引用EMR JAR資源。
開啟建立的Serverless Spark Batch節點,停留在代碼編輯頁面。
在左側導覽列的資源管理中找到待引用資源,右鍵選擇引用資源。
選擇引用後,當Serverless Spark Batch節點的代碼編輯頁面出現如下引用成功提示時,表明已成功引用代碼資源。
##@resource_reference{"spark-examples_2.11-2.4.0.jar"} spark-examples_2.11-2.4.0.jar如果成功自動添加上述引用代碼,表明資源引用成功。其中,spark-examples_2.11-2.4.0.jar為您實際上傳的EMR JAR資源名稱。
改寫Serverless Spark Batch節點代碼,補充spark submit命令,改寫後的樣本如下。
重要Serverless Spark Batch節點編輯代碼時不支援備註陳述式,請務必參考如下樣本改寫任務代碼,不要隨意添加註釋,否則後續運行節點時會報錯。
EMR Serverless Spark下spark-submit命令無需設定deploy-mode,僅支援cluster模式。
##@resource_reference{"spark-examples_2.11-2.4.0.jar"} spark-submit --class org.apache.spark.examples.SparkPi spark-examples_2.11-2.4.0.jar 100命令
命令說明
class實際編譯的JAR包中的任務主Class,此處為
org.apache.spark.examples.SparkPi。說明更多參數說明請參見通過spark-submit提交任務
方案二:直接引用OSS資源
當前節點可直接通過引用OSS資源的方式,在運行EMR節點時,DataWorks會自動載入代碼中的OSS資源至本地使用。該方式常用於需要在EMR任務中運行JAR依賴、EMR任務需依賴指令碼等情境。
開發JAR資源:本文以SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar作示範。
上傳JAR資源。
登入OSS管理主控台,單擊所在地區左側導覽列的Bucket列表。
單擊目標Bucket名稱,進入檔案管理頁面。
單擊建立目錄,建立JAR資源的存放目錄。
進入存放目錄,將
SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar檔案上傳至Bucket。
引用JAR資源。
已建立的Serverless Spark Batch節點編輯頁面,編輯引用JAR資原始碼。
重要下面代碼中,OSS Bucket名稱為
mybucket,目錄為emr,需替換成您實際的路徑。spark-submit --class com.aliyun.emr.example.spark.SparkMaxComputeDemo oss://mybucket/emr/SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar引用參數說明:
參數
參數說明
class啟動並執行主類全名稱。
oss檔案路徑格式為
oss://{bucket}/{object}bucket:OSS用於儲存物件的容器,每一個bucket有唯一的名稱,登入OSS管理主控台,可查看當前登入帳號下所有Bucket。
object:儲存在bucket中的一個具體的對象(檔案名稱或路徑)。
說明更多參數說明請參見通過spark-submit提交任務
調試節點
在回合組態選擇配置計算資源、資源群組等。
配置項
說明
計算資源
選擇已綁定的EMR Serverless Spark計算資源。若無可用計算資源,可在下拉框中選擇建立計算資源。
資源群組
選擇已綁定工作空間的資源群組。
指令碼參數
在配置節點內容時,通過
${參數名}的方式定義變數,需要在指令碼參數處配置參數名、參數值資訊,任務運行時會將它動態替換為真實的取值。詳情請參見調度參數來源及其運算式。ServerlessSpark節點參數
Spark程式運行參數,支援:
DataWorks自訂運行參數,請參見附錄:DataWorks參數。
Spark內建屬性參數,請參見開源Spark屬性參數、Spark Conf自訂參數列表。
配置格式如下:
spark.eventLog.enabled : false,DataWorks會自動在最終下發Serverless Spark的代碼中進行補全,格式為:--conf key=value。說明DataWorks支援您設定全域Spark參數,即按照工作空間粒度指定DataWorks各模組使用的Spark參數,您可自行指定該全域Spark參數的優先順序是否高於指定模組內的Spark參數。關於設定全域Spark參數,詳情請參見設定全域Spark參數。
在節點編輯頁面上方工具列,單擊運行任務。
重要發布前,需將回合組態的ServerlessSpark節點參數同步至調度配置的ServerlessSpark節點參數處。
後續步驟
相關文檔
附錄:DataWorks參數
參數 | 配置說明 |
SERVERLESS_QUEUE_NAME | 指定任務確定資源隊列。當任務指定提交到隊列執行時,預設使用管理中心的叢集管理中叢集配置的預設資源隊列。如有資源隔離和管理需求,可通過添加隊列實現。詳情請參見管理資源隊列。 配置方式:
|
表徵圖喚起發布流程,通過該流程將任務發布至生產環境。專案目錄下的節點只有在發布至生產環境後,才會進行周期性調度。