DolphinScheduler学习

1.查看文档

点击访问:https://dolphinscheduler.apache.org/zh-cn/docs
我们可以看到相关的文档简介里有

介绍

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

作用

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

相关名词介绍

DAG
介绍

然后有对应的相关名词介绍:如DAG 全称 Directed Acyclic Graph,简称 DAG。工作流中的 Task 任务以有向无环图的形式组装起来,从入度为零的节点进行拓扑遍历,直到无后继节点为止。举例如下图:
在这里插入图片描述

下面是百度到对dag的理解
有向无环图(Directed Acyclic Graph,DAG)是一种特殊的有向图,它没有任何环路。这意味着从图中的任意一个顶点出发,不可能通过一系列有向边回到该顶点。

特性

有向性:图中的边有方向。
无环性:图中不存在任何环路,即不存在从某个顶点出发,经过若干条边又回到该顶点的路径。
应用
DAG在许多领域中有广泛的应用,包括:

任务调度:例如编译器的优化过程中,用DAG来表示指令的依赖关系,确保指令的执行顺序。
版本控制系统:如Git,使用DAG来表示提交历史,保证不同分支的提交历史可以正确地合并。
数据处理流水线:DAG可以用来表示数据处理的各个步骤及其依赖关系。
路径规划:例如在某些网络路由算法中,使用DAG来确保路径无环,从而避免路由循环。
例子

  1. DAG 示例
    plaintext
    复制代码
ABD
↓   ↓
CE

在这个例子中,没有任何路径可以从一个节点回到自身,因此它是一个DAG。

相关算法

DAG上有许多重要的算法,主要包括:

拓扑排序:拓扑排序是DAG的一个线性序列,满足对图中的每条有向边 (u, v),顶点 u 在 v 之前。常见的算法包括Kahn算法和基于深度优先搜索(DFS)的算法。

Kahn算法:基于入度的拓扑排序算法。
DFS算法:基于DFS的拓扑排序,利用递归实现。
最长路径:在DAG中寻找从起点到终点的最长路径,可以利用拓扑排序来简化计算。

最短路径:在DAG中寻找从起点到终点的最短路径,也可以利用拓扑排序来优化计算。

个人理解

DAG就是有向无环图中的一种特殊的有向图,即不存在从某个顶点出发,经过若干条边又回到该顶点的路径且图中的边有方向,用于定义和管理任务之间的依赖关系。工作流中的 Task 任务以有向无环图的形式组装起来,从入度为零的节点进行拓扑遍历,直到无后继节点为止。

DAG在DolphinScheduler中的作用

任务依赖管理:DAG用于定义任务之间的依赖关系,确保任务按正确的顺序执行。
工作流调度:利用DAG结构,DolphinScheduler可以高效地调度和管理复杂的工作流。
错误处理和重试:在DAG中,如果某个任务失败,可以定义错误处理和重试策略。

DolphinScheduler中的DAG实现

DolphinScheduler使用JSON格式来定义工作流的DAG。每个工作流定义中包含多个任务节点和它们之间的依赖关系。

流程定义:

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

流程实例:

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

任务实例:

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

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

调度方式:

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

定时调度:

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

依赖:

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

优先级 :

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

邮件告警:

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

失败策略:

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

补数:

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

模块介绍

dolphinscheduler-master master模块,提供工作流管理和编排服务。

dolphinscheduler-worker worker模块,提供任务执行管理服务。

dolphinscheduler-alert 告警模块,提供 AlertServer 服务。

dolphinscheduler-api web应用模块,提供 ApiServer 服务。

dolphinscheduler-common 通用的常量枚举、工具类、数据结构或者基类

dolphinscheduler-dao 提供数据库访问等操作。

dolphinscheduler-extract extract模块,包含master/worker/alert的sdk

dolphinscheduler-service service模块,包含Quartz、Zookeeper、日志客户端访问服务,便于server模块和api模块调用

安装

快速安装

第一次看的时候看的不说很懂安装模式,没认真看的话就只看到dokcer的安装模式,然后本人的开发环境docker问题,一大堆下载不下来,后面认真看了一下发现一种更简单的不用docker安装,外面也有很多安装教程不过都很麻烦我只是要快速搭建实现和了解一下。我们可以在快速上手里面的设置 Dolphinscheduler有个standalone server点击这个就有用安装包安装的快速教程。跳转页面是没有中文的我是用电脑win10字带Microsoft Edge中文翻译转成中文看的。你可以看到一个不需要任何配置的只需要下载一个 apache-dolphinscheduler-*-bin.tar.gz包解压启动bash ./bin/dolphinscheduler-daemon.sh start standalone-server然后等几秒后就可以访问
admin/dolphinscheduler123http://localhost:12345/dolphinscheduler/ui页面了

缺点

Standalone 只建议使用少于 20 个工作流,因为它默认使用内存 H2 数据库,ZooKeeper 测试服务器,任务过多可能会导致不稳定。 当 Standalone 停止或重新启动时,内存中 H2 数据库将清理。要将 Standalone 用于 mysql 或 postgresql 等外部数据库

修改配置

如果你想用数据库mysql和pg增加数据容量点击到文档最下面有个数据库配置点击
datasource-setting 就可以找到对应的配置去修改对应的配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/875345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

太原高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

随着科技的不断进步,智能制造已经成为推动制造业转型升级的重要力量。太原高校大学智能制造实验室紧跟时代步伐,积极推进数字孪生可视化系统平台的建设,并于近日圆满完成了项目的验收工作。这一里程碑式的成果,不仅标志着实验室在…

uniapp安卓plus原生选择系统文件

uniapp安卓plus原生选择系统文件 效果&#xff1a; 组件代码&#xff1a; <template xlang"wxml" minapp"mpvue"><view></view> </template> <script>export default {name: file-manager,props: {},data() {return {is…

靶场实战 _ ATTCK 实战 Vulnstack 红队

环境配置 网络拓扑图 (仅供参考) 攻击机&#xff1a;kali ip:192.168.111.5靶机&#xff1a;web-centos 外网ip:192.168.111.10 内网ip:192.168.93.100web1-ubuntu ip: 192.168.93.120PC ip: 192.168.93.30win 2008 ip:192.168.93.20win 2012 ip:192.168.93.10 信息搜集 端口…

【C++】string类(下)

个人主页~ string类&#xff08;上&#xff09; string类 二、模拟实现string类1、头文件string.h2、常见构造3、容量函数4、访问及遍历5、类对象修改6、流插入流提取重载 二、模拟实现string类 今天我们来实现一下上篇文章中详细介绍过的接口 1、头文件string.h #pragma onc…

Redis的应用场景及类型

目录 一、Redis的应用场景 1、限流 2、分布式锁 3、点赞 4、消息队列 二、Redis类型的命令及用法 1、String类型 2、Hash类型 3、List类型 4、Set类型 5、Zset类型 6、Redis工具类 Redis使用缓存的目的就是提升读写性能 实际业务场景下&#xff0c;我们就可以把 Mys…

服务器选择租用还是托管?托管和租用哪个比较划算

在构建或扩展IT基础设施时&#xff0c;服务器作为关键组件&#xff0c;其选择方式——租用或托管&#xff0c;直接关系到企业的运营成本、灵活性、安全性及长期发展战略。本文将从技术、经济、安全等多个维度&#xff0c;深入解析这两种方案的优缺点&#xff0c;并探讨在何种情…

Dav_笔记11:SQL Tuning Overview-sql调优 之 1

Introduction to SQL Tuning SQL调优简介 SQL调优涉及以下基本步骤&#xff1a; ■通过查看系统中可用的过去SQL执行历史记录&#xff0c;识别负责大量应用程序工作负载和系统资源的高负载或顶级SQL语句 ■验证查询优化器为这些语句生成的执行计划是否合理执行 ■实施纠正…

力扣第三十一题——下一个排列

内容介绍 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下这些都可以视作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地&…

redis详解--springboot整合redis

1. java连接redis 思考: 我们之前操作redis都是通过命令行的客户端来操作。 在开发时都是通过java项目操作redis.引入Redis依赖 <!--引入java连接redis的驱动--><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactI…

ThreadLocal面试三道题

针对ThreadLocal的面试题&#xff0c;我将按照由简单到困难的顺序给出三道题目&#xff0c;并附上参考答案的概要。 1. 简单题&#xff1a;请简述ThreadLocal是什么&#xff0c;以及它的主要作用。 参考答案&#xff1a; ThreadLocal是Java中的一个类&#xff0c;用于提供线…

力扣笔试题系列(一)

1、给你两个字符串 word1 和 word2 。请你从 word1 开始&#xff0c;通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长&#xff0c;就将多出来的字母追加到合并后字符串的末尾。 char * mergeAlternately(char * word1, char * word2){int len1 strlen(word1);i…

C++ primer plus 第16章string 类和标准模板库, 无序关联容器(C++11)

C primer plus 第16章string 类和标准模板库, 无序关联容器(C11) C primer plus 第16章string 类和标准模板库, 无序关联容器(C11) 文章目录 C primer plus 第16章string 类和标准模板库, 无序关联容器(C11)16.4.5 无序关联容器(C11) 16.4.5 无序关联容器(C11) 无序关联容器是…

【常微分方程】

框架 常微分方程的概念一阶微分方程可变离分量齐次方程一阶线性微分方程可降阶的高阶微分方程二阶常系数齐次线性微分方程二阶常系数非齐次线性微分方程 讲解 【1】 常微分方程&#xff1a;是微分方程的特殊情况&#xff1b; 阶&#xff1a;是方程未知函数的最高阶导数的阶数&…

力扣138【随机链表的复制】

给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的原节点的值。新节点的 ne…

【.NET全栈】ASP.NET开发Web应用——ASP.NET数据绑定技术

文章目录 前言一、绑定技术基础1、单值绑定2、重复值绑定 二、数据源控件1、数据绑定的页面生存周期2、SqlDataSource3、使用参数过滤数据4、更新数据和并发处理5、编程执行SqlDataSource命令6、ObjectDataSource控件介绍7、创建业务对象类8、在ObiectDataSource中使用参数9、使…

06 ES6中的Map类型

ES6 中的 Map 是一种集合数据结构&#xff0c;与 Set 类似&#xff0c;但它是用来存储键值对的。Map 提供了更灵活的迭代和更广泛的键类型支持&#xff0c;与普通的对象相比&#xff0c;Map 的键可以是任何值&#xff0c;包括对象和函数。 以下是 Map 类型的一些关键特性和常用…

ElementUI,修改el-table中的数据,视图无法及时更新

需求&#xff1a;点击table表格中的“修改”之后&#xff0c;当前行变为可输入状态的行&#xff0c;点击“确定”后变为普通表格&#xff1b; 先贴上已经完美解决问题的代码 实现代码&#xff1a; <section><div style"display: flex;justify-content: space-b…

爬虫学习1:初学者简单了解爬虫的基本认识和操作(详细参考图片)

爬虫 定义&#xff1a;爬虫&#xff08;Web Crawler 或 Spider&#xff09;是一种自动访问互联网上网页的程序&#xff0c;其主要目的是索引网页内容&#xff0c;以便搜索引擎能够快速检索到相关信息。以下是爬虫的一些关键特性和功能&#xff1a; 自动化访问&#xff1a;爬虫能…

【React】事件绑定:深入解析高效处理用户交互的最佳实践

文章目录 一、什么是事件绑定&#xff1f;二、基本事件绑定三、绑定 this 上下文四、传递参数五、事件对象六、事件委托七、常见事件处理八、优化事件处理 React 是现代前端开发中最受欢迎的框架之一&#xff0c;其组件化和高效的状态管理能力使得构建复杂的用户界面变得更加容…

嵌入式MCU固件的几种Flash划分方式详解

通过OTA远程等方式下载的程序,其实还需要提前下载bootloader程序,才能进一步下载APP程序。 今天就来说说通过OTA方式升级固件时,几种flash划分方式。 独立型 所谓独立型就是专门划出一部分闪存(Flash)空间用来存储引导程序(BootLoader)。 如下图: BootLoader:引导…