You need to enable JavaScript to run this app.
导航

快速开始

最近更新时间2023.11.27 14:22:06

首次发布时间2023.02.23 11:06:57

本文通过一系列 DolphinScheduler 的前置准备流程引导您认识服务的使用与相关概念。

1. 前提条件

  1. 如果您需要使用 DolphinScheduler 服务,请选择火山引擎 E-MapReduce(EMR) 3.1.0 / 2.1.0 及以上版本的 Hadoop 集群类型,不同版本详见:版本概述

  2. 集群引入 DolphinScheduler 服务有两种方式:

    • 创建 EMR Hadoop 集群时,在可选组件列表中勾选上 DolphinScheduler 组件服务,详见创建集群

    • 对于已经创建好的 EMR Hadoop 集群,您可在集群详情 > 服务列表中添加 DolphinScheduler 服务,详见添加服务

  3. 对于已安装 DolphinScheduler 服务的集群,需要为该服务所在的 ECS 实例绑定弹性公网 IP,并配置服务端口(DolphinScheduler 默认的服务端口是 12345)才能访问 DolphinScheduler Web UI,详见访问链接

2. 登录认证

访问 DolphinScheduler Web UI 需要您提供登录认证信息。
EMR DolphinScheduler 服务使用 OpenLDAP 进行登录认证,您可以通过以下路径进行获取:

  1. 登录 EMR 控制台

  2. 在左侧导航栏中,单击进入集群管理 > 集群列表 > DolphinScheduler 集群详情 > 服务列表 > OpenLDAP > 服务参数界面。

  3. 获取 DolphinSchedduler 服务参数名称的管理员账号信息:

    • 账号:dolphin_scheduler_admin 配置项内容;

    • 密码:dolphin_scheduler_password 配置项内容。

3. 创建队列

DolphinScheduler 在执行 Spark、Flink 等类型任务时需要配置 YARN 队列,可以在 DolphinScheduler Web UI 中参考如下步骤进行创建队列操作:

  1. 进入 DolphinScheduler 集群详情 > 访问链接界面。

  2. 单击 DolphinScheduler UI 访问链接,输入获取的账号密码信息,进入到可视化 UI 界面。

    说明

    访问链接使用前提:

    1. 需要在集群详情 > 访问链接 > 快速配置服务端口中,给源地址和对应端口添加白名单才可继续访问。详见访问链接
  3. 在界面导航栏中,单击进入安全中心 > Yarn 队列管理界面。

  4. 单击创建队列按钮,输入队列名和队列值,单击确定按钮,完成创建。

4. 创建租户

租户映射到一个操作系统用户,作为 Worker 进程提交作业时使用的用户。如果界面上配置的租户名称在系统中实际并不存在,则会导致任务运行失败。具备管理员权限的账号可以通过 DolphinScheduler Web UI 创建租户,在 Web UI 界面执行如下步骤:

  1. 在界面上方导航栏中,单击进入安全中心 > 租户管理界面。

  2. 单击创建租户按钮,输入操作系统租户名称和已创建成功的队列名称,单击确定按钮,完成租户创建。

    说明

    操作系统租户名称,需遵守 Linux 用户命名规范。

  3. 如果对应的用户在操作系统中并不存在,则需要登录到 DolphinScheduler 集群的 Core 实例节点中,您可以使用 SSH 登录或者 ECS 远程登录的方式进行操作,示例为远程登录方式:

    1. 单击集群列表 > 服务列表 > DolphinScheduler > 部署拓扑页签,进入 DolphinScheduler 组件服务的部署拓扑。

    2. 单击 Worker Server 组件名称下 (emr-core 主机名称)的 ECS ID,跳转进入到云服务器的实例界面,单击右上角的远程连接按钮,并输入集群相关认证信息,进入到集群机器实例,执行如下命令手动创建用户:

    groupadd emr_tenant1
    useradd -m -d /home/emr_tenant1 -s /bin/bash -g emr_tenant1 emr_tenant1
    

5. 创建用户

DolphinScheduler 服务的用户分为管理员和普通用户两类:

  • 管理员:具备授权和用户管理等权限,也可以操作项目与工作流定义。

  • 普通用户:可以创建项目,对工作流定义执行创建、编辑,以及执行等操作。

DolphinScheduler 要求在创建普通用户时需要为每个用户关联一个租户,并在操作系统层面由关联的租户执行该用户提交的工作流任务。

注意

当用户关联的租户由 A 变更为 B 时,则该用户所在租户 A 名下的所有资源将复制到租户 B 名下。

通过 DolphinScheduler Web UI 创建用户的操作步骤如下:

  1. 单击进入安全中心 > 用户管理界面。

  2. 单击创建用户按钮,输入以下用户信息,完成创建:

    配置项说明
    用户名输入新建的用户名信息
    密码输入用于登录的密码信息。
    租户下拉选择创建好的租户信息,将用户关联至对应的租户下。
    队列选择对应的队列信息。
    邮件输入用于接收告警的邮箱信息。
    手机输入所属用户的手机号信息。
    状态选择该用户的状态情况,支持选择启用和停用的状态。

说明

  • EMR DolphinScheduler 采用 OpenLDAP 做准入认证,因此还需要保证在 OpenLDAP 有对应同名同密码的用户,具体操作可以参考用户管理
  • 实际密码信息,以 LDAP 中的密码为准。

6. 告警配置

在启动工作流时可以设置告警组参数,DolphinScheduler 会将工作流实例执行期间的各种状态信息,以告警组关联的告警实例中预先定义的插件方式进行投递。

6.1. 创建告警组实例

在创建告警组之前需要先创建告警实例,每个告警实例关联一种具体的通知方式,一个告警组可以同时关联多种告警实例以实现多样化的告警通知。告警实例的创建步骤如下:

  1. 单击进入安全中心 > 告警实例管理界面。

  2. 单击创建告警实例按钮,输入以下信息(已 Feishu 插件为例),完成创建:

    配置项说明
    告警实例名称输入告警实例名称信息。
    选择插件目前已支持 Script、WeChat、Email、Feishu、Http等十余种中告警插件方式。
    告警类型您可选择 success、failure 或 all 的告警类型。
    Web钩子输入插件对应的 Webhook 地址。
    启用代理判断告警实例是否需要启用代理,若启用代理,需完成以下信息的填写。
    代理输入代理地址信息。
    端口代理对应的端口号信息。
    用户输入身份验证的用户信息。
    密码输入身份验证时所需的密码信息。

    不同插件,需填写不同的配置信息,视界面实际情况而定。详见告警插件指导

6.2. 创建告警组

DolphinScheduler 通过告警组实现将工作流任务与具体的告警实例之间进行关联。一个告警组可以同时关联多个告警实例,具体的创建步骤如下:

  1. 单击进入安全中心 > 告警组管理界面。

  2. 单击创建告警组按钮,输入以下信息,完成创建:

    配置项说明
    告警组名称输入告警组名称信息
    告警组实例选择已创建成功的告警组实例信息,支持多选。
    描述输入告警组描述信息,方便后续管理。

7. 创建 Worker 分组

DolphinScheduler 支持对 Worker 节点进行分组,并需要在执行工作流任务时指定具体的 Worker 节点分组。DolphinScheduler 默认定义并使用 default 分组,我们也可以按需对 Worker 节点进行自定义分组,具体操作如下:

  1. 单击进入安全中心 > Worker 分组管理界面。

  2. 单击创建 Worker 分组按钮,输入以下信息,完成创建:

    配置项说明
    分组名称输入 Worker 分组名称
    Worker 地址下拉选择当前集群的 Worker Server 地址。

8. 创建环境

环境配置作用于 Worker 节点实际运行任务时的环境变量配置,每个环境配置等价于一份 dolphinscheduler_env.sh 文件。Worker 节点默认使用 dolphinscheduer_env.sh 文件中预定义的内容,如果需要修改可以按照如下图所示进行操作:

  1. 单击进入安全中心 > 环境管理界面。

  2. 单击创建环境按钮,输入以下信息,完成创建:

    配置项说明
    环境名称输入环境名称
    环境配置默认环境为 dolphinscheduler_env.sh 文件内容,您可根据实际业务场景,进行环境修改配置。
    环境描述输入环境描述信息,便于后续管理环境。
    Worker 分组下拉选择已创建成功的 Worker 分组信息。

    环境配置参考:

    # JAVA_HOME, will use it to start DolphinScheduler server
    export JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-8-openjdk-velinux-amd64}
    
    # Tasks related configurations, need to change the configuration if you use the related tasks.
    export HADOOP_HOME=${HADOOP_HOME:-/usr/lib/emr/current/hadoop}
    export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/etc/emr/hadoop/conf}
    export SPARK_HOME1=${SPARK_HOME:-/usr/lib/emr/current/spark}
    export HIVE_HOME=${HIVE_HOME:-/usr/lib/emr/current/hive}
    export FLINK_HOME=${FLINK_HOME:-/usr/lib/emr/current/flink}
    
    export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$PYTHON_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$FLINK_HOME/bin:$PATH
    

9. 创建 Token 令牌

DolphinScheduler 的后端接口都有准入认证,使用令牌在保证安全的同时也能够更加方便用户对于后端接口的调用。通过 DolphinScheduler Web UI 可以按照如下所示步骤创建并管理 Token 令牌:

  1. 单击进入安全中心 > 令牌管理界面。

  2. 单击创建令牌按钮,输入以下信息,完成创建:

    配置项说明
    失效时间设置令牌失效时间,有效限制对接口的调用。
    用户选择该令牌对应的用户信息,便于用户自行管理
    令牌主动生成的令牌信息,可通过右侧的刷新按钮,来刷新生成新的令牌信息。

    说明

    管理员可以管理所有用户的令牌信息,普通用户则只允许操作自己的令牌信息。

10. 编排工作流

在配置好上述信息之后,我们可以为普通用户分配账号,并允许普通用户开始使用 DolphinScheduler 编排和执行工作流任务。

10.1 创建项目

工作流按照项目进行组织,所以在创建工作流之前需要在项目管理页面中选择或创建对应的项目信息:

  1. 切换对应的用户信息,重新进入到 DolphinScheduler Web UI 界面中。

  2. 在界面上方导航栏中,单击进入项目管理界面。

  3. 单击创建项目按钮,完成以下项目参数配置:

    配置项说明
    项目名称输入项目名称,来区分管理不同的工作流。
    所属用户项目默认归属当前登录的用户。
    项目描述输入项目描述信息,便于后续项目管理。
  4. 完成信息配置后,单击确定按钮,完成项目创建。

10.2 创建工作流定义

单击创建成功的项目名称, 进入到项目概览详情页,在具体项目左边栏可以看到项目概览、工作流,以及任务等选项卡。

单击“工作流 > 工作流定义 > 创建工作流”进入工作流编排页面。DolphinScheduler 提供了丰富的任务类型,以支持复杂多样的工作流编排场景。您可以参考官方任务类型文档了解每种任务类型的具体参数配置。

您可以用拖拽的方式,将对应的任务类型,拖拽到右侧编辑区,工作流节点设置如下(以 shell 节点配置为例):

参数说明
节点名称输入任务类型的节点名称信息。
运行标志选择任务运行的状态,支持选择正常、禁止执行,若勾选“禁止执行”,运行工作流不会执行该任务。
描述为当前节点填写任务描述信息,方便后续区分。
任务优先级选择当前任务的优先级情况,从 HIGHEST 到 LOWSET 分为5个等级,您可根据实际情况进行选择,当 worker 线程数不足时,级别高的任务在执行队列中会优先执行,相同优先级的任务按照先进先出的顺序执行。
Worker 分组下拉选择已创建成功的 Worker 分组信息。
环境名称配置任务执行的环境,下拉选择已创建成功的环境名称。
任务组名称通过任务组来管理任务实例占用的资源,避免占用太多资源导致了集群其他组件受到资源上的影响。您可在资源中心 > 任务组管理中,创建任务组信息。详见任务组管理
组内优先级设置该任务,在当前任务组内的优先级,在同个任务组内优先获得资源。
失败重试次数任务失败重新提交的次数,可进行手动填充。
失败重试间隔任务失败重新提交任务的时间间隔,可以进行手动填充。
CPU 配额为执行的任务分配指定的CPU时间配额,单位为百分比,默认-1代表不限制,例如1个核心的CPU满载是100%,16个核心的是1600%。
最大内存为执行的任务分配指定的内存大小,超过会触发OOM被Kill同时不会进行自动重试,单位MB,默认-1代表不限制。
延时执行时间任务延迟执行的时间,以分为单位。
超时告警设置超时告警、超时失败。当任务超过"超时时长"后,会发送告警邮件并且任务执行失败。
脚本编辑对应任务类型的代码信息。
资源任务执行时所需资源文件。
自定义参数填写任务脚本中所需的自定义参数信息。
前置任务设置当前任务的前置(上游)任务,形成上下游依赖关系。

配置信息填写完成后,单击确定按钮,完成节点配置,并单击右上角保存按钮,设置工作流的信息和全局参数等。

10.3 运行工作流任务

  1. 上线工作流:

    对于创建好的工作流定义需要在发布上线之后才允许被执行,单击操作栏中的上线按钮,便可以实现对具体工作流的发布上线操作:
    alt

  2. 运行工作流:

    对于已完成发布上线的工作流,可以单击运行按钮,触发工作流立即执行,或单击定时按钮配置对应的周期性调度规则。
    工作流 > 工作流实例页面可以查看本次运行的工作流实例,并支持对该工作流进行编辑、重跑等一系列快速操作,如下图所示:
    alt

  3. 查看日志:
    如果需要查看任务的执行历史或日志信息,可以单击具体工作流实例中的某个节点,进入节点编辑区域,双击任务类型,在弹窗的右上角我们可以看到对应的查看历史查看日志入口。