Springboot 整合 DolphinScheduler(一):初识海豚调度

目录

一、什么是 DolphinScheduler

二、DolphinScheduler 的特性

三、DolphinScheduler 核心架构

四、单机环境部署流程

1、下载安装包

2、上传至服务器,解压缩

3、单机启动

4、登录 dolphinscheduler UI

5、配置数据库【非必需】

(1)下载 MySQL 驱动

(2)上传服务器并解压缩

(3)引入mysql连接驱动包

(4)在MySQL中创建dolphinscheduler数据库

(5)修改 dolphinscheduler 的数据源连接

(6)通过Shell 脚本来初始化数据库

五、集群环境部署流程

1、环境准备

2、上传服务器并解压缩

3、修改配置项

4、配置 MySql 数据库

5、执行安装

6、启动服务

7、启动成功后,登录UI


一、什么是 DolphinScheduler

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

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

二、DolphinScheduler 的特性

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

三、DolphinScheduler 核心架构

主要角色如下:

  • MasterServer:采用分布式无中心设计理念,MasterServer主要负责 DAG 任务切分、任务提交、任务监控,并同时监听其它 MasterServer 和 WorkerServer 的健康状态。
  • WorkerServer:也采用分布式无中心设计理念,WorkerServer主要负责任务的执行和提供日志服务。
  • ZooKeeper服务:系统中的 MasterServer 和 WorkerServer 节点都通过 ZooKeeper 来进行集群管理和容错。
  • Alert服务:提供告警相关服务。
  • API接口层,主要负责处理前端UI层的请求。
  • UI,系统的前端页面,提供系统的各种可视化操作界面。

四、单机环境部署流程

1、下载安装包

地址:Index of /apache/dolphinscheduler/3.2.1

2、上传至服务器,解压缩

tar -zxvf apache-dolphinscheduler-3.2.1-bin.tar.gz

3、单机启动

./bin/dolphinscheduler-daemon.sh start standalone-server

4、登录 dolphinscheduler UI

 浏览器输入地址:http://{所在服务器IP}:12345/dolphinscheduler/ui

 用户名admin

 密码dolphinscheduler123

【注】无法访问可能是因为服务器端口12345未开放

① 查看 12345 端口号是否开放:firewall-cmd --query-port=12345/tcp

② 打开端口:firewall-cmd --zone=public --add-port=12345/tcp --permanent

③ 重启防火墙:firewall-cmd –reload

5、配置数据库【非必需】

Standalone server 使用 H2 数据库作为其元数据存储数据,这是为了上手简单,用户在启动服务器之前不需要启动数据库。但是如果用户想将元数据库存储在 MySQL PostgreSQL 等其他数据库中,必须更改一些配置。以下以修改成MySQL数据库为例:

(1)下载 MySQL 驱动

地址:https://downloads.mysql.com/archives/c-j/

(2)上传服务器并解压缩

(3)引入mysql连接驱动包

将 mysql-connector-j-8.2.0.jar 拷贝到 DolphinScheduler 的每个模块的 libs 目录下。

其中包括 api-server/libs 、alert-server/libs 、master-server/libs 、worker-server/libs

(4)在MySQL中创建dolphinscheduler数据库

(5)修改 dolphinscheduler 的数据源连接

修改文件:./bin/env/dolphinscheduler_env.sh

(6)通过Shell 脚本来初始化数据库

脚本位置:apache-dolphinscheduler-3.2.1-bin/tools/bin/upgrade-schema.sh

五、集群环境部署流程

DolphinScheduler 的集群需要依赖 Zookeeper,目前已有一套 CDH 的组网环境,其中 zookeeper 的版本为 3.4.5。DolphinScheduler 3.2.1 版本使用的是 Zookeeper 3.8.0 版本。版本不一致导致我在启动 DolphinScheduler时,一直报如下错误:

尝试将 CDH 中 zookeeper 的版本升至 3.8.3后,仍未解决问题,因此将 DolphinScheduler 版本降至 2.0.6。

1、环境准备

(1) 已安装了 Zookeeper 集群环境,CDH 组网环境如下:

主机名

IP

服务

hadoop103

192.168.1.247

JDK、zookeeper

hadoop104

192.168.1.248

JDK、zookeeper

hadoop105

192.168.1.249

JDK、zookeeper、MySQL

(2) DolphinScheduler 要搭建的集群环境:

【注】三台服务器之间能互相免密登录,涉及文件拷贝等操作。

角色

服务器IP

master

192.168.1.247

master

192.168.1.248

worker

192.168.1.249

2、上传服务器并解压缩

过程略

3、修改配置项

① apache-dolphinscheduler-2.0.6-bin/conf/env/dolphinscheduler_env.sh

② apache-dolphinscheduler-2.0.6-bin/conf/config/install_config.conf

4、配置 MySql 数据库

① 手动创建数据库dolphinscheduler

② 将MySQL驱动包放入apache-dolphinscheduler-2.0.6-bin/lib/下

③ 执行脚本初始化数据库

脚本位置:apache-dolphinscheduler-2.0.6-bin/script/create-dolphinscheduler.sh

5、执行安装

脚本位置:apache-dolphinscheduler-2.0.6-bin/install.sh 

只在 247 服务器上执行脚本即可,执行后,会在三台主从机上的 home/dolphinscheduler 下产生相关文件:

6、启动服务

脚本位置:/apache-dolphinscheduler-2.0.6-bin/bin/start-all.sh

另外:

查看状态:status-all.sh

停止服务:stop-all.sh

7、启动成功后,登录UI

 


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

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

相关文章

前端:Nuxt3 + Vuetify3 + Element Plus + 添加常用插件

想要开发一个网站,并且支持SEO搜索,当然离不开我们的 Nuxt ,那通过本篇文章让我们一起了解一下。让我们一起来构建下 Nuxt3 集成其它插件 目录 安装 Nuxt3,创建项目 一、搭建脚手架 二、添加 Vuetify 3 2.1、安装 Vuetify 3 …

如何将一个web端程序打包成一个pc端程序(exe文件)?

如何将一个Web端程序打包成一个PC端程序,例如一个可执行的EXE文件,是许多开发者常见的需求。下面将详细解释如何使用Nativefier工具将Web端程序打包成PC端程序的具体步骤。 目录 下载并安装Node.js验证Node.js和npm的安装安装Nativefier使用Nativefier打…

革新校园环境:轻空间打造上海六十中学多功能气膜馆

在现代教育环境中,舒适、环保和多功能的建筑越来越受到重视。上海六十中学多功能气膜馆的建设正如火如荼地进行中,这个项目由轻空间(江苏)膜科技有限公司全力打造,将为学校师生带来全新的活动体验。 项目进展 自项目启…

量子计算的崛起:开启计算新纪元

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

基于SpringBoot小区物业智能卡管理设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟感兴趣的可以先收藏起来,还…

MySQL 外连接、内连接与自连接的区别?

引言:本文将深入探讨这些连接类型的概念、语法及其应用场景,帮助读者全面理解如何利用这些技术实现复杂的数据查询和分析。在数据库查询中,连接操作使得我们可以根据指定的关联条件(join condition)联合两个或多个表中…

昇思25天学习打卡Day01

实验结果 心得体会 趁着假期,跟谁官方实战营开始系统学习MindSpore深度学习框架。昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景统一部署三大目标。其中易开发表现为API友好,调试难度低;高效执行包括…

C语言常用标准头文件

头文件的基础概念 在C的系列语言程序中,头文件(通常扩展名为.h)被大量使用,它通常包含函数、变量、结构体等的声明和定义,以及一些宏定义和类型定义。头文件的主要作用是为了方便管理和重用代码,它可以被多…

c++分隔字符串

可以使用getline函数。 有两个版本: 至于为什么可以使用getline函数返回值作为while的判断条件,cprimer中表述如下:

【话题】分数限制下,选好专业还是选好学校?

目录 引言:一、专业优先的考量二、学校优先的考量三、个人经历与决策四、综合考虑因素五、建议与策略结论文章推荐 引言: 随着24年高考的落幕,考生们迎来了人生中的重要抉择时刻:选择专业还是选择学校?两者皆重要&…

PS系统教程25

介绍软件 BR(bridge) PS 配套软件,方便素材整理、管理素材 作用:起到桥梁作用 注意:PS和BR尽量保持版本一致 下载和安装可通过CSDN社区搜索,有免费安装指导。 安装之后,我们打开照片只需双…

vxe-list做列表虚拟滚动时,底部间距的优化

已知vxe-list在数据超出一定行时会自动启用纵向虚拟滚动配置,默认效果如图: 但是在滚动中我们发现有时列表底部间距不一致,而且会出现在感官上底部空白过多的情况: 这时候我们想让列表恰好显示完全应该怎么做呢,查看官…

重生奇迹MU 谁才是真正的全能职业

重生奇迹MU中,游戏的奥妙就在于职业的选择。不同职业间各有千秋,可远可近,全都是玩家们心中的全能职业。本文就将为你分析重生奇迹MU中的各个职业,为你解答谁才是真正的全能职业。 每次新开一个服务器时,玩家们总会纠结…

深入解析账户和会员系统的整体架构设计:从基础到高级实现

在现代应用程序和平台中,账户和会员系统是必不可少的核心组件。它不仅负责用户的注册和登录,还涉及权限管理、用户信息维护、安全性等多个方面。本文将详细解析账户和会员系统的整体架构,从基础概念到高级实现,帮助开发者全面理解…

分享HTML显示2D/3D粒子时钟

效果截图 实现代码 线上体验&#xff1a;three.jscannon.js Web 3D <!DOCTYPE html> <head> <title>three.jscannon.js Web 3D</title><meta charset"utf-8"><meta name"viewport" content"widthdevice-width,ini…

数据处理技术影响皮质-皮质间诱发电位的量化

摘要 皮质-皮质间诱发电位(CCEPs)是探究颅内人体电生理学中有效连接性的常用工具。与所有人体电生理学数据一样&#xff0c;CCEP数据极易受到噪声的影响。为了解决噪声问题&#xff0c;通常会对CCEP数据进行滤波和重参考&#xff0c;但不同的研究会采用不同的处理策略。本研究…

Kotlin 中的数据类型有隐式转换吗?

在 Kotlin 中&#xff0c;数据类型不可隐式转换。在 Java 中&#xff0c;如果数据是从小到大&#xff0c;是可以隐式转换的&#xff0c;数据类型将自动提升。 下面以 int 类型的数据为例&#xff0c;在 Java 中这样写是可以的&#xff1a; int a 2312; long b a;但是在 Kot…

【产品经理】订单处理10-分配快递策略

本次主要讲解下在订单处理过程中分配快递的策略以及分配快递中需要用到的设置。 一、建立快递档案 在ERP系统中&#xff0c;需要建立快递档案&#xff0c;设置所属快递、快递的服务类型、支持的打印模版以及快递在各个平台的电子面单支持情况。 二、仓库绑定快递 仓库需要设…

基于SpringBoot前后端分离在线骑行网站设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f;感兴趣的可以先收藏起来&#xff0c;还…

Python学习笔记19:进阶篇(八)常见标准库使用之glob模块和argparse模块

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 这里贴一下教程地址&#xff1a;https://docs.python.org/zh-cn/3/tutorial/stdlib.h…