云原生多模数据库Lindorm计算引擎支持通过数据管理DMS的任务编排功能来调度Lindorm Spark任务,并查看Lindorm Spark任务发布记录和日志,满足用户在数据生产、交互式分析、机器学习和图计算等场景中的计算需求。本文介绍通过DMS管理Lindorm Spark作业的方法。

前提条件

创建Lindorm Spark任务流

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择集成与开发(DTS)
  3. 在左侧导航栏,选择数据开发 > 任务编排
  4. 任务编排页面,单击新增任务流
  5. 新增任务流对话框中,输入任务流名称描述,并单击确认
  6. 在左侧任务类型列表中,拖拽Lindorm Spark任务节点到空白区域,并通过连线的方式定义任务节点之间的依赖关系。
  7. 配置Lindorm Spark任务节点。
    1. 双击Lindorm Spark任务节点或者单击Lindorm Spark任务节点并选择配置节点
    2. 在打开的任务节点页面中,配置基础参数和运行作业的自定义参数。
      • 基础配置区域配置基础参数,基础参数说明如下表:
        参数说明
        地域选择目标Lindorm实例所属的地域。
        Lindorm实例选择目标Lindorm实例ID。
        任务类型选择Spark作业类型,支持以下两种:
        • JAR
        • Python
      • 作业配置区域配置运行作业的自定义参数。以下列出不同的Spark作业配置模板和自定义参数说明。
        • JAR作业配置模板和自定义参数说明如下:
          {
            "mainResource" : "oss://path/to/your/file.jar",
            "mainClass" : "path.to.main.class",
            "args" : [ "arg1", "arg2" ],
            "configs" : {
              "spark.hadoop.fs.oss.endpoint" : "",
              "spark.hadoop.fs.oss.accessKeyId" : "",
              "spark.hadoop.fs.oss.accessKeySecret" : "",
              "spark.hadoop.fs.oss.impl" : "org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem",
              "spark.sql.shuffle.partitions" : "20"
            }
          }
          参数参数类型是否必填说明示例值
          mainResourceStringJAR包存储在HDFS或OSS的路径。
          • JAR包存储至HDFS:hdfs:///path/spark-examples_2.12-3.1.1.jar
          • JAR包存储至OSS:oss://testBucketName/path/spark-examples_2.12-3.1.1.jar
          mainClassStringJAR作业的程序入口类。com.aliyun.ldspark.SparkPi
          argsArray传入mainClass参数。["arg1", "arg2"]
          configsJsonSpark系统参数配置。此外,如果您已将作业上传至OSS,则需要在此增加以下配置:
          • spark.hadoop.fs.oss.endpoint:存储作业的OSS地址。
          • spark.hadoop.fs.oss.accessKeyId:通过阿里云控制台创建的Access Key ID,获取方法请参见创建AccessKey
          • spark.hadoop.fs.oss.accessKeySecret:通过阿里云控制台获取Access Key Secret,获取方法请参见创建AccessKey
          • spark.hadoop.fs.oss.impl:访问OSS的类。固定值为:org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem。
          { "spark.sql.shuffle.partitions": "200"}
        • Python作业配置模板和自定义参数说明如下:
          {
            "mainResource" : "oss://path/to/your/file.py",
            "args" : [ "arg1", "arg2" ],
            "configs" : {
              "spark.hadoop.fs.oss.endpoint" : "",
              "spark.hadoop.fs.oss.accessKeyId" : "",
              "spark.hadoop.fs.oss.accessKeySecret" : "",
              "spark.hadoop.fs.oss.impl" : "org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem",
              "spark.submit.pyFiles" : "oss://path/to/your/project_file.py,oss://path/to/your/project_module.zip",
              "spark.archives" : "oss://path/to/your/environment.tar.gz#environment",
              "spark.sql.shuffle.partitions" : "20"
            }
          }
          参数参数类型是否必选说明示例值
          mainResourceStringPython文件存储在OSS或者HDFS的路径。
          • Python文件存储至OSS:oss://testBucketName/path/spark-examples.py
          • Python文件存储至HDFS:hdfs:///path/spark-examples.py
          argsArray传入mainClass参数。["arg1", "arg2"]
          configsJsonSpark系统参数配置。如果将作业上传至OSS,需要在此配置以下参数:
          • spark.hadoop.fs.oss.endpoint:存储作业的OSS地址。
          • spark.hadoop.fs.oss.accessKeyId:通过阿里云控制台创建的Access Key ID,获取方法请参见创建AccessKey
          • spark.hadoop.fs.oss.accessKeySecret:通过阿里云控制台获取Access Key Secret,获取方法请参见创建AccessKey
          • spark.hadoop.fs.oss.impl:访问OSS的类。固定值为:org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem。
          {"spark.sql.shuffle.partitions": "200"}
    3. 完成以上配置后,单击页面左上方的试运行,检查作业运行效果是否符合预期。
  8. 发布任务流。所有的任务节点配置完成后,单击任务流名称页面左上方的发布
    发布任务流

查看任务流的发布记录和日志

  1. 任务编排页面单击目标任务流名称。
  2. 单击任务流名称页面右上角的前往运维
    查看发布记录
  3. 查看任务流的发布记录和日志。
    • 查看任务流的发布记录。在任务流信息页面,单击发布列表页签可以查看任务流的发布记录。发布记录
    • 查看任务流的日志。
      1. 运行记录页签左上方的下拉列表中选择定时触发或者手动触发,可以查看任务流中所有任务节点的详细信息。查看任务日志
      2. 单击任务节点名称后面的查看,可以查看Lindorm Spark任务作业的提交日志,获取该任务节点的JobID和SparkUI。
        说明 如果任务提交失败,请将JobID和SparkUI提供给工单处理人员并提交工单

高级配置

说明 通过数据管理DMS控制台对Lindorm Spark任务流进行相关配置,配置完成后需要重新发布任务流。

调度配置

根据业务需求配置相应的调度策略,Lindorm Spark任务流会根据该调度策略自动执行。配置方法如下:

  1. 任务编排页面单击目标任务流名称。
  2. 单击任务流名称页面左下角的任务流信息
    任务流信息
  3. 在右侧调度配置区域,打开开启调度开关,配置调度策略,配置项说明如下表。
    配置项说明
    调度类型选择调度类型:
    • 周期调度:周期性调度任务,例如一周执行一次任务。
    • 调度一次:在指定时间执行一次任务,仅需要配置执行任务的具体时间。
    生效时间选择调度周期生效的区间,默认1970-01-01~9999-01-01,表示一直生效。
    调度周期选择调度任务的周期:
    • 小时:按设定的小时执行任务调度,需要配置定时调度。
    • :按每日一次的频率执行任务调度,需要配置每日调度的具体时间。
    • :以周为周期,每个指定天执行一次任务调度,需要配置指定时间和具体时间。
    • :以月为周期,每个指定天执行一次任务调度,需要配置指定时间和具体时间。
    定时调度提供了2种定时调度的方式:
    • 固定间隔时间调度:
      • 开始时间:执行任务的开始时间。
      • 间隔时间:执行任务的间隔时间,单位为小时。
      • 结束时间:执行任务的结束时间。
      例如,配置开始时间为00:00、间隔时间为6小时、结束时间为20:59,系统将在0点、6点、12点、18点执行任务。
    • 指定时间调度:选择执行任务的目标时间点。

      例如选择和0小时和5小时,系统将在0点和5点执行任务。

    指定时间
    • 如果调度周期为周,选择星期几执行任务,支持多选。
    • 如果调度周期为月,选择每月几号执行任务,支持多选。
    具体时间设置执行任务流的具体时间。

    例如配置02:55,系统将在指定天的02时55分执行任务。

    cron表达式不需要手动配置,系统会根据您配置的周期、具体时间自动展现。
    调度配置示例:如果需要配置任务流在每天0点和12点进行调度,调度策略配置如下。
    • 调度类型选择周期调度。
    • 调度周期选择小时。
    • 定时调度选择指定时间,同时在指定时间列表中选择0小时和12小时。

变量配置

对于周期调度的任务流,可以将调度时间作为参数传递给要执行的任务。例如:将业务时间bizdate(运行时间的前一天)传递给任务节点,按照如下步骤配置时间变量。

  1. 在任务流名称页面,双击Lindorm Spark任务节点或者Lindorm Spark任务节点并选择配置节点
  2. 在右侧菜单栏选择变量设置
  3. 节点变量或者任务流变量页签中添加变量名。
  4. 作业配置区域中使用变量。更多变量请参见变量概述
    使用变量

通知配置

如果打开通知开关,系统会根据任务流执行的结果发送相应的通知消息。打开通知方法如下:

  1. 单击任务流名称页面左下角的通知配置
  2. 根据业务需求打开对应的通知开关。
    • 成功通知:任务流执行成功发送通知信息。
    • 失败通知:任务流执行失败发送通知信息。
    • 超时通知:任务流执行超时发送通知信息。
  3. 可选:配置消息接收人,请参见消息通知管理

相关文档

有关数据管理DMS的任务编排功能,详情请参见任务编排概述