MaxCompute Spark作業可通過Local模式、Cluster模式執行,此外,您也可在DataWorks中運行MaxCompute Spark離線作業(Cluster模式),以便與其它類型執行節點整合和調度。本文為您介紹如何通過DataWorks實現MaxCompute Spark作業的配置與調度。
前提條件
- 工作空間已綁定引擎:在工作空間配置頁面綁定MaxCompute引擎後,資料開發(DataStudio)頁面才會顯示MaxCompute目錄。詳情請參見綁定MaxCompute引擎。
- 已建立商務程序:DataWorks使用商務程序存放建立的節點。因此,建立節點前需先建立商務程序。詳情請參見建立商務程序。
背景資訊
MaxCompute Spark是MaxCompute提供的相容開源Spark的計算服務。它在統一的計算資源和資料集許可權體系之上,提供Spark計算架構,支援您以熟悉的開發使用方式提交運行Spark作業,滿足更豐富的資料處理分析需求。在DataWorks中,您可通過ODPS Spark節點實現MaxCompute Spark任務的調度運行,以及與其他作業的整合操作。
MaxCompute Spark支援使用Java、Scala和Python語言進行開發,並通過Local、Cluster模式運行任務,在DataWorks中運行MaxCompute Spark離線作業時採用Cluster模式執行。更多關於MaxCompute Spark運行模式的介紹,詳情請參見運行模式。
開發MaxCompute Spark任務
ODPS Spark節點支援使用Java/Scala
和Python
語言運行MaxCompute Spark離線作業,不同語言開發步驟及配置介面存在差異,您可根據業務需要選擇使用。
開發語言:Java/Scala
在ODPS Spark節點執行Java或Scala語言類型代碼前,您需先在本地開發好MaxCompute Spark作業代碼,再通過DataWorks上傳為MaxCompute的資源。步驟如下:- 準備開發環境。
根據所使用系統類別型,準備運行MaxCompute Spark任務的開發環境,詳情請參見搭建Linux開發環境、搭建Windows開發環境。
- 開發Java/Scala代碼。
在ODPS Spark節點執行Java或Scala語言類型代碼前,需先在本地或已有環境開發好MaxCompute Spark代碼,建議使用MaxCompute Spark提供的專案樣本工程模板進行開發。
- 打包代碼並上傳至DataWorks。
代碼開發完成後,需將其打包,並通過DataWorks上傳為MaxCompute資源,詳情請參見建立並使用MaxCompute資源。
開發語言:Python(使用預設Python環境實現)
開發語言:Python(使用自訂Python環境實現)
若平台提供的預設Python環境無法滿足您的業務需求,則可根據如下步驟自訂Python環境,執行MaxCompute Spark任務。- 本地準備Python環境。
您可參考PySpark Python版本和依賴支援,根據業務需要配置可用的Python環境。
- 打包環境並上傳至DataWorks。
將Python環境壓縮為一個Zip包,並通過DataWorks上傳為MaxCompute資源,作為後續運行MaxCompute Spark任務的執行環境。詳情請參見建立並使用MaxCompute資源。
建立ODPS Spark節點並運行Spark任務
步驟一:進入ODPS Spark節點建立入口
進入資料開發頁面。
登入DataWorks控制台,單擊左側導覽列的資料建模與開發 > 資料開發,在下拉框中選擇對應工作空間後單擊進入資料開發。
- 進入節點建立入口。在資料開發頁面基於具體商務程序建立節點,並根據介面指引配置節點的名稱、路徑等基本資料。建立入口及步驟如下圖。
步驟二:配置ODPS Spark節點參數
main
。main
運行結束(即狀態為Success
或Fail
)時,對應的Spark作業便會結束。此外,spark-defaults.conf
中的配置需逐條加到ODPS Spark節點配置項中。例如,Executor
的數量、記憶體大小和spark.hadoop.odps.runtime.end.point
的配置。spark-defaults.conf
檔案,而是需將spark-defaults.conf
檔案中的配置都逐條加到ODPS Spark節點的配置項中。![Spark任務配置](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-HK/2030478171/p577602.png)
參數 | 描述 | 對應的spark-submit命令 |
spark版本 | 包括Spark1.x、Spark2.x、Spark3.x版本。 | — |
語言 | 此處選擇Java/Scala或Python。請根據實際MaxCompute Spark開發語言進行選擇。 | — |
選擇主資源 | 指定任務所使用的主JAR資源檔或主Python資源。 此處的資源檔需提前上傳至DataWorks並已提交,詳情請參見建立並使用MaxCompute資源。 | app jar or Python file |
配置項 | 指定提交作業時的配置項。其中:
| --conf PROP=VALUE |
Main Class | 配置主類名稱。當開發語言為Java/Scala 時,需要配置該參數。 | --class CLASS_NAME |
參數 | 您可根據需要添加參數,多個參數之間用空格分隔。DataWorks支援使用調度參數,此處參數配置格式為${變數名}。配置完成後需在右側導覽列 處給變數賦值。 說明 調度參數支援的賦值格式請參見調度參數支援的格式。 | [app arguments] |
選擇其他資源 | 您可根據需要,選擇使用如下資源。
| 不同資源分別對應如下命令:
|
步驟三:提交並發布節點
ODPS Spark節點需要發布生產環境後,才會自動調度運行。
- 在節點編輯頁面,單擊右側的調度配置,配置節點的調度屬性,詳情請參見任務調度屬性配置概述。
- 儲存並提交節點。重要 您需要設定節點的重跑屬性和依賴的上遊節點,才可以提交節點。
- 單擊工具列中的
表徵圖,儲存節點。
- 單擊工具列中的
表徵圖,在提交新版本對話方塊輸入變更描述,單擊確認,提交節點。
節點提交後,將按照配置調度執行。
如果您使用的是標準模式的工作空間,提交成功後,需單擊右上方的發布,發布節點,具體操作請參見發布任務。 - 單擊工具列中的