大数据|海豚调度官方文档注解(1)

官方文档地址:https://dolphinscheduler.apache.org/zh-cn/docs/3.1.8

因为官方文档经常出现文档桑、图片加载缓慢、中文名对应关系较差,且存在部分链接异常的情况,所以我将其重新整理、排版以方便阅读。

同时做了部分优化,增加了一些注解,补充了中英文对应关系。

1 关于 Apache DolphinScheduler

1.1 简介

Apache DolphinScheduler 是一个分布式易扩展的可视化 DAG 工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。

Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。 解决数据研发 ETL 依赖错综复杂,无法监控任务健康状态的问题。 DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。

introduction_ui

1.2 特性

简单易用

  • 可视化 DAG:用户友好的,通过拖拽定义工作流的,运行时控制工具
  • 模块化操作:模块化有助于轻松定制和维护。

丰富的使用场景

  • 支持多种任务类型:支持Shell、MR、Spark、SQL等10余种任务类型,支持跨语言,易于扩展
  • 丰富的工作流操作:工作流程可以定时、暂停、恢复和停止,便于维护和控制全局和本地参数。

High Reliability

  • 高可靠性:去中心化设计,确保稳定性。 原生 HA 任务队列支持,提供过载容错能力。 DolphinScheduler 能提供高度稳健的环境。

High Scalability

  • 高扩展性:支持多租户和在线资源管理。支持每天10万个数据任务的稳定运行。

1.3 建议配置

DolphinScheduler 作为一款开源分布式工作流任务调度系统,可以很好地部署和运行在 Intel 架构服务器及主流虚拟化环境下,并支持主流的 Linux 操作系统环境。

1.3.1 Linux 操作系统版本要求

操作系统版本
Red Hat Enterprise Linux7.0 及以上
CentOS7.0 及以上
Oracle Enterprise Linux7.0 及以上
Ubuntu LTS16.04 及以上

以上 Linux 操作系统可运行在物理服务器以及 VMware、KVM、XEN 主流虚拟化环境上

1.3.2 服务器建议配置

DolphinScheduler 支持运行在 Intel x86-64 架构的 64 位通用硬件服务器平台。对生产环境的服务器硬件配置有以下建议:

CPU内存硬盘类型网络实例数量
4核+8 GB+SAS千兆网卡1+
  • 以上建议配置为部署 DolphinScheduler 的最低配置,生产环境强烈推荐使用更高的配置
  • 硬盘大小配置建议 50GB+ ,系统盘和数据盘分开

1.3.3 网络要求

DolphinScheduler 正常运行提供如下的网络端口配置:

组件默认端口说明
MasterServer5678非通信端口,只需本机端口不冲突即可
WorkerServer1234非通信端口,只需本机端口不冲突即可
ApiApplicationServer12345提供后端通信端口
  • MasterServer 和 WorkerServer 不需要开启网络间通信,只需本机端口不冲突即可
  • 管理员可根据实际环境中 DolphinScheduler 组件部署方案,在网络侧和主机侧开放相关端口

1.3.4 客户端 Web 浏览器要求

DolphinScheduler 推荐 Chrome 以及使用 Chromium 内核的较新版本浏览器访问前端可视化操作界面。

1.4 名词解释

在对 Apache DolphinScheduler 了解之前,我们先来认识一下调度系统常用的名词

1.4.1 名词解释

**DAG:**全称 Directed Acyclic Graph,简称 DAG。工作流中的 Task 任务以有向无环图的形式组装起来,从入度为零的节点进行拓扑遍历,直到无后继节点为止。举例如下图:

about-glossary

流程定义:通过拖拽任务节点并建立任务节点的关联所形成的可视化 DAG

流程实例:流程实例是流程定义的实例化,可以通过手动启动或定时调度生成。每运行一次流程定义,产生一个流程实例

任务实例:任务实例是流程定义中任务节点的实例化,标识着某个具体的任务

任务类型:目前支持有 SHELL、SQL、SUB_PROCESS(子流程)、PROCEDURE、MR、SPARK、PYTHON、DEPENDENT(依赖),同时计划支持动态插件扩展,注意:其中 SUB_PROCESS 类型的任务需要关联另外一个流程定义,被关联的流程定义是可以单独启动执行的

调度方式:系统支持基于 cron 表达式的定时调度和手动调度。命令类型支持:启动工作流、从当前节点开始执行、恢复被容错的工作流、恢复暂停流程、从失败节点开始执行、补数、定时、重跑、暂停、停止、恢复等待线程。 其中 恢复被容错的工作流恢复等待线程 两种命令类型是由调度内部控制使用,外部无法调用

定时调度:系统采用 quartz 分布式调度器,并同时支持 cron 表达式可视化的生成

依赖:系统不单单支持 DAG 简单的前驱和后继节点之间的依赖,同时还提供 任务依赖 节点,支持 流程间的自定义任务依赖

优先级 :支持流程实例和任务实例的优先级,如果流程实例和任务实例的优先级不设置,则默认是先进先出

邮件告警:支持 SQL任务 查询结果邮件发送,流程实例运行结果邮件告警及容错告警通知

失败策略:对于并行运行的任务,如果有任务失败,提供两种失败策略处理方式,继续 是指不管并行运行任务的状态,直到流程失败结束。结束 是指一旦发现失败任务,则同时 Kill 掉正在运行的并行任务,流程失败结束

补数:补历史数据,支持 区间并行串行 两种补数方式,其日期选择方式包括 日期范围日期枚举 两种

1.4.2 模块介绍
  • dolphinscheduler-master:master模块,提供工作流管理和编排服务。
  • dolphinscheduler-worker:worker模块,提供任务执行管理服务。
  • dolphinscheduler-alert:告警模块,提供 AlertServer 服务。
  • dolphinscheduler-api:web应用模块,提供 ApiServer 服务。
  • dolphinscheduler-common:通用的常量枚举、工具类、数据结构或者基类
  • dolphinscheduler-dao:提供数据库访问等操作。
  • dolphinscheduler-remote:基于 netty 的客户端、服务端
  • dolphinscheduler-service:service模块,包含Quartz、Zookeeper、日志客户端访问服务,便于server模块和api模块调用
  • dolphinscheduler-ui:前端模块

2 快速上手

2.1 快速上手

管理员用户登录:

  • 地址:http://localhost:12345/dolphinscheduler/ui
  • 用户名/密码:admin/dolphinscheduler123

login

创建队列:

create-queue

创建租户:

在这里插入图片描述

创建普通用户:

在这里插入图片描述

创建告警组实例:

在这里插入图片描述

创建告警组:

在这里插入图片描述

创建 Worker 分组:

在这里插入图片描述

创建环境 :

在这里插入图片描述

创建 Token 令牌:

在这里插入图片描述

使用普通用户登录:

  • 点击右上角用户名 “退出”,重新使用普通用户登录。

项目管理 -> 创建项目 -> 点击项目名称:

在这里插入图片描述

点击工作流定义 -> 创建工作流定义 -> 上线工作流定义:

在这里插入图片描述

运行工作流定义 -> 点击工作流实例 -> 点击工作流实例名称 -> 双击任务节点 -> 查看任务执行日志:

在这里插入图片描述

2.2 Docker 部署(Docker)

本教程使用三种不同的方式通过 Docker 完成 DolphinScheduler 的部署

  • 如果你想要快速体验,推荐使用 standalone-server 镜像
  • 如果你想要体验比较完成的服务,推荐使用 docker-compose 启动服务
  • 如果你已经有自己的数据库或者 Zookeeper 服务你想要沿用这些基础服务,你可以参考沿用已有的 PostgreSQL 和 ZooKeeper 服务完成部署。

2.1.1 前置条件

需要安装 Docker 1.13.1 以上版本,以及 Docker Compose 1.28.0 以上版本。

Docker 下载链接:https://docs.docker.com/engine/install/

Docker Compose 地址:https://docs.docker.com/compose/

2.2.2 启动服务

2.2.2.1 使用 standalone-server 镜像

使用 standalone-server 镜像启动一个 DolphinScheduler standalone-server 容器应该是最快体验 DolphinScheduler 的方法。通过这个方式,你可以最快速的体验到 DolphinScheduler 的大部分功能,了解主要和概念和内容。

$ DOLPHINSCHEDULER_VERSION=3.1.8
$ docker run --name dolphinscheduler-standalone-server -p 12345:12345 -p 25333:25333 -d apache/dolphinscheduler-standalone-server:"${DOLPHINSCHEDULER_VERSION}"

注意:请不要将 apache/dolphinscheduler-standalone-server 镜像作为生产镜像,应该仅仅作为快速体验 DolphinScheduler 的功能的途径。 除了因为他将全部服务运行在一个进程中外,还因为其使用内存数据库 H2 储存其元数据,当服务停止时内存数据库中的数据将会被清空。另外 apache/dolphinscheduler-standalone-server 仅包含 DolphinScheduler 核心服务,部分任务组件(如 Spark 和 Flink 等), 告警组件(如 Telegram 和 Dingtalk 等)需要外部的组件或对应的配置后

2.2.2.2 使用 docker-compose 启动服务

使用 docker-compose 启动服务相比 standalone-server 的优点是 DolphinScheduler 的各个是独立的容器和进程,相互影响降到最小,且能够在 服务重启的时候保留元数据(如需要挂载到本地路径需要做指定)。他更健壮,能保证用户体验更加完整的 DolphinScheduler 服务。这种方式需要先安装 docker-compose,链接适用于 Mac,Linux,Windows。

Docker Compose 下载地址:https://docs.docker.com/compose/install/

确保 docker-compose 顺利安装后,需要获取 docker-compose.yaml 文件,通过下载页面下载对应版本源码包可能是最快的方法,当下载完源码后就可以运行命令进行部署了。

DolphinScheduler 的 Docker 下载地址:https://dolphinscheduler.apache.org/en-us/download/

$ DOLPHINSCHEDULER_VERSION=3.1.8
$ tar -zxf apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src.tar.gz
# Mac Linux 用户
$ cd apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src/deploy/docker
# Windows 用户, `cd apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src\deploy\docker`

# 如果需要初始化或者升级数据库结构,需要指定profile为schema
$ docker-compose --profile schema up -d

# 启动dolphinscheduler所有服务,指定profile为all
$ docker-compose --profile all up -d

提醒:安装完成 docker-compose 后需要修改部分配置以便能更好体验 DolphinScheduler 服务,我们推荐配置不少于 4GB 的空闲内存,详见 How to assign more memory to docker container.

通过 docker-compose 启动服务时,除了会启动 DolphinScheduler 对应的服务外,还会启动必要依赖服务,如数据库 PostgreSQL 和 服务发现 ZooKeeper

2.2.2.3 沿用已有的 PostgreSQL 和 ZooKeeper 服务

使用 docker-compose 启动服务会新启动数据库,以及 ZooKeeper 服务。如果你已经有在运行中的数据库,或者 ZooKeeper 且不想启动新的服务,可以使用这个方式分别启动 DolphinScheduler 容器。

$ DOLPHINSCHEDULER_VERSION=3.1.8
# 初始化数据库,其确保数据库 <DATABASE> 已经存在
$ docker run -d --name dolphinscheduler-tools \
    -e DATABASE="postgresql" \
    -e SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/<DATABASE>" \
    -e SPRING_DATASOURCE_USERNAME="<USER>" \
    -e SPRING_DATASOURCE_PASSWORD="<PASSWORD>" \
    --net host \
    apache/dolphinscheduler-tools:"${DOLPHINSCHEDULER_VERSION}" tools/bin/upgrade-schema.sh
# 启动 DolphinScheduler 对应的服务
$ docker run -d --name dolphinscheduler-master \
    -e DATABASE="postgresql" \
    -e SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/dolphinscheduler" \
    -e SPRING_DATASOURCE_USERNAME="<USER>" \
    -e SPRING_DATASOURCE_PASSWORD="<PASSWORD>" \
    -e REGISTRY_ZOOKEEPER_CONNECT_STRING="localhost:2181" \
    --net host \
    -d apache/dolphinscheduler-master:"${DOLPHINSCHEDULER_VERSION}"
$ docker run -d --name dolphinscheduler-worker \
    -e DATABASE="postgresql" \
    -e SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/dolphinscheduler" \
    -e SPRING_DATASOURCE_USERNAME="<USER>" \
    -e SPRING_DATASOURCE_PASSWORD="<PASSWORD>" \
    -e REGISTRY_ZOOKEEPER_CONNECT_STRING="localhost:2181" \
    --net host \
    -d apache/dolphinscheduler-worker:"${DOLPHINSCHEDULER_VERSION}"
$ docker run -d --name dolphinscheduler-api \
    -e DATABASE="postgresql" \
    -e SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/dolphinscheduler" \
    -e SPRING_DATASOURCE_USERNAME="<USER>" \
    -e SPRING_DATASOURCE_PASSWORD="<PASSWORD>" \
    -e REGISTRY_ZOOKEEPER_CONNECT_STRING="localhost:2181" \
    --net host \
    -d apache/dolphinscheduler-api:"${DOLPHINSCHEDULER_VERSION}"
$ docker run -d --name dolphinscheduler-alert-server \
    -e DATABASE="postgresql" \
    -e SPRING_DATASOURCE_URL="jdbc:postgresql://localhost:5432/dolphinscheduler" \
    -e SPRING_DATASOURCE_USERNAME="<USER>" \
    -e SPRING_DATASOURCE_PASSWORD="<PASSWORD>" \
    -e REGISTRY_ZOOKEEPER_CONNECT_STRING="localhost:2181" \
    --net host \
    -d apache/dolphinscheduler-alert-server:"${DOLPHINSCHEDULER_VERSION}"

注意:如果你本地还没有对应的数据库和 ZooKeeper 服务,但是想要尝试这个启动方式,可以先安装并启动 PostgreSQL (8.2.15+) 以及 ZooKeeper (3.8.0)

PostgreSQL 安装地址:https://www.postgresql.org/download/

ZooKeeper 地址:https://zookeeper.apache.org/releases.html

2.2.3 登录系统

不管你是用那种方式启动的服务,只要服务启动后,你都可以通过 http://localhost:12345/dolphinscheduler/ui 访问 DolphinScheduler。访问上述链接后会跳转到登陆页面,DolphinScheduler 默认的用户和密码分别为 admindolphinscheduler123。 想要了解更多操作请参考用户手册 2.1 快速上手

在这里插入图片描述

注意:如果你使用沿用已有的 PostgreSQL 和 ZooKeeper 服务方式启动服务,且服务分布在多台机器中, 请将上述的地址改成你 API 容器启动的 hostname 或者 IP。

2.2.4 环境变量

可以通过环境变量来修改 Docker 运行的配置,我们在沿用已有的 PostgreSQL 和 ZooKeeper 服务中就通过环境变量修改了 Docker 的数据库配置和 注册中心配置,关于全部的配置环境可以查看对应组件的 application.yaml 文件了解。

要在Linux上安装海豚调度,您可以按照以下步骤进行操作: 1. 打开终端并登录到您的Linux系统。 2. 确保您的系统已经安装了必要的依赖项,例如GCC编译器、cmake等。您可以使用以下命令来安装这些依赖项(以Ubuntu为例): ```shell sudo apt-get update sudo apt-get install build-essential cmake ``` 3. 下载海豚调度的源代码。您可以从海豚调度官方网站(https://www.dolphin-scheduler.com/)或GitHub仓库(https://github.com/apache/dolphinscheduler)上获取源代码。 4. 解压下载的源代码包,并进入解压后的目录: ```shell tar -xzvf dolphinscheduler-x.x.x.tar.gz cd dolphinscheduler-x.x.x/ ``` 5. 使用以下命令编译和构建海豚调度: ```shell sh build.sh ``` 6. 编译完成后,您可以在`dolphinscheduler-x.x.x/distribution/target/apache-dolphinscheduler-x.x.x-distribution.tar.gz`目录中找到生成的二进制分发包。 7. 解压生成的二进制分发包,并进入解压后的目录: ```shell tar -xzvf apache-dolphinscheduler-x.x.x-distribution.tar.gz cd apache-dolphinscheduler-x.x.x-distribution/ ``` 8. 配置并启动海豚调度服务。您可以按照官方文档提供的指引进行配置和启动,主要包括修改配置文件(如`conf/dolphinscheduler.properties`)并运行相应的启动脚本。 请注意,上述步骤仅提供了安装海豚调度的基本流程,具体操作可能因您的系统和需求而略有差异。建议您参考海豚调度官方文档或社区支持获取更详细和准确的安装指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值