Spark作業編輯頁面支持執行Spark作業,為用戶提供全托管式的Spark計算服務。
在總覽頁面,單擊Spark作業右上角的“創建作業”,或在Spark作業管理頁面,單擊右上角的“創建作業”,均可進入Spark作業編輯頁面。
進入Spark作業編輯頁面,頁面會提示系統將創建DLI臨時數據桶。該桶用于存儲使用DLI服務產生的臨時數據,例如:作業日志、作業結果等。如果不創建該桶,將無法查看作業日志。桶名稱為系統默認。
如果不需要創建DLI臨時數據桶,并且希望不再收到該提示,可以勾選“下次不再提示”并單擊“取消”。
前提條件
1.請先將所要依賴的程序包通過“數據管理>程序包管理”頁面上傳至對應的OBS桶中。具體操作請參考創建程序包。
2.創建Spark作業,訪問其他外部數據源時,如訪問OpenTSDB、HBase、Kafka、DWS、RDS、ES、CloudTable、DCS Redis、DDS Mongo等,需要先創建跨源連接,打通作業運行隊列到外部數據源之間的網絡。
-
當前Spark作業支持訪問的外部數據源詳情請參見跨源連接和跨源分析概述。
-
創建跨源連接操作請參見增強型跨源連接。
創建完跨源連接后,可以通過“資源管理 > 隊列管理”頁面,單擊“操作”列“更多”中的“測試地址連通性”,驗證隊列到外部數據源之間的網絡連通是否正常。詳細操作可以參考測試地址聯通性。
操作步驟
1.在DLI管理控制臺的左側導航欄中,單擊“作業管理”>“Spark作業”,進入“Spark作業”頁面。
點擊右上角的“創建作業”,在Spark作業編輯窗口,可以選擇使用“表單模式”或者“API模式”進行參數設置。
以下以“表單模式”頁面進行說明,“API模式”即采用API接口模式設置參數及參數值。
2.選擇運行隊列。
在下拉列表中選擇要使用的隊列。
3.作業配置。
參考下表配置作業參數。
作業配置參數說明
參數名稱 參數描述 作業名稱(--name) 設置作業名稱。
應用程序
選擇需要執行的程序包。包括“.jar”和“.py”兩種類型。
主類(--class)
輸入主類名稱。當應用程序類型為“.jar”時,主類名稱不能為空。
Spark參數(--conf)
以“key=value”的形式設置提交Spark作業的屬性,多個參數以Enter鍵分隔。
Spark參數value支持全局變量替換。例如,在“全局配置”>“全局變量”中新增全局變量key為custom_class,可以使用"spark.sql.catalog"={{custom_class}},在提交作業之后進行變量替換。
說明
l? ? Spark作業不支持自定義設置jvm垃圾回收算法。
l? ? 如果選擇Spark版本為3.1.1時,需在Spark參數(--conf)配置跨源作業的依賴模塊。配置樣例請參考下表“Spark參數”。
作業特性
“所屬隊列”選擇CCE隊列時,設置該參數。表示用戶作業使用的Spark鏡像類型,具體說明如下:
l? ? 基礎型:DLI提供的基礎鏡像,運行非AI相關作業時選擇“基礎型”。
l? ? AI增強型:DLI提供的AI鏡像,運行AI相關作業時選擇“AI增強型”。
l? ? 自定義鏡像:自定義的Spark鏡像,需要選擇“容器鏡像服務”中設置的鏡像名稱及版本。
依賴jar包(--jars)
運行spark作業依賴的jars。可以輸入jar包名稱,也可以輸入對應jar包文件的的OBS路徑,格式為:obs://桶名/文件夾路徑名/包名。
依賴python文件(--py-flies)
運行spark作業依賴的py-files。可以輸入Python文件名稱,也可以輸入Python文件對應的OBS路徑,格式為:obs://桶名/文件夾路徑名/文件名。
其他依賴文件(--files)
運行spark作業依賴的其他files。可以輸入依賴文件名稱,也可以輸入對應的OBS路徑,格式為:obs://桶名/文件夾路徑名/文件名。
依賴分組
在創建程序包時,如果選擇了分組,在此處選擇對應的分組,則可以同時選中該分組中的所有程序包和文件。創建程序包操作請參考創建程序包。
訪問元數據
是否通過Spark作業訪問元數據。。
是否重試
作業失敗后是否進行重試。
選擇“是”需要配置以下參數:
“最大重試次數”:設置作業失敗重試次數,最大值為“100”。
高級配置
l? ? 暫不配置
l? ? 現在配置:包括以下兩項參數
????? 選擇依賴資源:具體參數請參考下表“選擇依賴資源參數說明”。
????? 計算資源規格:具體參數請參考下表“計算資源規格參數說明”。
Spark參數(--conf)配置跨源作業的依賴模塊說明
數據源類型 樣例 CSS
spark.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/css/* spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/css/*
DWS
spark.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/dws/*
spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/dws/*
HBase
spark.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/hbase/*
spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/hbase/*
OpenTSDB
park.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/opentsdb/*
spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/opentsdb/*
RDS
spark.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/rds/*
spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/rds/*
Redis
spark.driver.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/redis/*
spark.executor.extraClassPath=/usr/share/extension/dli/spark-jar/datasource/redis/*
4.高級包括以下兩項參數:
- 選擇依賴資源:具體參數請參考下表“選擇依賴資源參數說明”。
- 計算資源規格:具體參數請參考下表“計算資源規格參數說明”。
說明Spark資源并行度由Executor數量和Executor CPU核數共同決定。
任務可并行執行的最大Task數量=Executor個數 * Executor CPU核數。
您可以根據購買的隊列資源合理規劃計算資源規格。
需要注意的是,Spark任務執行需要driver、executor等多個角色共同調度完成,因此“Executor個數*Executor CPU核數”要小于隊列的計算資源CU數,避免其他Spark任務角色無法啟動。更多Spark任務角色的相關信息請參考Spark官方。
Spark作業參數計算公式:
CU數=driver CPU核數+Executor個數*Executor CPU核數
內存數=driver內存+(Executor個數*Executor內存)
選擇依賴資源參數說明
參數名稱 參數描述 modules 如果選擇Spark版本為3.1.1時,無需選擇Module模塊, 需在Spark參數(--conf)配置跨源作業的依賴模塊。
DLI系統提供的用于執行跨源作業的依賴模塊訪問各個不同的服務,選擇不同的模塊:
l? ? MRS HBase: ? sys.datasource.hbase
l? ? DDS:sys.datasource.mongo
l? ? MRS OpenTSDB: ? sys.datasource.opentsdb
l? ? DWS: sys.datasource.dws
l? ? RDS MySQL: sys.datasource.rds
l? ? RDS PostGre: ? sys.datasource.rds
l? ? DCS: sys.datasource.redis
l? ? CSS: sys.datasource.css
資源包
運行spark作業依賴的jar包。
計算資源規格參數說明
參數名稱 參數描述 資源規格 下拉選擇所需的資源規格。系統提供3種資源規格供您選擇。
資源規格包含以下參數:
l? ? Executor內存
l? ? Executor CPU核數
l? ? Executor個數
l? ? driver CPU核數
l? ? driver內存
最終配置結果以修改后數據為準。
Executor內存
在所選資源規格基礎上自定義Executor內存規格。
代表每個Executor的內存。通常建議Executor CPU核數:Executor內存=1:4。
Executor CPU核數
用于設置Spark作業申請的每個Executor的CPU核數,決定每個Executor并行執行Task的能力。
Executor個數
用于設置Spark作業申請的Executor的數量。
driver CPU核數
用于設置driver ? CPU核數。
driver內存
在用于設置driver內存大小,通常建議即driver CPU核數:driver內存=1:4。
5.完成作業的參數配置后,單擊Spark作業編輯頁面右上方“執行”,提交作業。
當頁面顯示“批處理作業提交成功”,可在“Spark作業”管理頁面查看提交作業的狀態及日志等。