DolphinScheduler调度Spark

更新时间:

DolphinScheduler是一个分布式易扩展的可视化DAG工作流任务调度开源系统,能高效地执行和管理大数据流程。您可以在DolphinScheduler Web界面轻松创建、编辑和调度云原生数据仓库 AnalyticDB MySQL 版Spark作业。

前提条件

调度Spark SQL作业

AnalyticDB for MySQL支持使用批处理交互式两种方法执行Spark SQL。选择的执行方式不同,调度的操作步骤也有所不同。详细步骤如下:

批处理

  1. 安装Spark-Submit命令行工具配置相关参数

    说明

    您只需要配置keyIdsecretIdregionIdclusterIdrgName这些必填参数。

  2. 创建项目。

    1. 访问DolphinScheduler Web界面,在顶部导航栏单击项目管理

    2. 单击创建项目

    3. 在弹出的创建项目对话框中配置项目名称所属用户等参数。

  3. 创建工作流。

    1. 单击已创建的项目名称,进入工作流定义页面。

    2. 单击创建工作流,进入工作流DAG编辑页面。

    3. 在页面左侧选择SHELL,并将其拖拽到右侧空白画布中。

    4. 在弹出的当前节点设置对话框中配置如下参数:

      参数

      说明

      节点名称

      工作流节点的名称。

      脚本

      Spark-Submit命令行工具的安装地址及Spark SQL作业的业务代码。例如:/root/adb-spark-toolkit-submit/bin/spark-submit --class com.aliyun.adb.spark.sql.OfflineSqlTemplate local:///opt/spark/jars/offline-sql.jar "show databases" "select 100"

      重要

      使用Spark-Submit命令行工具调度Spark作业时,必须要在脚本中指定Spark-Submit命令行工具的地址,否则调度任务无法找到Spark-Submit命令。

      说明

      其他参数说明请参见DolphinScheduler任务参数

    5. 单击确认

    6. 单击页面右上角保存,在弹出的基本信息对话框中配置工作流名称等参数,单击确定

  4. 运行工作流。

    1. 单击工作流操作列的image按钮,上线工作流。

    2. 单击工作流操作列的image按钮。

    3. 在弹出的启动前请先设置参数对话框中,配置对应参数。

    4. 单击确定,运行工作流。

  5. 查看工作流详细信息。

    1. 在左侧导航栏单击任务实例

    2. 操作列,单击image按钮,查看工作流执行结果和日志信息

交互式

  1. 获取Spark Interactive型资源组的连接地址。

    1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版、基础版或湖仓版页签下,单击目标集群ID。

    2. 在左侧导航栏,单击集群管理 > 资源管理,单击资源组管理页签。

    3. 单击对应资源组操作列的详情,查看内网连接地址和公网连接地址。您可单击端口号括号内的image按钮,复制连接地址。

      以下两种情况,您需要单击公网地址后的申请网络,手动申请公网连接地址。

      • 提交Spark SQL作业的客户端工具部署在本地。

      • 提交Spark SQL作业的客户端工具部署在ECS上,且ECSAnalyticDB for MySQL不属于同一VPC。

  2. 创建数据源。

    1. 访问DolphinScheduler Web界面,在顶部导航栏单击数据源中心

    2. 单击创建数据源,选择数据源类型为Spark

    3. 在弹出的创建数据源对话框中配置如下参数:

      参数

      说明

      数据源

      选择为Spark

      源名称

      数据源名称。

      IP主机名

      请填写步骤1中获取的连接地址。连接地址中的default需替换为实际的数据库名,并且需要删除连接地址中的resource_group=<资源组名称>后缀。

      例如:jdbc:hive2://amv-t4naxpqk****sparkwho.ads.aliyuncs.com:10000/adb_demo

      端口

      Spark Interactive型资源组的端口号,固定为10000

      用户名

      AnalyticDB for MySQL的数据库账号。

      数据库名

      AnalyticDB for MySQL集群的数据库名称。

      说明

      其他参数为选填参数,详情请参见MySQL数据源

    4. 单击测试连接,测试成功后,单击确定

  3. 创建项目。

    1. 访问DolphinScheduler Web界面,在顶部导航栏单击项目管理

    2. 单击创建项目

    3. 在弹出的创建项目对话框中配置项目名称所属用户等参数。

  4. 创建工作流。

    1. 单击已创建的项目名称,进入工作流定义页面。

    2. 单击创建工作流,进入工作流DAG编辑页面。

    3. 在页面左侧选择SQL,并将其拖拽到右侧空白画布中。

    4. 在弹出的当前节点设置对话框中配置如下参数:

      参数

      说明

      数据源类型

      选择为Spark

      数据源实例

      选择步骤1创建的数据源。

      SQL类型

      SQL作业的类型,例如查询非查询

      SQL语句

      业务具体的SQL语句。

    5. 单击确认

    6. 单击页面右上角保存,在弹出的基本信息对话框中配置工作流名称等参数,单击确定

  5. 运行工作流。

    1. 单击工作流操作列的image按钮,上线工作流。

    2. 单击工作流操作列的image按钮。

    3. 在弹出的启动前请先设置参数对话框中,配置对应参数。

    4. 单击确定,运行工作流。

  6. 查看工作流详细信息。

    1. 在左侧导航栏单击任务实例

    2. 操作列,单击image按钮,查看工作流执行结果和日志信息

调度Spark Jar作业

  1. 安装Spark-Submit命令行工具配置相关参数

    说明

    您只需要配置keyIdsecretIdregionIdclusterIdrgName这些必填参数。如果您的Spark Jar包在本地,还需要配置ossUploadPathOSS相关参数。

  2. 创建项目。

    1. 访问DolphinScheduler Web界面,在顶部导航栏单击项目管理

    2. 单击创建项目

    3. 在弹出的创建项目对话框中配置项目名称所属用户等参数。

  3. 创建工作流。

    1. 单击已创建的项目名称,进入工作流定义页面。

    2. 单击创建工作流,进入工作流DAG编辑页面。

    3. 在页面左侧选择SHELL,并将其拖拽到右侧空白画布中。

    4. 在弹出的当前节点设置对话框中配置如下参数:

      参数

      说明

      节点名称

      工作流节点的名称。

      脚本

      Spark-Submit命令行工具的安装地址及Spark作业的业务代码。例如:

      /root/adb-spark-toolkit-submit/bin/spark-submit --class org.apache.spark.examples.SparkPi --name SparkPi --conf spark.driver.resourceSpec=medium --conf spark.executor.instances=2 --conf spark.executor.resourceSpec=medium local:///tmp/spark-examples.jar 1000

      重要

      使用Spark-Submit命令行工具调度Spark作业时,必须要在脚本中指定Spark-Submit命令行工具的地址,否则调度任务无法找到Spark-Submit命令。

      说明

      其他参数说明请参见DolphinScheduler任务参数

    5. 单击确认

    6. 单击页面右上角保存,在弹出的基本信息对话框中配置工作流名称等参数,单击确定

  4. 运行工作流。

    1. 单击工作流操作列的image按钮,上线工作流。

    2. 单击工作流操作列的image按钮。

    3. 在弹出的启动前请先设置参数对话框中,配置对应参数。

    4. 单击确定,运行工作流。

  5. 查看工作流详细信息。

    1. 在左侧导航栏单击任务实例

    2. 操作列,单击image按钮,查看工作流执行结果和日志信息