DLA Serverless Spark目前支持DataWorks和DMS编排调度任务,同时也提供自定义SDK和Spark-Submit工具包供用户自定义编排调度。本文将介绍如何使用DataWorks来编排调度Spark任务。

DataWorks

DataWorks是用于工作流可视化开发和托管调度运维的海量数据离线加工分析平台,支持按照时间和依赖关系的任务全面托管调度。

任务调度中一个重要的功能是任务之间的依赖,为演示这个功能,本文会在DataWorks中创建三个DLA Spark任务, 任务之间的依赖关系如下图所示,任务test_2和 test_3 依赖上游任务test_1完成之后,才能执行。1
前提条件
  1. 您已经开通DLADataWorks以及OSS服务,且DLA、DataWorks、OSS所属Region相同。在本文中三个服务所属Region均为华北2(北京)。
  2. 创建DataWorks项目空间,详情请参见创建工作空间
说明 如果您想用RAM子账号提交Spark作业,且之前未使用过子账号在DLA控制台提交作业,您可以参见细粒度配置RAM子账号权限进行子账号提交作业配置。
操作步骤
  1. 在DataWorks中添加OSS数据源。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 单击相应工作空间后的进入数据集成
    4. 单击左侧导航栏数据源 > 数据源列表
    5. 单击页面右上角新增数据源按钮,数据源选择OSS。
    6. 按照页面要求依次填写OSS信息,由于提交Spark作业需要用户的AccessKey ID和 AccessKey Secret,您可以通过OSS数据源来获取这个信息。 注意不需要测试连通性,填完后单击右下角完成即可。2
      参数配置说明如下:
      数据源名称 为数据源指定一个名字,便与后续管理。
      数据源描述 添加数据源描述,该项为可选填项。
      网络连接类型 选择阿里云VPC
      Endpoint 随意填写,以http://开头即可。参考值 :http://dummy
      Bucket 随意填写,参考值: dummy
      AccessKey ID 提交Spark作业所需要的 AccessKey ID
      AccessKey Secret 提交Spark作业所需的AccessKey Secret
  2. 在DataWorks中创建DLA调度任务。
    1. 登录DataWorks控制台,单击对应项目栏中的进入数据开发
    2. 双击业务流程按钮,新建一个名为 dla_serverless_spark_test的业务流程。22
    3. 双击新建好的dla_serverless_spark_test业务流程,在自定义节点下,拖拽三个DLA Serverless Spark,分别命名为test_1、test_2、test_3,并按照下图中的依赖关系进行连线。222
    4. 单击test_1,在页面上方选择数据源处选择事先添加好的OSS数据源(同样的操作为test_2和 test_3选择相同的OSS数据源)。3
    5. 为创建的test_1、test_2、test_3 分别在调度配置中设置作业运行的VC_NAMESKYNET_REGION和重跑属性。33
      说明
      • VC_NAME是每个任务都需要填的参数,代表您所指定用于运行作业的虚拟集群的名字。
      • SKYNET_REGION代表您虚拟集群所在的区域,例如北京就是cn-beijing。区域和SKYNET_REGION的对照关系请参见地域和可用区
      • 我们也支持DataWorks的自定义参数,在ConfigJson中使用${自定义参数名}即可自动替换参数。详情请参见DataWorks参数配置
    6. 在调度配置中为test_1 设置虚拟上游节点。333
    7. 完成上述配置后,您可以点击高级运行按钮,进行任务的测试,查看下方的运行日志作业是否成功。日志中会输出SparkUI链接, 可参考Spark UI配置日志存储位置。测试
    8. 上述测试完成后,单击页面左上角按钮保存test_1,test_2,test_3,然后按照test_1,test_2,test_3的顺序依次单击图中红框按钮提交任务。4
  3. 任务配置好之后,您可以进行任务的发布和运维,详情请参见发布任务任务运维
    您也可以单击下图红框按钮进行冒烟测试,来测试单个任务是否能成功运行。44

自定义任务编排调度

DLA Serverless Spark除了上述调度集成之外,还提供了SDK以及Spark-Submit工具用于提交Spark作业、查询作业状态、获取作业日志等功能,详情请参见:

您可以利用上述工具,使用第三方任务编排调度系统(如Apache Airflow)来创建自己的工作流。