DolphinScheduler【部署 01】分布式可视化工作流任务调度工具DolphinScheduler部署使用实例分享(一篇入门学会使用DolphinScheduler)

简介: DolphinScheduler【部署 01】分布式可视化工作流任务调度工具DolphinScheduler部署使用实例分享(一篇入门学会使用DolphinScheduler)

1.简介

简介来自官方文档,进行简单整理:

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

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

1.1 特性

  • 可视化 DAG: 用户友好的,通过拖拽定义工作流的,运行时控制工具
  • 模块化操作: 模块化有助于轻松定制和维护。
  • 支持多种任务类型: 支持Shell、MR、Spark、SQL等10余种任务类型,支持跨语言,易于扩展
  • 丰富的工作流操作: 工作流程可以定时、暂停、恢复和停止,便于维护和控制全局和本地参数。
  • 高可靠性: 去中心化设计,确保稳定性。 原生 HA 任务队列支持,提供过载容错能力。 能提供高度稳健的环境。
  • 高扩展性: 支持多租户和在线资源管理。支持每天10万个数据任务的稳定运行。

1.2 建议配置

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

1.2.1 Linux 操作系统版本要求
操作系统 版本
Red Hat Enterprise Linux 7.0 及以上
CentOS 7.0 及以上
Oracle Enterprise Linux 7.0 及以上
Ubuntu LTS 16.04 及以上

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

1.2.2 服务器建议配置

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

CPU 内存 硬盘类型 网络 实例数量
4核+ 8 GB+ SAS 千兆网卡 1+

注意: 以上建议配置为部署 DolphinScheduler 的最低配置,生产环境强烈推荐使用更高的配置;硬盘大小配置建议 50GB+ ,系统盘和数据盘分开。

1.2.3 网络要求

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

组件 默认端口 说明
MasterServer 5678 非通信端口,只需本机端口不冲突即可
WorkerServer 1234 非通信端口,只需本机端口不冲突即可
ApiApplicationServer 12345 提供后端通信端口

注意: MasterServer 和 WorkerServer 不需要开启网络间通信,只需本机端口不冲突即可;管理员可根据实际环境中 DolphinScheduler 组件部署方案,在网络侧和主机侧开放相关端口。

1.2.4 客户端 Web 浏览器要求

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

1.3 名词解释

  • DAG:全称 Directed Acyclic Graph,简称 DAG。工作流中的 Task 任务以有向无环图的形式组装起来,从入度为零的节点进行拓扑遍历,直到无后继节点为止。
  • 流程定义:通过拖拽任务节点并建立任务节点的关联所形成的可视化DAG
  • 流程实例:流程实例是流程定义的实例化,可以通过手动启动或定时调度生成。每运行一次流程定义,产生一个流程实例
  • 任务实例:任务实例是流程定义中任务节点的实例化,标识着某个具体的任务
  • 任务类型:目前支持有 SHELL、SQL、SUB_PROCESS(子流程)、PROCEDURE、MR、SPARK、PYTHON、DEPENDENT(依赖),同时计划支持动态插件扩展,注意:其中 SUB_PROCESS类型的任务需要关联另外一个流程定义,被关联的流程定义是可以单独启动执行的
  • 调度方式:系统支持基于 cron 表达式的定时调度和手动调度。命令类型支持:启动工作流、从当前节点开始执行、恢复被容错的工作流、恢复暂停流程、从失败节点开始执行、补数、定时、重跑、暂停、停止、恢复等待线程。 其中 恢复被容错的工作流恢复等待线程 两种命令类型是由调度内部控制使用,外部无法调用
  • 定时调度:系统采用 quartz 分布式调度器,并同时支持cron表达式可视化的生成
  • 依赖:系统不单单支持 DAG 简单的前驱和后继节点之间的依赖,同时还提供任务依赖节点,支持流程间的自定义任务依赖
  • 优先级:支持流程实例和任务实例的优先级,如果流程实例和任务实例的优先级不设置,则默认是先进先出
  • 邮件告警:支持 SQL任务 查询结果邮件发送,流程实例运行结果邮件告警及容错告警通知
  • 失败策略:对于并行运行的任务,如果有任务失败,提供两种失败策略处理方式,继续是指不管并行运行任务的状态,直到流程失败结束。结束是指一旦发现失败任务,则同时Kill掉正在运行的并行任务,流程失败结束
  • 补数:补历史数据,支持区间并行串行两种补数方式,其日期选择方式包括日期范围日期枚举两种

1.4 模块介绍

  • 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.部署(单机版)

安装版本为3.1.5,以下内容均以此版本进行说明。

2.1前置准备工作

  • JDK:下载JDK (1.8+),安装并配置 JAVA_HOME 环境变量,并将其下的 bin 目录追加到 PATH 环境变量中。如果你的环境中已存在,可以跳过这步。
  • 二进制包:在下载页面下载 DolphinScheduler 二进制包

安装环境如下:

[root@tcloud ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[root@tcloud ~]# java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

官网 https://dolphinscheduler.apache.org/zh-cn/docs/3.1.5/guide/installation/standalone 部署文档:

2.2 下载

清华大学开源软件镜像站下载地址 https://mirrors.tuna.tsinghua.edu.cn/apache/dolphinscheduler/3.1.5/

2.3 安装

2.3.1 解压并启动 DolphinScheduler

二进制压缩包中有 standalone 启动的脚本,解压后即可快速启动。本次以最新版本apache-dolphinscheduler-3.1.5-bin.tar.gz进行说明。

# 1.解压
tar -zxvf apache-dolphinscheduler-3.1.5-bin.tar.gz
# 2.启动
[root@tcloud apache-dolphinscheduler-3.1.5-bin]# cd apache-dolphinscheduler-3.1.5-bin
[root@tcloud apache-dolphinscheduler-3.1.5-bin]# bash ./bin/dolphinscheduler-daemon.sh start standalone-server
Begin start standalone-server......
starting standalone-server, logging to /opt/install/apache-dolphinscheduler-3.1.5-bin/standalone-server/logs
Overwrite standalone-server/conf/dolphinscheduler_env.sh using bin/env/dolphinscheduler_env.sh.
End start standalone-server.
# 启动 Standalone Server 服务
bash ./bin/dolphinscheduler-daemon.sh start standalone-server
# 停止 Standalone Server 服务
bash ./bin/dolphinscheduler-daemon.sh stop standalone-server
2.3.2 登录 DolphinScheduler

浏览器访问地址 http://localhost:12345/dolphinscheduler/ui 即可登录系统UI。默认的用户名和密码是 admin/dolphinscheduler123

登录后的首页:

2.3.3 配置数据库

Standalone server 使用 H2 数据库作为其元数据存储数据,这是为了上手简单,用户在启动服务器之前不需要启动数据库。但是如果用户想将元数据库存储在 MySQL 或 PostgreSQL 等其他数据库中,他们必须更改一些配置。请参考 数据源配置Standalone 切换元数据库 创建并初始化数据库

3.实例

3.1 以下操作为管理员用户

  • 创建队列
  • 创建租户
  • 创建普通用户
  • 创建告警组实例
  • 创建告警组
  • 创建 Worker 分组
  • 创建环境
  • 创建 Token 令牌

3.2 以下操作为普通用户执行

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

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

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





  • 任务->任务实例->查看日志

  • 工作流->工作流实例->点击工作流实例名称->右键可以查询日志

任务脚本内容:

# 1.进入/opt/install目录
cd /opt/install
# 2.执行保存文件ChangeTime的脚本
bash ./saveChangeTime.sh
# 保存文件ChangeTime的脚本内容
#!/bin/bash
stat /opt/install/apache-dolphinscheduler-3.1.5-bin.tar.gz | grep Change > /opt/install/changetime.log

3.3 问题处理

Permission denied

[INFO] 2023-05-22 08:49:36.055 +0000 - task run command: sudo -u testTenant -E bash
...
[INFO] 2023-05-22 08:49:37.064 +0000 -  -> /opt/install/saveChangeTime.sh: line 2: changetime.log: Permission denied

问题说明,运行shell脚本时会使用租户的名称testTenant 进行运行,此用户没有文件的写入权限。

目录
相关文章
|
4月前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
424 0
|
1月前
|
消息中间件 监控 数据可视化
Apache Airflow 开源最顶级的分布式工作流平台
Apache Airflow 是一个用于创作、调度和监控工作流的平台,通过将工作流定义为代码,实现更好的可维护性和协作性。Airflow 使用有向无环图(DAG)定义任务,支持动态生成、扩展和优雅的管道设计。其丰富的命令行工具和用户界面使得任务管理和监控更加便捷。适用于静态和缓慢变化的工作流,常用于数据处理。
Apache Airflow 开源最顶级的分布式工作流平台
|
1月前
|
数据可视化 数据挖掘 项目管理
远程团队的高效选择!必备协作工具助力分布式办公
随着远程办公的普及,团队协作面临沟通不畅、任务跟踪困难、协同效率低和反馈滞后等挑战。本文推荐几款高效协作工具,如板栗看板、Trello、Asana和Slack,帮助团队应对分布式协作中的痛点,提升项目管理透明度和沟通效率。
50 1
|
2月前
|
消息中间件 关系型数据库 Java
‘分布式事务‘ 圣经:从入门到精通,架构师尼恩最新、最全详解 (50+图文4万字全面总结 )
本文 是 基于尼恩之前写的一篇 分布式事务的文章 升级而来 , 尼恩之前写的 分布式事务的文章, 在全网阅读量 100万次以上 , 被很多培训机构 作为 顶级教程。 此文修改了 老版本的 一个大bug , 大家不要再看老版本啦。
|
3月前
|
Dubbo Java 应用服务中间件
分布式-dubbo的入门
分布式-dubbo的入门
|
3月前
|
存储
cephFS高可用分布式文件系统部署指南
关于如何部署高可用的cephFS分布式文件系统,包括集群的搭建、验证高可用性以及实现两主一从架构的详细指南。
134 9
|
4月前
|
机器学习/深度学习 并行计算 PyTorch
PyTorch与DistributedDataParallel:分布式训练入门指南
【8月更文第27天】随着深度学习模型变得越来越复杂,单一GPU已经无法满足训练大规模模型的需求。分布式训练成为了加速模型训练的关键技术之一。PyTorch 提供了多种工具来支持分布式训练,其中 DistributedDataParallel (DDP) 是一个非常受欢迎且易用的选择。本文将详细介绍如何使用 PyTorch 的 DDP 模块来进行分布式训练,并通过一个简单的示例来演示其使用方法。
560 2
|
3月前
|
分布式计算 资源调度 Hadoop
在YARN集群上运行部署MapReduce分布式计算框架
主要介绍了如何在YARN集群上配置和运行MapReduce分布式计算框架,包括准备数据、运行MapReduce任务、查看任务日志,并启动HistoryServer服务以便于日志查看。
77 0
|
4月前
|
Java Nacos Docker
"揭秘!Docker部署Seata遇上Nacos,注册成功却报错?这些坑你不得不防!一网打尽解决秘籍,让你的分布式事务稳如老狗!"
【8月更文挑战第15天】在微服务架构中,Nacos搭配Seata确保数据一致性时,Docker部署Seata后可能出现客户端连接错误,如“can not connect to services-server”。此问题多由网络配置不当、配置文件错误或版本不兼容引起。解决策略包括:调整Docker网络设置确保可达性;检查并修正`file.conf`和`registry.conf`中的Nacos地址和端口;验证Seata与Nacos版本兼容性;修改配置后重启服务;参考官方文档和最佳实践进行配置。通过这些步骤,能有效排除故障,保障服务稳定运行。
365 0
|
4月前
|
存储 运维 安全
多云网络部署存在挑战,F5分布式云应用简化方案解读
多云网络部署存在挑战,F5分布式云应用简化方案解读
61 0