本文將為您介紹批任務或流任務開發的配置項說明和操作步驟。
前提條件
已建立工作空間,詳情請參見管理工作空間。
操作步驟
進入開發頁面。
在左側導覽列,選擇。
在Spark頁面,單擊目標工作空間名稱。
在EMR Serverless Spark頁面,單擊左側導覽列中的数据开发。
建立任務。
在開發目錄頁簽下,單擊
(建立)表徵圖。在彈出的對話方塊中,輸入名称,根據實際需求在批任务或流任务中選擇類型,然後單擊确定。
在右上方選擇隊列。
添加隊列的具體操作,請參見管理資源隊列。
在建立的任務編輯器中,編輯相關參數。
JAR
參數
說明
主 jar 资源
運行任務時必須的主要JAR包。
工作空间资源:提前在文件管理頁面上傳的檔案。
OSS 资源:儲存在阿里雲OSS中的檔案。
引擎版本
Spark的版本,詳情請參見引擎版本介紹。
Main Class
提交Spark任務時所指定的主類。
运行参数
任務運行過程中所需的配置項或傳遞給主類的自訂參數。多個參數使用空格分隔。
超时时间
此任務的最大完成時間,如果任務啟動並執行時間超過此閾值,系統將自動停止任務運行。預設值為空白,表示不設定逾時限制。
网络连接
選擇已建立的網路連接,以便直接存取VPC內的資料來源或外部服務。有關建立網路連接的具體操作,請參見EMR Serverless Spark與其他VPC間網路互連。
挂载纳管文件目录
預設情況下,該功能處於關閉狀態。如果需要使用該功能,請先在文件管理的纳管文件目录頁簽新增檔案目錄,詳情請參見納管檔案目錄。
開啟後,系統會將納管檔案目錄掛載到任務中,從而允許在任務中直接讀取和寫入該目錄下的檔案。
掛載操作會佔用一定的Driver計算資源。預設佔用的資源為以下兩者的較大值:
固定資源:0.3核心(Core)+ 1 GB記憶體。
動態資源:
spark.driver資源的10%(即0.1 × spark.driver的核心數和記憶體)。
例如,
spark.driver配置為4核心(Core)和8 GB記憶體,則動態資源為0.4核心 + 0.8 GB記憶體。此時,實際佔用資源為max(0.3 Core + 1GB, 0.4 Core + 0.8GB),即0.4核心 + 1 GB記憶體。說明開啟掛載後,預設只掛載到Driver,如需同時掛載至Executor,需要開啟掛載到 Executor。
重要掛載納管NAS檔案目錄後,必須配置網路連接,網路連接的VPC必須和NAS的掛載點在同一VPC下。
掛載到 Executor
開啟後,系統會將納管檔案目錄掛載到任務 Executor中,從而允許在任務 Executor中直接讀取和寫入該目錄下的檔案。
掛載將佔用 Executor 資源,具體佔用資源佔比隨掛載檔案使用方式浮動。
files 资源
在提交任務時,通過
--files參數指定的檔案將在任務提交過程中被複製到Executor的工作目錄中,以確保Spark任務在運行時能夠訪問這些檔案。在指定資源類型時,您可以根據需要選擇工作空间资源或OSS 资源。
archives 资源
在提交任務時,通過
--archives參數指定的檔案將在任務提交過程中被解壓分發到 Executor上的歸檔檔案。在指定資源類型時,您可以根據需要選擇工作空间资源或OSS 资源。
jars 资源
在提交任務時,通過
--jars參數指定所需的JAR依賴檔案。在指定資源類型時,您可以根據需要選擇工作空间资源或OSS 资源。
spark.driver.cores
Spark應用程式中驅動程式使用的CPU核心數。
spark.driver.memory
Spark應用程式中驅動程式可用的記憶體大小。
spark.executor.cores
Spark應用程式中每個執行器(Executor)使用的虛擬CPU核心數。
spark.executor.memory
Spark應用程式中每個執行器(Executor)可用的記憶體大小。
spark.executor.instances
Spark分配的執行器(Executor)數量。
动态资源分配
預設關閉。開啟後,需要配置以下參數:
executors 数量下限:預設為2。
executors 数量上限:如果未設定spark.executor.instances,則預設值為10。
更多記憶體配置
spark.driver.memoryOverhead:每個Driver可利用的非堆記憶體。如果未設定該參數,Spark會根據預設值自動分配,預設值為
max(384MB, 10% × spark.driver.memory)。spark.executor.memoryOverhead:每個Executor可利用的非堆記憶體。如果未設定該參數,Spark會根據預設值自動分配,預設值為
max(384MB, 10% × spark.executor.memory)。spark.memory.offHeap.size:Spark可用的堆外記憶體大小。預設值為1 GB。
僅在
spark.memory.offHeap.enabled設定為true時生效。預設情況下,當採用Fusion Engine時,該功能將處於啟用狀態,其非堆記憶體預設設定為1 GB。
Spark配置
填寫Spark配置資訊,預設以空格符分隔,例如,
key value。标签
填寫標籤索引值對,可以提升任務管理的便捷性和精確性。
PySpark
參數
說明
主 Python 资源
運行任務時必須的主要Python檔案。
工作空间资源:提前在文件管理頁面上傳的檔案。
OSS 资源:儲存在阿里雲OSS中的檔案。
引擎版本
Spark的版本,詳情請參見引擎版本介紹。
运行参数
任務運行過程中所需的配置項或傳遞給主類的自訂參數。
超时时间
此任務的最大完成時間,如果任務啟動並執行時間超過此閾值,系統將自動停止任務運行。預設值為空白,表示不設定逾時限制。
运行环境
任務運行所需的資源將根據所選環境進行預配置。
网络连接
選擇已建立的網路連接,以便直接存取VPC內的資料來源或外部服務。有關建立網路連接的具體操作,請參見EMR Serverless Spark與其他VPC間網路互連。
挂载纳管文件目录
預設情況下,該功能處於關閉狀態。如果需要使用該功能,請先在文件管理的纳管文件目录頁簽新增檔案目錄,詳情請參見納管檔案目錄。
開啟後,系統會將納管檔案目錄掛載到任務中,從而允許在任務中直接讀取和寫入該目錄下的檔案。
掛載操作會佔用一定的Driver計算資源。預設佔用的資源為以下兩者的較大值:
固定資源:0.3核心(Core)+ 1 GB記憶體。
動態資源:
spark.driver資源的10%(即0.1 × spark.driver的核心數和記憶體)。
例如,
spark.driver配置為4核心(Core)和8 GB記憶體,則動態資源為0.4核心 + 0.8 GB記憶體。此時,實際佔用資源為max(0.3 Core + 1GB, 0.4 Core + 0.8GB),即0.4核心 + 1 GB記憶體。說明開啟掛載後,預設只掛載到Driver,如需同時掛載至Executor,需要開啟掛載到 Executor。
重要掛載納管NAS檔案目錄後,必須配置網路連接,網路連接的VPC必須和NAS的掛載點在同一VPC下。
掛載到 Executor
開啟後,系統會將納管檔案目錄掛載到任務 Executor中,從而允許在任務 Executor中直接讀取和寫入該目錄下的檔案。
掛載將佔用 Executor 資源,具體佔用資源佔比隨掛載檔案使用方式浮動。
files 资源
指定需要分發到叢集中所有Executor節點上的檔案清單。
在指定資源類型時,您可以根據需要選擇工作空间资源或OSS 资源。
pyfiles 资源
在提交任務時,通過
--py-files參數指定的檔案將作為Python依賴檔案在任務提交過程中一併分發。在指定資源類型時,您可以根據需要選擇工作空间资源或OSS 资源。
archives 资源
在提交任務時,通過
--archives參數指定的檔案將在任務提交過程中被解壓分發到Executor上的歸檔檔案。在指定資源類型時,您可以根據需要選擇工作空间资源或OSS 资源。
jars 资源
在提交任務時,通過
--jars參數指定所需的JAR依賴檔案。在指定資源類型時,您可以根據需要選擇工作空间资源或OSS 资源。
spark.driver.cores
Spark應用程式中驅動程式使用的CPU核心數。
spark.driver.memory
Spark應用程式中驅動程式可用的記憶體大小。
spark.executor.cores
Spark應用程式中每個執行器(Executor)使用的虛擬CPU核心數。
spark.executor.memory
Spark應用程式中每個執行器(Executor)可用的記憶體大小。
spark.executor.instances
Spark分配的執行器(Executor)數量。
动态资源分配
預設關閉。開啟後,需要配置以下參數:
executors 数量下限:預設為2。
executors 数量上限:如果未設定spark.executor.instances,則預設值為10。
更多記憶體配置
spark.driver.memoryOverhead:每個Driver可利用的非堆記憶體。如果未設定該參數,Spark會根據預設值自動分配,預設值為
max(384MB, 10% × spark.driver.memory)。spark.executor.memoryOverhead:每個Executor可利用的非堆記憶體。如果未設定該參數,Spark會根據預設值自動分配,預設值為
max(384MB, 10% × spark.executor.memory)。spark.memory.offHeap.size:Spark可用的堆外記憶體大小。預設值為1 GB。
僅在
spark.memory.offHeap.enabled設定為true時生效。預設情況下,當採用Fusion Engine時,該功能將處於啟用狀態,其非堆記憶體預設設定為1 GB。
Spark配置
填寫Spark配置資訊,預設以空格符分隔,例如,
key value。标签
填寫標籤索引值對,可以提升任務管理的便捷性和精確性。
SQL
參數
說明
SQL 文件
提交任務時所需的檔案。
工作空间资源:提前在文件管理頁面上傳的檔案。
OSS 资源:儲存在阿里雲OSS中的檔案。
引擎版本
Spark的版本,詳情請參見引擎版本介紹。
超时时间
此任務的最大完成時間,如果任務啟動並執行時間超過此閾值,系統將自動停止任務運行。預設值為空白,表示不設定逾時限制。
网络连接
選擇已建立的網路連接,以便直接存取VPC內的資料來源或外部服務。有關建立網路連接的具體操作,請參見EMR Serverless Spark與其他VPC間網路互連。
挂载纳管文件目录
預設情況下,該功能處於關閉狀態。如果需要使用該功能,請先在文件管理的纳管文件目录頁簽新增檔案目錄,詳情請參見納管檔案目錄。
開啟後,系統會將納管檔案目錄掛載到任務中,從而允許在任務中直接讀取和寫入該目錄下的檔案。
掛載操作會佔用一定的Driver計算資源。預設佔用的資源為以下兩者的較大值:
固定資源:0.3核心(Core)+ 1 GB記憶體。
動態資源:
spark.driver資源的10%(即0.1 × spark.driver的核心數和記憶體)。
例如,
spark.driver配置為4核心(Core)和8 GB記憶體,則動態資源為0.4核心 + 0.8 GB記憶體。此時,實際佔用資源為max(0.3 Core + 1GB, 0.4 Core + 0.8GB),即0.4核心 + 1 GB記憶體。說明開啟掛載後,預設只掛載到Driver,如需同時掛載至Executor,需要開啟掛載到 Executor。
重要掛載納管NAS檔案目錄後,必須配置網路連接,網路連接的VPC必須和NAS的掛載點在同一VPC下。
掛載到 Executor
開啟後,系統會將納管檔案目錄掛載到任務 Executor中,從而允許在任務 Executor中直接讀取和寫入該目錄下的檔案。
掛載將佔用 Executor 資源,具體佔用資源佔比隨掛載檔案使用方式浮動。
spark.driver.cores
Spark應用程式中驅動程式使用的CPU核心數。
spark.driver.memory
Spark應用程式中驅動程式可用的記憶體大小。
spark.executor.cores
Spark應用程式中每個執行器(Executor)使用的虛擬CPU核心數。
spark.executor.memory
Spark應用程式中每個執行器(Executor)可用的記憶體大小。
spark.executor.instances
Spark分配的執行器(Executor)數量。
动态资源分配
預設關閉。開啟後,需要配置以下參數:
executors 数量下限:預設為2。
executors 数量上限:如果未設定spark.executor.instances,則預設值為10。
更多記憶體配置
spark.driver.memoryOverhead:每個Driver可利用的非堆記憶體。如果未設定該參數,Spark會根據預設值自動分配,預設值為
max(384MB, 10% × spark.driver.memory)。spark.executor.memoryOverhead:每個Executor可利用的非堆記憶體。如果未設定該參數,Spark會根據預設值自動分配,預設值為
max(384MB, 10% × spark.executor.memory)。spark.memory.offHeap.size:Spark可用的堆外記憶體大小。預設值為1 GB。
僅在
spark.memory.offHeap.enabled設定為true時生效。預設情況下,當採用Fusion Engine時,該功能將處於啟用狀態,其非堆記憶體預設設定為1 GB。
Spark配置
填寫Spark配置資訊,預設以空格符分隔,例如,
key value。标签
填寫標籤索引值對,可以提升任務管理的便捷性和精確性。
Spark Submit
參數
說明
引擎版本
Spark的版本,詳情請參見引擎版本介紹。
脚本
填寫您的Spark Submit指令碼。
例如,指令碼內容如下。
--class org.apache.spark.examples.SparkPi \ --conf spark.executor.memory=2g \ oss://<YourBucket>/spark-examples_2.12-3.5.2.jar超时时间
此任務的最大完成時間,如果任務啟動並執行時間超過此閾值,系統將自動停止任務運行。預設值為空白,表示不設定逾時限制。
网络连接
選擇已建立的網路連接,以便直接存取VPC內的資料來源或外部服務。有關建立網路連接的具體操作,請參見EMR Serverless Spark與其他VPC間網路互連。
挂载纳管文件目录
預設情況下,該功能處於關閉狀態。如果需要使用該功能,請先在文件管理的纳管文件目录頁簽新增檔案目錄,詳情請參見納管檔案目錄。
開啟後,系統會將納管檔案目錄掛載到任務中,從而允許在任務中直接讀取和寫入該目錄下的檔案。
掛載操作會佔用一定的Driver計算資源。預設佔用的資源為以下兩者的較大值:
固定資源:0.3核心(Core)+ 1 GB記憶體。
動態資源:
spark.driver資源的10%(即0.1 × spark.driver的核心數和記憶體)。
例如,
spark.driver配置為4核心(Core)和8 GB記憶體,則動態資源為0.4核心 + 0.8 GB記憶體。此時,實際佔用資源為max(0.3 Core + 1GB, 0.4 Core + 0.8GB),即0.4核心 + 1 GB記憶體。說明開啟掛載後,預設只掛載到Driver,如需同時掛載至Executor,需要開啟掛載到 Executor。
重要掛載納管NAS檔案目錄後,必須配置網路連接,網路連接的VPC必須和NAS的掛載點在同一VPC下。
掛載到 Executor
開啟後,系統會將納管檔案目錄掛載到任務 Executor中,從而允許在任務 Executor中直接讀取和寫入該目錄下的檔案。
掛載將佔用 Executor 資源,具體佔用資源佔比隨掛載檔案使用方式浮動。
spark.driver.cores
Spark應用程式中驅動程式使用的CPU核心數。
spark.driver.memory
Spark應用程式中驅動程式可用的記憶體大小。
spark.executor.cores
Spark應用程式中每個執行器(Executor)使用的虛擬CPU核心數。
spark.executor.memory
Spark應用程式中每個執行器(Executor)可用的記憶體大小。
spark.executor.instances
Spark分配的執行器(Executor)數量。
动态资源分配
預設關閉。開啟後,需要配置以下參數:
executors 数量下限:預設為2。
executors 数量上限:如果未設定spark.executor.instances,則預設值為10。
更多記憶體配置
spark.driver.memoryOverhead:每個Driver可利用的非堆記憶體。如果未設定該參數,Spark會根據預設值自動分配,預設值為
max(384MB, 10% × spark.driver.memory)。spark.executor.memoryOverhead:每個Executor可利用的非堆記憶體。如果未設定該參數,Spark會根據預設值自動分配,預設值為
max(384MB, 10% × spark.executor.memory)。spark.memory.offHeap.size:Spark可用的堆外記憶體大小。預設值為1 GB。
僅在
spark.memory.offHeap.enabled設定為true時生效。預設情況下,當採用Fusion Engine時,該功能將處於啟用狀態,其非堆記憶體預設設定為1 GB。
Spark配置
填寫Spark配置資訊,預設以空格符分隔,例如,
key value。标签
填寫標籤索引值對,可以提升任務管理的便捷性和精確性。
(可選)在任務開發頁面右側,您可以單擊版本信息頁簽,查看版本資訊或進行版本對比。
運行並發布任務。
單擊运行。
運行任務後,您可以在下方的运行记录地區,單擊操作列的详情,跳轉至任务总览頁,查看該任務的詳細資料。
單擊右上方的发布。
在发布對話方塊中,可以輸入发布信息,然後單擊确定。
相關文檔
JAR任務完整的開發流程樣本,請參見JAR開發快速入門。
Spark Submit任務完整的開發流程樣本,請參見Spark Submit開發快速入門。
SQL任務和任務編排完整的開發流程樣本,請參見SparkSQL開發快速入門。
PySpark批任務完整的開發流程樣本,請參見PySpark開發快速入門。
PySpark流任務完整的開發流程樣本,請參見通過Serverless Spark提交PySpark流任務。
常見問題
Q1:如何設定任務失敗後的自動重試策略?
在流任務中,為了提高容錯能力,可以通過以下兩個 Spark 配置項設定失敗重試機制:
spark.emr.serverless.streaming.fail.retry.interval 60 # 稍候再試:60秒
spark.emr.serverless.streaming.fail.retry.time 3 # 最多重試3次