DolphinScheduler任务调度工具

news2024/11/17 14:38:39

任务调度:系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程

分布式调度:

  1. 分布性:每个部分可以独立部署,服务之间通过网络通信
  2. 伸缩性:每个部分可以集群部署,动态伸缩扩容
  3. 高可用

jdk也提供了相关的任务调度功能,如Timer,ScheduledExecutor。

介绍:分布式、易扩展的工作流调度平台

环境准备安装:

  1. mysql(5.7+)
  2. jdk(1.8+)
  3. zookeeper
  4. hadoop:需要资源上传功能选装

组件:

  1. masterServer:分布式无中心设计理念,负责工作流任务切分、任务提交(提交给workerServer并分配任务给workerServer)、任务监控,并同时监听其他的masterServer和workServer的健康状态,目的:为了做高可用、容错机制。
  2. workerServer:分布式务中心设计理念,负责任务的执行和提供日志服务
  3. zookeeper:masterServer和workerServer节点都通过zookeeper进行集群管理和容错,负责协调整个集群
  4. alert:提供告警相关服务(电话、邮件等)
  5. api接口:负责处理前端UI的请求,比如前端查看任务执行、执行的进度等
  6. UI:前端

流程:

  1. 定义工作流:用户访问UI定义工作流
  2. 保存工作流到数据库:通过调用api接口将工作流元数据保存到数据库中
  3. 工作流切分:保存到数据库后,masterServer要对工作流进行切分,多个masterServer之间的地位是平等的,都可以去切分工作流,竞争资源,加锁
  4. 分发任务(工作单元):工作流被切分为任务后,masterServer将工作单元分发给workerServer,收到任务后返回给masterServer确认信息ack和response
  5. 执行任务:Shell、SQL、Spark、MR等
  6. 执行进度的返回:一边执行任务,一边返回执行进度给masterServer,masterServer会把相应任务的执行状态写入到数据库

部署模式:

  1. 单机模式
  2. 伪集群模式:再单台 机器上部署dolphinScheduler各项服务,该模式下master、worker、api、server、logger server等服务都只在一台机器上
  3. 集群模式:配置多个master和worker

集群部署

初始化数据库

dolphinScheduler元数据存储再关系型数据库中,需要创建相应的数据库和用户

1.创建数据库

CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

2.创建用户

CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';

3.赋予用户相应权限

GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';

flush privileges;

4.修改数据源配置文件

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://hadoop102:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=dolphinscheduler
spring.datasource.password=dolphinscheduler
# hadoop102:主机名

5.拷贝mysql的JDBC驱动到dolphinScheduler的解压目录下的lib中

6.执行数据库初始化脚本(位于dolphinScheduler解压目录下的script目录下)

7.修改运行参数,conf/env/dolphinscheduler)env.sh中的环境变量(百度配置)

8.jdk软链到/usr/bin/java下

9.一键部署配置文件 conf/config/install_config.conf中的各项参数(百度配置)

界面

1.安全中心配置

功能:租户管理、用户管理、告警组管理、worker分组管理、队列管理、令牌管理等功能

用户管理:用来登录dolphinScheduler,配置:用户名,关联的租户、队列、邮件

告警组管理:用于指定告警发送对象

worker分组管理:任务执行时将任务分配给指定的worker组,由改组worker节点执行该任务,默认情况下所有worker都在default组

令牌配置:用于通过接口访问dolphinScheduler各项服务时的用户验证,与第三方服务进行集成,需调其接口才需使用令牌

2.项目管理

工作流基础配置三个模块:

  1. 工作流定义:用于定义工作流,包括工作流各个节点任务详情和节点依赖关系
    • 创建工作流
    • 配置任务节点(shell、python、http等)
      • 运行标志:是否执行该节点
      • 失败重试次数:当执行失败时重试
      • 脚本:执行的脚本内容
    • 配置依赖关系
    • 保存工作流定义:设置流程名和选择执行的租户
    • 设置定时,完成上线
  2. 工作流实例:每执行一次工作流就会生成一个工作流实例
    • 查看工作流执行状态(绿色为成功)
  3. 任务实例:工作流中的每个节点,每执行一次就会生成一个任务实例
    • 查看日志
    • 在这里插入图片描述

进阶

工作流传参

1.局部传参
  • 针对单个任务节点有效的参数,任务系欸但通过${参数名}引用参数值
2.全局参数
  • 对整个工作流的所有任务节点都有效的参数,再保存工作流时设置全局参数
3.自定义时间参数
参数说明
${add_months(yyyyMMdd,12*N)}后N年
${add_months(yyyyMMdd,-12*N)}前N年
${add_months(yyyyMMdd,N)}后N月
${yyyyMMdd+7*N}后N周
${yyyyMMdd+N}后N天
${yyyyMMdd-N}前N天
${HHmmss-N/24}前N小时
${HHmmss+N/24/60}后N分组

如:执行的脚本需要一个yyyy-MM-dd的前一天日期的参数:${yyyy-MM-dd-1}

4.引用资源

在Shell脚本节点或python中引用在资源中心写好的脚本资源

5.告警通知

准备邮箱账号开启SMTP服务,获取授权码

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

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

相关文章

IntelliJ IDEA 2022.3.1 (Community Edition)代码注释风格设置

Setting -> Editor -> Code Style -> Java -> Comment Code

Unity 之 最新Ads原生广告接入流程详解和工具类分享

Unity 之 Ads接入流程详解 一,注册 Unity Ads 广告 SDK二,下载 Unity Ads 广告 SDK三,配置 Unity Ads 广告 SDK3.1 广告位展示流程3.2 代码初始化 四,集成 Unity Ads 广告 SDK4.1 相关介绍4.2 代码分享 五,测试 Unity …

C语言变量学习2

前文已经学习了C语言变量; C语言变量_c语言变量块_bcbobo21cn的博客-CSDN博客 继续再学习;VC6新建一个单文档工程; void CVtestView::OnDraw(CDC* pDC) {CVtestDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for na…

【C语言复习】第三篇、Gitee码云的创建和使用

目录 第一部分、Gitee码云的用处 1、为什么要使用Gitee? 2、我参考的视频 第二部分、软件安装流程 1、下载Git for windows软件和TortoiseGit软件 2、Git for windows软件的安装流程 3、TortoiseGit软件软件的安装流程 第三部分、Gitee如何创建仓库&#xf…

jquery和jquery ui有什么区别

jquery和jquery ui有什么区别 jquery和jquery ui有什么区别 jQuery UI 与 jquery 的主要区别是:(1) jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。(2) jQuery UI则是在jQuery的基础上,利用jQuery的扩展性&…

企业搭建小型直播间、中型直播间、大型直播间的介绍

常用的直播间搭建大致分为实景和绿幕两种类型。实景区即公司具体场景,如会客厅、LOGO墙、海报展板以及纯白背景等,根据企业直播主题而调整;绿幕区则是通过搭建绿幕,满足企业直播过程中需要进行抠像,设置沉浸式背景的需…

国产麒麟服务器等保二级 配置规范(一)

麒麟linux的加固 1.检查设备密码复杂度策略 配置文件 vi /etc/pam.d/system-auth password requisite pam_cracklib.so ucredit-1 lcredit-1 dcredit-1 minlen6 auth required pam_tally.so deny5 unlock_time600 no_lock_time account required pam_tally.sopassword suffi…

大数据Doris(四十五):Routine Load注意事项

文章目录 Routine Load注意事项 Routine Load注意事项 1、查看作业状态的具体命令和示例可以通过 HELP SHOW ROUTINE LOAD; 命令查看。 2、用户可以通过 STOP/PAUSE/RESUME 三个命令来控制作业的停止,暂停和重启。可以通过 HELP STOP ROUTINE LOAD; HELP PAUSE ROUTINE LOA…

调用万维易源API实现证件照换装

目录 1. 作者介绍2. 万维易源API简介2.1 易源数据2.2 易源API管理2.3 调用参数简介 3. 万维易源API调用过程3.1 获取ID和代码3.2 代码实现3.3 完整代码 参考(可供参考的链接和引用文献) 1. 作者介绍 吴宇,男,西安工程大学电子信息…

LVS keepalived 集群

LVS keepalived 集群 LVS keepalived 集群一、Keepalived及其工作原理1.Keepalived体系主要模块及其作用2.健康检查的方式(探针) 二、LVSKeepalived 高可用群集部署1.LVS部署一:配置负载调度器(主、备相同)二&#xff…

FreeRTOS实时操作系统(二)任务创建与任务删除(HAL库)

文章目录 前言系统配置任务创建动态任务创建删除实践静态任务创建删除实践 前言 接着学习正点原子的FreeRTOS教程,涉及到一些详细的系统内文件代码 系统配置 可以通过各种的宏定义来实现我们自己的RTOS配置(在FreeRTOSconfig.h) “INCLUDE…

100天精通Python(可视化篇)——第92天:Pyecharts绘制炫酷柱状图、条形图实战大全

文章目录 专栏导读1. 基础柱状图2. 旋转x轴标签3. 旋转坐标轴4. 添加坐标轴名称5. 添加标记点6. 添加标注线7. 添加数据8. 添加自定义背景图9. 堆叠柱状图10. 柱状图与折线图组合11. 三维柱状图12. 水平滑动、鼠标滚轮缩放柱状图 专栏导读 🔥🔥本文已收…

ConcurrentHashMap源码

HashTable是一个线程安全的类,它使用synchronized来锁住整张Hash表来实现线程安全,即每次锁住整张表让线程独占,相当于所有线程进行读写时都去竞争一把锁,导致效率非常低下。 介绍 ConcurrentHashMap的底层原理和HashMap是比较相…

网页之http

目录 一、网页概念: 1.纯文本格式文件 2.编写语言-----html---超文本标记语言 3.浏览器相当于翻译器,检查是否为html文件,是的话就翻译,否则就报错。 二、域名 三、DNS解析 1.分布式域名解析-----层次性:迭代处…

谁是远程界的天花板?2023年5款最常用的远程软件横测:ToDesk、向日葵、TeamViewer、Splashtop、AnyDesk

前言 一个优秀的远控软件,追求的是可信赖的安全感,连接的流畅度、画质的清晰度、操作的简单化、毫秒级的无感延迟以及全方位的功能。另外,远控软件还应拥有独立的创新技术,具备竞争对手无法超越的市场前瞻性,与世界保…

MySQL - 第4节 - MySQL表的约束

1.MySQL表的约束概述 • 真正约束字段的是数据类型,如果插入的数据超出了对应数据类型的取值范围,那么数据将会插入失败。 • 但是数据类型的约束很单一,为了更好的保证数据的合法性,从业务逻辑角度保证数据的正确性,M…

ldr、str、ldm、stm、msr、mrs、swi、svc、mrc等ARM指令详解及具体应用

文章目录 前言一、跳转指令1.1 相对跳转1.2 绝对跳转 二、内存操作指令2.1 Load和Store2.1.1 伪指令2.1.2 伪操作 2.2 内存操作指令具体应用 三、 寄存器的寻址方式3.1 前索引寻址3.2 后索引寻址3.3 基址变址 四、块拷贝指令(多数据加载)4.1 块拷贝4.2 指…

Nacos 源码分析全系列

Nacos 源码分析全系列 学习目标 主线任务 代码解析画图git库(中文注释)设计思想多版本迭代讨论群(私聊进群) 主要的大纲路线 主要拆解的是nacos的1.4.1版本和2.1.0版本,还有nacos 的一些已知的bug 正确的学习源码的姿势 服务端是如何处理客户度的请求 注册中心服务 内存…

【备战秋招】每日一题:华东师范大学保研机试-2022-差分计数

为了更好的阅读体检,可以查看我的算法学习博客差分计数 题目内容 给定n个整数,...,和一个整数x。求有多少有序对(i,j)满足 输入格式 第一行两个整数,分别代表整数的个数和题目中的x。 第二行n个用空格隔开的整数,第i个代表 输出格式 一行一个整数…

1745_Perl中的switch结构

全部学习汇总: GreyZhang/perl_basic: some perl basic learning notes. (github.com) 用了很久时间的Perl了,但是一直没有使用过switch结构。即使有的时候,基本上也通过其他的形式完成了相关工作。虽说有时候可能会效率低一些,但…