DolphinScheduler是一款分布式、易擴展的可視化DAG工作流任務調度開源系統,能高效地執行和管理大數據流程。本文為您介紹如何通過DolphinScheduler Web界面輕松創建、編輯、調度Spark作業。
背景信息
當前,Apache DolphinScheduler的AliyunServerlessSpark Task Plugin已成功合并至開源主分支,將在后續的正式版本中發布。在此之前,您可以選擇自行編譯主分支代碼,或通過cherry-pick相關的PR將該插件集成到您的項目中。
前提條件
已安裝JDK,且JDK的版本為1.8及以上版本。
已安裝Apache DolphinScheduler的AliyunServerlessSpark Task Plugin。
方式一:自行編譯主分支代碼,詳情請參見dolphinscheduler。
方式二:Apache DolphinScheduler AliyunServerlessSpark Task Plugin相關PR - [Feature-16127] Support emr serverless spark #16126。
操作流程
步驟一:創建數據源
訪問DolphinScheduler Web界面,在頂部導航欄單擊源中心。
單擊創建源,選擇源類型為ALIYUN_SERVERLESS_SPARK。
在彈出的創建數據源對話框中配置如下參數。
參數
說明
源名稱
數據源名稱。
Access Key Id
阿里云賬號的AccessKey ID。
Access Key Secret
阿里云賬號的AccessKey Secret。
Region Id
EMR Serverless Spark工作空間所在地域。例如,cn-beijing。
支持的地域信息,請參見支持地域。
單擊測試連接,測試成功后,單擊確定。
步驟二:創建項目
在頂部導航欄單擊項目管理。
單擊創建項目。
在彈出的創建項目對話框中配置項目名稱、所屬用戶等參數。詳情請參見創建項目。
步驟三:創建工作流
單擊已創建的項目名稱,進入工作流定義頁面。
單擊創建工作流,進入工作流DAG編輯頁面。
在頁面左側選擇ALIYUN_SERVERLESS_SPARK,并將其拖拽到右側空白畫布中。
在彈出的當前節點設置對話框中配置如下參數,單擊確定。
不同的任務類型需要配置的參數也各不相同。
提交JAR類型任務
參數
說明
數據源類型
選擇ALIYUN_SERVERLESS_SPARK。
數據源實例
選擇在之前步驟中創建的數據源。
workspace id
EMR Serverless Spark的工作空間ID。
resource queue id
EMR Serverless Spark的資源隊列ID。默認為
root_queue
。code type
任務類型,填寫為
JAR
。job name
自定義EMR Serverless Spark的任務名稱。例如,ds-emr-spark-jar。
entry point
文件位置。例如,oss://<yourBucketName>/spark-resource/examples/jars/spark-examples_2.12-3.3.1.jar
entry point arguments
傳入Spark程序的參數,以
#
作為分隔符。spark submit parameters
指定Spark提交時的參數。示例如下。
--class org.apache.spark.examples.SparkPi --conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=1
is production
若為生產任務,開啟該開關。
engine release version
引擎版本,默認為
esr-2.1-native (Spark 3.3.1, Scala 2.12, Native Runtime)
。提交SQL類型任務
參數
說明
數據源類型
選擇ALIYUN_SERVERLESS_SPARK。
數據源實例
選擇在之前步驟中創建的數據源。
workspace id
EMR Serverless Spark的工作空間ID。
resource queue id
EMR Serverless Spark的資源隊列ID。默認為
root_queue
。code type
任務類型,填寫為
SQL
。job name
自定義EMR Serverless Spark的任務名稱。例如,ds-emr-spark-sql。
entry point
文件位置,需填寫有效且非空的路徑。
entry point arguments
傳入Spark程序的參數,以
#
作為分隔符。示例如下:提交SQL腳本任務
-e#show tables;show tables;
提交OSS中的SQL腳本任務
-f#oss://<yourBucketName>/spark-resource/examples/sql/show_db.sql
spark submit parameters
指定Spark提交時的參數。示例如下。
--class org.apache.spark.sql.hive.thriftserver.SparkSQLCLIDriver --conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=1
is production
若為生產任務,開啟該開關。
engine release version
引擎版本,默認為
esr-2.1-native (Spark 3.3.1, Scala 2.12, Native Runtime)
。提交PySpark類型任務
參數
說明
數據源類型
選擇ALIYUN_SERVERLESS_SPARK。
數據源實例
選擇在之前步驟中創建的數據源。
workspace id
EMR Serverless Spark的工作空間ID。
resource queue id
EMR Serverless Spark的資源隊列ID。默認為
root_queue
。code type
任務類型,填寫為
PYTHON
。job name
自定義EMR Serverless Spark的任務名稱。例如,ds-emr-spark-jar。
entry point
文件位置。例如,
oss://<yourBucketName>/spark-resource/examples/src/main/python/pi.py
。entry point arguments
傳入Spark程序的參數,以
#
作為分隔符。例如,本示例填寫為1
。spark submit parameters
指定Spark提交時的參數。示例如下。
--conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=1
is production
若為生產任務,開啟該開關。
engine release version
引擎版本,默認為
esr-2.1-native (Spark 3.3.1, Scala 2.12, Native Runtime)
。
相關文檔
DolphinScheduler官方文檔,請參見Apache DolphinScheduler。