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