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。
支援的地區資訊,請參見支援地區。
單擊測試連接,測試成功後,單擊確定。
步驟二:建立專案
在頂部導覽列單擊專案管理。
單擊建立專案。
在彈出的建立專案對話方塊中配置專案名稱、所屬使用者等參數。詳情請參見Create Project。
步驟三:建立工作流程
單擊已建立的專案名稱,進入工作流程定義頁面。
單擊建立工作流程,進入工作流程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=1is 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=1is 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=1is production
若為生產任務,開啟該開關。
engine release version
引擎版本,預設為
esr-2.1-native (Spark 3.3.1, Scala 2.12, Native Runtime)。
相關文檔
DolphinScheduler官方文檔,請參見Apache DolphinScheduler。