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打…

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

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

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

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

使用命令行工具测试主机到FTP网络

使用命令行工具测试FTP服务器上的文件权限,通常涉及登录到FTP服务器并尝试执行一些基本的FTP命令来检查和交互。以下是一个基本步骤指南,假设你正在使用Linux或MacOS系统的命令行界面,并且你的FTP服务器已经设置好且可以访问: 准…

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

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

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

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

【华为OD机试】 硬件产品销售方案(C++/Java/Python)

题目 题目描述 某公司目前推出了AI开发者套件,AI加速卡,AI加速模块,AI服务器,智能边缘多种硬件产品,每种产品包含若干个型号。 现某合作厂商要采购金额为_amount_元的硬件产品搭建自己的AI基座。 例如当前库存有_N_种产品,每种产品的库存量充足,给定每种产品的价格,记为…

MySQL 5.x和8.0区别

1、性能:8.0的速度要比5.7快2倍,8.0在以下方面带来了更好的性能:读/写负载、IO密集型工作负载、高竞争("hot spot"热点竞争问题)工作负载。 2、NoSQL:5.7 版本开始提供NoSQL存储功能&#xff0c…

智能分析赋能等保:大数据技术在安全审计记录中的应用

随着信息技术的飞速发展,大数据技术在各行各业中的应用愈发广泛,特别是在网络安全领域,大数据技术为安全审计记录提供了强有力的支撑。本文将深入探讨智能分析如何赋能等保(等级保护),以及大数据技术在安全…

昇思25天学习打卡Day01

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

2024-06-24力扣每日一题

链接: 503. 下一个更大元素 II 题意 循环数组,找出每个元素的往后最近且大于它的元素 解: 今天没试暴力啊,大概率是过不了的 思路就是先找到最大的数,最大数的结果肯定是-1,然后倒着遍历数组&#xf…

C++中的引用定义以及它与指针有何不同?

在C中,引用是一种特殊的别名,用于表示另一个已存在的变量。引用一旦定义,就不能再引用其他变量,即它始终指向同一个对象。引用主要用于作为函数参数和返回类型,以提高效率,因为它不涉及指针的解引用操作。 …

C语言常用标准头文件

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

c++分隔字符串

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

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

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

PS系统教程25

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

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

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

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

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

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

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