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。