全部產品
Search
文件中心

DataWorks:Serverless Spark Batch節點

更新時間:Feb 05, 2026

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資源

  1. 建立EMR JAR資源。

    1. 在左側導覽列單擊資源管理按鈕image,進入資源管理頁面。

    2. 資源管理頁面,單擊image按鈕,選擇建立資源 > EMR Jar,輸入名稱spark-examples_2.11-2.4.0.jar

    3. 單擊點擊上傳按鈕,上傳spark-examples_2.11-2.4.0.jar

    4. 選擇儲存路徑資料來源資源群組

      重要

      資料來源需選擇綁定的Serverless Spark叢集。

    5. 單擊儲存按鈕進行儲存。

    image

  2. 引用EMR JAR資源。

    1. 開啟建立的Serverless Spark Batch節點,停留在代碼編輯頁面。

    2. 在左側導覽列的資源管理中找到待引用資源,右鍵選擇引用資源

    3. 選擇引用後,當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資源名稱。

    4. 改寫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任務需依賴指令碼等情境。

  1. 開發JAR資源:本文以SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar作示範。

  2. 上傳JAR資源。

    1. 登入OSS管理主控台,單擊所在地區左側導覽列的Bucket列表

    2. 單擊目標Bucket名稱,進入檔案管理頁面。

    3. 單擊建立目錄,建立JAR資源的存放目錄。

    4. 進入存放目錄,將SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar檔案上傳至Bucket。

  3. 引用JAR資源。

    1. 已建立的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提交任務

調試節點

  1. 回合組態選擇配置計算資源資源群組等。

    配置項

    說明

    計算資源

    選擇已綁定的EMR Serverless Spark計算資源。若無可用計算資源,可在下拉框中選擇建立計算資源

    資源群組

    選擇已綁定工作空間的資源群組。

    指令碼參數

    在配置節點內容時,通過${參數名}的方式定義變數,需要在指令碼參數處配置參數名參數值資訊,任務運行時會將它動態替換為真實的取值。詳情請參見調度參數來源及其運算式

    ServerlessSpark節點參數

    Spark程式運行參數,支援:

    配置格式如下: spark.eventLog.enabled : false ,DataWorks會自動在最終下發Serverless Spark的代碼中進行補全,格式為:--conf key=value

    說明

    DataWorks支援您設定全域Spark參數,即按照工作空間粒度指定DataWorks各模組使用的Spark參數,您可自行指定該全域Spark參數的優先順序是否高於指定模組內的Spark參數。關於設定全域Spark參數,詳情請參見設定全域Spark參數

  2. 在節點編輯頁面上方工具列,單擊運行任務。

    重要

    發布前,需將回合組態ServerlessSpark節點參數同步至調度配置ServerlessSpark節點參數處。

後續步驟

  • 節點調度配置:若專案目錄下的節點需要周期性調度執行,您需要在節點右側的調度配置中設定調度策略,配置相關的調度屬性。

  • 節點發布:若任務需要發布至生產環境執行,請單擊介面image表徵圖喚起發布流程,通過該流程將任務發布至生產環境。專案目錄下的節點只有在發布至生產環境後,才會進行周期性調度。

  • 任務營運:任務發布後,您可以在營運中心查看周期任務的運行情況。詳情請參見營運中心入門

相關文檔

附錄:DataWorks參數

參數

配置說明

SERVERLESS_QUEUE_NAME

指定任務確定資源隊列。當任務指定提交到隊列執行時,預設使用管理中心叢集管理中叢集配置的預設資源隊列。如有資源隔離和管理需求,可通過添加隊列實現。詳情請參見管理資源隊列

配置方式:

  • 通過設定節點參數指定任務確定資源隊列。

  • 通過設定全域Spark參數指定任務確定資源隊列。