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

 


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

新风口不再是直播,云微客带你领略短视频矩阵的魅力

只要你细心观察,就能发现很多品牌都在做短视频矩阵,正是凭借大量的短视频矩阵账号带来的流量曝光,这些品牌才能覆盖数以万计的客户人群,才能每天不断地产生新订单。 有很多人觉得矩阵不就是多注册账号吗?其实短视频矩阵…

20240629 每日AI必读资讯

🚀 Google 深夜突袭,Gemma 2 狂卷 Llama 3 - Gemma2性能超越Llama3,提供9B和27B版本,性能接近70B模型但大小仅为其40% - Gemma2支持高效推理,单个GPU即可实现全精度推理,广泛的硬件支持 - Gemma2兼容多种…

ImageMasking-对图片做随机遮掩/块遮掩

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言从ipynb文件入手带注释的python文件modulesmask.pyutils.py 前言 1.可以去github直接下载这个项目,这样下载得到的是比较干净的版本,我把有注释的按…

pgsql的套接字文件不存在

问题:psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory 解决方式: 检查 postgresql.conf 文件中的 unix_socket_directories 设置,确保它包含 /tmp 或者你期望的目录。 重…

Hadoop3:MapReduce中的Reduce Join和Map Join

一、概念说明 学过MySQL的都知道,join和left join 这里的join含义和MySQL的join含义一样 就是对两张表的数据,进行关联查询 Hadoop的MapReduce阶段,分为2个阶段 一个Map,一个Reduce 那么,join逻辑,就可以…

卸载 ubuntu-wsl2-systemd-script,使用 WSLg 图形用户界面

目录 全新安装 - 以前没有安装 WSL现有 WSL 安装卸载 ubuntu-wsl2-systemd-script使用 Linux GUI参考链接在 Windows 上使用 Linux 开发环境,最好的做法是使用 WSL2。在 WSL 和早期的 WSL2 版本中,并不支持图形用户界面。因此如果想要使用 GUI 程序,需要自行解决。具体方法可…

游戏AI的创造思路-技术基础-深度学习(3)

继续填坑,本篇介绍深度学习中的长短期记忆网络~~~~ 目录 3.3. 长短期记忆网络(LSTM) 3.3.1. 什么是长短期记忆网络 3.3.2. 形成过程与运行原理 3.3.2.1. 细胞状态与门结构 3.3.2.2. 遗忘门 3.3.2.3. 输入门 3.3.2.4. 细胞状态更新 3.…

一个分析电路图的好助手

GPT。 最进分析电路图的时候发现GPT支持读取图片功能: 还别说,分析的很有道理。 此外,它还可以分析芯片的引脚功能,辅助电路分析: AB胶:粘的非常牢固,需要A和B两种胶混合使用。

有兄弟对这类区域比较感兴趣,也引起我的好奇,我提取出来给大家看看

要说这类地区,亚洲泰国排第二估计没人敢说第一吧,所以我就提取泰国的数据给大家看看! 如图:这些特殊服务地区主要集中在曼谷和芭提雅地区,芭提雅最多!看来管理还是不错的,限制在一定范围&#x…

php composer 报错

引用文章: Composer设置国内镜像_composer 国内源-CSDN博客 php composer.phar require --prefer-dist yiidoc/yii2-redactor "*" A connection timeout was encountered. If you intend to run Composer without connecting to the internet, run the …

汉江师范学院2024年成人高等继续教育招生简章

汉江师范学院,这所承载着深厚文化底蕴和学术积淀的高等学府,即将在2024年迎来新一季的成人高等继续教育招生。这不仅是一次知识的盛宴,更是对每一位怀揣梦想、追求进步的成年人的诚挚邀请。 汉江师范学院,以其严谨的教学态度、卓…

老师如何发布学校分班情况?

随着新学期的临近,许多老师可能都会回想起过去那些忙碌的日子,他们不得不面对一堆学生名单,手动进行班级分配,然后逐一通知家长和学生,这种工作不仅繁琐而且容易出错,让人倍感压力。 然而,今天我…

真正的IDEA在线版有多好用

前言 在上一篇文章使用过TitanIDE的VS Code在线版以后,尝到了不少甜头,紧接着又去使用了他的在线版IntelliJ IDEA,同样非常惊艳,不需要任何时间去适应这款云原生开发工具,事不宜迟,马上开整 这才是真正的VS Code在线版…

9种慢慢被淘汰的编程语言...【送源码】

技术不断进步,我们使用的编程语言也不例外。 随着人工智能的兴起以及对编程语言使用的影响,我们更加关注哪些语言将在未来继续流行,哪些会被淘汰。 Python、Java 和 JavaScript 等多功能编程语言正在主导市场,而其他一些语言则逐…

第 1 章SwiftUI 简介

在 2019 年的 WWDC 上,Apple 宣布推出一款名为 SwiftUI 的全新框架,令开发者们大吃一惊。该框架不仅改变了开发 iOS 应用的方式,还代表了自 Swift 首次亮相以来 Apple 开发者生态系统最重大的转变。SwiftUI 适用于所有 Apple 平台,包括 iPadOS、macOS、tvOS 和 watchOS,这…

REST API 中的 HTTP 请求参数

当我们在谈论现代 Web 开发时,REST API (Representational State Transfer Application Programming Interface) 扮演着至关重要的角色。它允许不同的系统以一种简洁且高效的方式进行通信。HTTP 请求参数是控制此通信流程中数据如何被发送和接收的重要组成部分。 H…

加密教程:pdf怎么加密?7个pdf加密技巧任你选(图文详解)

pdf作为一种便携式文档,是展示内容的首选格式,目前也已广泛应用于交换和分享重要等温,例如内部报告、人力资源文件,以及商业提案等包含敏感信息的文档。然而,在如今的数字化时代,随着越来越多的企业将其文档…

mfc140.dll怎么安装?mfc140.dll丢失安装详细解决方法

当电脑出现找不到mfc140.dll丢失问题,我们需要怎么办?怎么解决mfc140.dll丢失问题?mfc140.dll到底是什么?下面我给大家详细介绍与分析,最重要的是mfc140.dll的解决方法! 一、文件丢失原因分析 在分析mfc14…

golang 获取系统的主机 CPU 内存 磁盘等信息

golang 获取系统的主机 CPU 内存 磁盘等信息 要求 需要go1.18或更高版本 官方地址:https://github.com/shirou/gopsutil 使用 #下载包 go get github.com/shirou/gopsutil/v3/cpu go get github.com/shirou/gopsutil/v3/disk go get github.com/shirou/gopsuti…

PIP安装Python扩展包超时解决办法-国内镜像

问题描述 使用pip安装Python扩展包经常超时,无法安装 解决方法 使用清华大学镜像: https://pypi.tuna.tsinghua.edu.cn/simple/ 使用方法:以openpyxl为例 原来:pip install openpyxl 现在:pip install -i https…