【大数据离线项目四:什么是海豚调度?怎么使用可以将海豚调度应用到我们的大数据项目开发中?】

前言:
💞💞大家好,我是书生♡,今天主要和大家分享一下什么是海豚调度?怎么使用可以将海豚调度应用到我们的项目开发中?希望对大家有所帮助。
💞💞
代码是你的画笔,创新是你的画布,用它们绘出属于你的精彩世界,不断挑战,无限可能!

个人主页⭐: 书生♡
gitee主页🙋‍♂:闲客
专栏主页💞:大数据开发
博客领域💥:大数据开发,java编程,前端,算法,Python
写作风格💞:超前知识点,干货,思路讲解,通俗易懂
支持博主💖:关注⭐,点赞、收藏⭐、留言💬

目录

  • 1. 什么是海豚调度
  • 2. 海豚调度的作用
  • 3. 海豚调度的优点
  • 4. Dolphin Scheduler 的使用
    • 4.1 Dolphin Scheduler 的架构
    • 4.2 启动DS服务
    • 4.3 DS的安全中心
    • 4.4 项目调度练习
    • 4.5 数据源中心
    • 4.6 定时操作
  • 5. 线上部署操作

1. 什么是海豚调度

  • Apache DolphinScheduler(海豚调度)是一个分布式、去中心化、易扩展的可视化DAG工作流任务调度系统,致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
  • Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。 解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。 DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。
    在这里插入图片描述

2. 海豚调度的作用

解决大规模数据处理流程中的复杂依赖关系和高效执行问题。
Apache DolphinScheduler致力于简化数据处理流程的运维工作,帮助提升其数据驱动业务的效率和效果。适用于大规模数据处理与分析场景。

3. 海豚调度的优点

  • 分布式架构:

DolphinScheduler采用分布式去中心化的设计,具有高可用性和水平扩展能力,可以在大型集群中运行并调度成千上万个任务。

  • 可视化 DAG 工作流设计且简单易用

提供了可视化的界面来定义和编排数据处理流程,通过拖拽方式构建有向无环图(DAG),清晰地表示任务之间的依赖关系。
用户可以通过简单直观的操作界面创建、编辑、发布和监控工作流任务,同时支持自定义插件机制,能够方便地添加对新类型任务的支持。

  • 多租户和权限管理:

支持多租户模式,可以为不同团队或项目分配资源,并提供详细的权限控制,确保安全可靠的数据处理流程。

  • 容错与恢复机制:

采用checkpoint和重试策略,确保在出现故障时能够自动恢复任务执行,提高系统的稳定性和可靠性。

  • 多种任务类型支持:

可以调度包括但不限于SQL、Shell、Python、Spark、Hive等多种类型的任务,满足不同场景下的大数据处理需求。

  • 强大的调度功能:

支持定时调度、依赖调度以及手动触发任务,还具备动态参数传递、跨工作流依赖、邮件告警等功能。

  • 开箱即用:

配置简单,用户无需过多关注底层细节即可快速部署并开始使用。

4. Dolphin Scheduler 的使用

4.1 Dolphin Scheduler 的架构

具体流程:

  1. 首先在DS的web页面进行工作流的配置操作,将我们的任务添加进来,将其提交执行。
  2. 通过接口的调用,接收到被发送的请求,接受任务。
  3. 选择一台主节点的Master 用来进行任务的分配(底层最终是有对应scheduler具体完成,Master只是负责管理分配)
  4. 将对应的任务交给WokerServer 去执行,执行过程中worker对应有一个logger服务进行日志的记录。
  5. 当执行完成后, 通知Master, Master进行状态变更。

注意:在整个过程中,告警服务 Alert会一直进行实时的监控,一旦出现错误,会及时的反馈。

在这里插入图片描述

4.2 启动DS服务

首先要进入到安装了DS的目录下面,执行在bin目录下的启动脚本。

cd /export/server/dolphinscheduler/./bin/start-all.sh

在这里插入图片描述

我们怎么确定他一定启动成功了呢?
通过jps查看服务是否真的启动成功!!!!
如果下面几个服务全部出现就说明启动成功了。

jps

在这里插入图片描述

DS web页面访问地址: http://192.168.88.80:12345/dolphinscheduler/ui/view/login/index.html

进入之后就是这个页面了。
在这里插入图片描述

4.3 DS的安全中心

安全中心下面,这么多服务都是干嘛的呢?
在这里插入图片描述

  1. 租户管理
    作用:当DS操作的时候,采用什么身份去操作。这个就是由租户决定的。
    在这里插入图片描述
  2. 队列管理
    当任务通过DS提交到资源队列,将任务提交到哪一个队列中。就是根据选择的队列决定的。

注意:此名称的设置,要和目标资源队列名称一致。
在这里插入图片描述

  1. 用户管理
    这个是登录DS的用户账户,一般有一个默认的admin的权限账户。也可以添加用户账户来登录DS。
    在这里插入图片描述
  2. 告警服务
    发生警告的时候,采用什么方式。
    在这里插入图片描述
  3. worker 分组
    任务最终是由worker节点执行的?由哪个worker执行取决你选择哪个节点。

在这里插入图片描述

4.4 项目调度练习

需求:我们想要先创建一个 root目录下的 aa/bb 文件夹 ,然后在 aa/bb文件夹下面创建一个txt文件。

  1. 配置项目名称,告诉我们这个操作在哪个项目下。
    点击项目管理。点击添加项目,写入项目名称和描述。
    在这里插入图片描述
    2.创建工作流
    先点击项目管理,直接进入到项目中。
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

我们要先从左边拖拽处第一个 shell语句。
创建目录节点
在这里插入图片描述
创建文件节点
在这里插入图片描述
点击右上角了直线,将两个节点连接起来。
在这里插入图片描述
3. 点击保存,选择租户为root
在这里插入图片描述
4. 上线运行工作流
在这里插入图片描述
先点击上线,再点击启动,将我们的worker 分组改为我们的主机。
在这里插入图片描述

  1. 点击工作流实例和任务实例 可以查看程序是否启动成功,以及是否启动完成。
    在这里插入图片描述

4.5 数据源中心

点击上面的数据源中心,点击创建数据源,添加对应的信息。
在这里插入图片描述
比如:我想连接HIve中的一个库,数据源先选择hive,取一个名称,IP地址就是服务器的ip地址,
端口 写对应的数据库的端口 Hive的是10000,mysql是3306等等。用户名哥密码按照对应的数据库的用户名和密码书写。最后是选择连接那个库?

在这里插入图片描述

4.6 定时操作

如果我们想让这个程序定时的运行,那我们就可以这是设置定时管理。

  1. 在工作流定义,点击定时
    在这里插入图片描述
    设置我们想要程序执行的时间
    这里我们设置每5秒执行一次。
    在这里插入图片描述
    然后点击定时管理
    在这里插入图片描述
    在这里插入图片描述

最后我们执行那个的时候,就可以让其每5秒执行一次。

5. 线上部署操作

我们的操作是将Hive中的dim层一个表导入到dwd层(分区的),在通过json将其导入到postgres中。
在这里插入图片描述
设置启动提示
在这里插入图片描述
设置从dim层到dwd层的节点。先拖拽处一个可以执行SQL的节点,填写数据
在这里插入图片描述
从dwd层到postgres是需要通过脚本的,因此我们选择一个执行shell的执行脚本
在这里插入图片描述
最后用线连起来
在这里插入图片描述

保存的时候注意 我们的是需要进行动态分区的,因此在保存的时候需要有点设置。 设置我们的分区时间,模版如下!!!

在这里插入图片描述
最后上线启动就可以啦。

编程之路虽充满挑战,但我们的智慧与毅力定能化难为易。愿在代码的海洋中遨游,创造出无数令人赞叹的程序。

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

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

相关文章

数组 (java)

文章目录 一维数组静态初始化动态初始化 二维数组静态初始化动态初始化 数组参数传递可变参数关于 main 方法的形参 argsArray 工具类sort 中的 comparable 和 comparatorcomparator 比较器排序comparable 自然排序 一维数组 线性结构 静态初始化 第一种:int[] a…

IDEA插件推荐-CodeGeex

功能:这个插件可以实现快速翻译代码,json文件格式转换,代码语言类型转换。 安装方式:File->Settings->Plugins->MarketPlace->搜索“CodeGeex”即可 (CodeGeex功能展示) (CodeGeex…

模拟算法讲解

模拟算法是一种基于实际情况模拟的算法,通过模拟现实世界中的系统或过程,来研究它们的性质和行为。模拟算法可以用于解决各种问题,包括物理模拟、经济模拟、社会模拟等。 模拟算法的基本步骤包括: 定义问题:明确需要模…

【STM32c8t6】AHT20温湿度采集

【STM32c8t6】AHT20温湿度采集 一、探究目的二、探究原理2.1 I2C2.1. 硬件I2C2.1. 软件I2C 2.2 AHT20数据手册 三、实验过程3.1 CubeMX配置3.2 实物接线图3.3 完整代码3.4 效果展示 四、探究总结 一、探究目的 学习I2C总线通信协议,使用STM32F103完成基于I2C协议的A…

android串口助手apk下载 源码 演示 支持android 4-14及以上

android串口助手apk下载 1、自动获取串口列表 2、打开串口就开始接收 3、收发 字符或16进制 4、默认发送at\r\n 5、android串口助手apk 支持android 4-14 (Google seral port 太老) 源码找我 需要 用adb root 再setenforce 0进入SELinux 模式 才有权限…

【数据结构导论】自考笔试题:伪代码练习题汇总 1

目录 一、开源项目推荐 二、线性表的基本运算在单链表上的实现 (1)初始化 (2)插入 p 指向的新结点的操作 (3)删除 *p 节点 三、循环链表 (1)在单链表中 (2&…

如何打包数据库文件

使用 mysqldump 命令: mysqldump -u username -p database_name > output_file.sql username 是数据库的用户名。database_name 是要导出的数据库名称。output_file.sql 是导出的 SQL 文件名,可以自定义。 示例: mysqldump -u root -p…

urfread刷算法题day1|LeetCode2748.美丽下标的数目

题目 题目链接 LeetCode2748.美丽下标对的数目 题目描述 给你一个下标从 0 开始的整数数组 nums 。 如果下标对 i、j 满足 0 ≤ i < j < nums.length &#xff0c; 如果 nums[i] 的 第一个数字 和 nums[j] 的 最后一个数字 互质 &#xff0c; 则认为 nums[i] 和 nums…

基于PyTorch设计的全景图合成系统【文末完整工程源码下载】

前言 本项目实现基于PyTorch将多张图片合成为一张全景图。&#xff08;图像存储路径为/images/1&#xff09;。 作者&#xff1a;阿齐Archie&#xff08;联系我微信公众号&#xff1a;阿齐Archie&#xff09; 使用的图片为&#xff1a; 合成后为&#xff1a; 这个全景图项目主…

支持WebDav的网盘infiniCloud(静读天下,Zotero 等挂载)

前言 WebDav是一种基于HTTP的协议&#xff0c;允许用户在Web上直接编辑和管理文件&#xff0c;如复制、移动、删除等。 尽管有一些网盘支持WebDav&#xff0c;但其中大部分都有较多的使用限制。这些限制可能包括&#xff1a;上传文件的大小限制、存储空间的限制、下载速度的限…

如何打造稳定、好用的 Android LayoutInspector?

速度极慢&#xff0c;遇到复杂的布局经常超时 某些情况无法选中指定的 View 本文将围绕 LayoutInspector 的痛点&#xff0c;分析问题并修复&#xff0c;最终将 LayoutInspector 变成一个稳定、好用的插件。 二、加速 Dump View Hierarchy 2.1 问题描述 开发复杂业务的同学…

Spring Boot + WebSocket 实现 IM 即时通讯

文章目录 1. 项目环境准备2. 配置WebSocket3. 创建消息处理器4. 创建消息类5. 创建前端页面6. 启动应用并测试7. 分析与扩展结论 &#x1f389;欢迎来到SpringBoot框架学习专栏~ ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;…

Go语言之基础入门

网站&#xff1a;http://hardyfish.top/ 免费书籍分享&#xff1a; 资料链接&#xff1a;https://url81.ctfile.com/d/57345181-61545511-81795b?p3899 访问密码&#xff1a;3899 免费专栏分享&#xff1a; MySQL是怎样运行的从根儿上理解MySQL 课程链接&#xff1a;https:/…

nn.Embedding 根据索引生成的向量有权重吗

import torch import torch.nn as nn 假设有一个大小为 10x3 的 Embedding 层&#xff0c;其中有 10 个单词&#xff0c;每个单词用一个长度为 3 的向量表示 num_words 10 embedding_dim 3 创建 Embedding 层 embedding_layer nn.Embedding(num_words, embedding_dim) p…

LeetCode 算法:翻转二叉树 c++

原题链接&#x1f517;&#xff1a;翻转二叉树 难度&#xff1a;简单⭐️ 题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 示例 …

【Python】已解决:安装python-Levenshtein包时遇到的subprocess-exited-with-error问题

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例及解决方案五、注意事项 已解决&#xff1a;安装python-Levenshtein包时遇到的subprocess-exited-with-error问题 一、分析问题背景 在安装python-Levenshtein这个Python包时&#xff0c;有时会…

godot所有2D节点介绍

五十个2D节点介绍 2D节点介绍 前言一、Node2D二、sprite2D三、AnimatedSprite2D四、Camera2D五、PhysicsBody2D六、 RigidBody2D七、CharacterBody2D八、StaticBody2D九、joint2D十、DampedSpringJoint2D十一、GrooveJoint2D十二、PinJoint2D十三、Area2D十四、AnimatableBody2…

智能优化算法改进策略之局部搜索算子(三)—二次插值法

1、原理介绍 多项式是逼近函数的一种常用工具。在寻求函数极小点的区间&#xff08;即寻查区间&#xff09;上&#xff0c;我们可以利用在若干点处的函数值来构成低次插值多项式&#xff0c;用它作为求极小点的函数的近似表达式&#xff0c;并用这个多项式的极小点作为原函数极…

快速业务建模

一句话故事 培训学院进行新季度招生工作&#xff0c;出计划后教务处审批&#xff0c;教学秘书下发计划&#xff0c;班主任手机名单审核后完成计划 用户故事 角色 时间线 动作为动名词 业务建模 多次建模&#xff0c;模型是否能完成业务

高考填报志愿(选专业),怎样找准自己的兴趣?

在很多的高考报考指南中&#xff0c;第一要点&#xff0c;都会建议我们根据自己的兴趣来选择自己的专业。很多人虽然是依据这条规则&#xff0c;选择了自己大学的专业。却依然在学习的过程中发现&#xff0c;好像自己对这个专业并不是那么的有兴趣。 甚至对专业学习深入了解之…