Apache DolphinScheduler在通信行业的多集群统一建设与管理实践

news2024/11/28 2:31:27

file

背景介绍

为什么我们考虑构建统一的调度平台? 主要原因是:我们公司的大数据中心目前拥有七个大数据集群,这些集群分布在不同的机房,例如内蒙、南京、苏州和广州。而且,这些机房之间的网络并不互通。如果每个集群都独立部署调度系统,将会有多套调度服务管理入口,这对于运维和开发者,无论维护和使用上来说都非常不便。因此,我们决定构建一个统一调度平台,集中管理多个集群的调度任务,也为我们后续深度平台集成提供契机。

构建经验

网络通讯: 之前我们的DolphinScheduler是基于单一机房的内网通讯。然而,考虑到我们的集群遍布多个省份,我们需要对其进行改造,使其支持跨机房通过公网通讯,而考虑降低网络延迟的影响,同一机房内的节点仍然希望服务之间内网通讯。为了保证数据的安全性,我们还为公网通讯配置了TLS加密。

权限管理: 由于我们需要管理多套集群,因此会遇到多集群权限的问题。我们优化DolphinScheduler的工作组功能来管理不同的集群环境,并为不同集群环境和租户进行权限隔离。

任务资源共享: DolphinScheduler本身支持对象存储。我们决定将所有集群的任务资源统一上传到同一个对象存储桶中,从而实现资源的统一管理和调度。

服务架构

我们的新架构基于DolphinScheduler的3.1.4版本。为了实现公网和内网通讯的混合部署,我们做了以下调整:

  • 同一机房内的服务节点通过内网通讯。
  • 不同机房之间的节点通过公网通讯。
  • master节点和zookeeper部署在统一机房内并与其他节点进行通讯。

file

为了实现上述设计,我们修改了DolphinScheduler的源码,使其可以基于主机名(Hostname)来识别服务节点,而不仅仅是IP。然后,我们通过配置hosts文件来映射内网IP和公网IP,从而实现内外网IP的动态切换。

多权限集群管理的挑战与实施

面对众多的项目基于单集群架构(单机房)的实际情况,我们实施了一个独特的集群标识系统,借由在数据库表格中新增字段的方法实现。为识别各集群身份,我们采用字符标识,以便在项目中明确标明集群归属。

集群标识的引入是基于以下几点:

  • 部署决策:我们将不同的账户节点部署至不同的数据中心。
  • 环境获取:在用户配置过程中,我们需要确定他们如何获得环境信息。为此,我们将不同集群的环境配置集中处理,并分配至不同的组。
  • 授权策略:在进行授权时,我们只需将相应集群环境授权给用户即可。用户在配置任务时,仅需选择我们授权给他们的集群环境。

在部署不同账户节点至多机房的过程中,一个值得探讨的问题是:在配置用户时,如何有效获取其运行环境?

file

我们将各集群环境信息配置至平台,进一步配置至不同分组。在执行授权时,简化操作——仅需将授权的集群环境授权给相应用户,通过集群环境实现集群的隔离与任务分配。 file

调度逻辑的升级与改造

在实际使用过程中,我们从DolphinScheduler 3.0升级至3.1.4,经历了多次版本升级。经历了跨机房施工与临时停服的挑战后,我们开发了一个自动连续调度系统,解决了由于非计划性停机导致的人工数据补充问题。

优化方案

逻辑统一:我们统一了DS的调度逻辑。之前的逻辑在调度一条任务时,会在表中插入一条记录,调度完成后再删除。现在的优化方案直接预生成未来需要调度的50条记录。

资源文件的缓存处理

我们面临一个挑战——在跨机房调度任务的过程中,资源文件需从S3下载,受到机房带宽的限制,这一过程变得异常缓慢。因此,我们实施了一个资源文件缓存机制,当从S3下载资源后,通过本地缓存与时间戳判断来避免不必要的重复下载,并通过软链接的方式快速引导执行目录。

缓存优化的必要性源于以下几点:

  • 跨网调度:我们跨网络调度任务时需从S3下载资源。
  • 带宽限制:由于数据中心的带宽限制(千兆带宽,而业界通常为万兆),下载速度较慢。

实施细节

  • 缓存逻辑:简要来说,每次从S3下载的资源会被缓存至本地。通过检查资源的时间戳来判断其是否被更新,未更新的资源将直接链接至本地文件。

调度连续性的直观展示

通过具体图表的展示,我们详细说明了调度自动连续的效果和相关的恢复容错机制。例如,一项工作流作业每20秒执行一次,在DS不可用的近三分钟后,我们恢复了服务。调度能继续执行停服期间未调度的实例,并避免了发布或服务重启时需要数据开发团队进行手动补数。 file

未来计划:开发作业调度分析页面

我们注意到,当前的海豚调度器尚不具备一个集中分析多项目作业的页面。我们计划开发一个作业调度分析页面,从而简化多集群项目的作业故障日志分析和作业调度跟进处理。

file

这个页面将基于任务维度展示相关作业,允许查看日志、重运作业,并提供一定的筛选功能。这将辅助开发和运维团队更快速地定位和分析问题,并高效地处理例如作业重运等操作。

通过上述的一系列策略和改进,我们在多集群管理、调度逻辑和资源缓存等多个方面实现了技术的优化和提升。我们会继续深入研究和开发,希望为社区提供更多的便利和支持。

我的演讲到此结束,非常感谢大家的聆听!

本文由 白鲸开源科技 提供发布支持!

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

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

相关文章

校园跑腿小程序源码系统+多校园版+取快递+食堂超市跑腿+外卖 带完整的搭建教程

大家好啊,又到了罗峰给大家分享源码的时间啦。今天要给大家分享的是一款校园跑腿小程序源码系统。这款系统功能十分强大,开发了多校园版。众所周知,校园跑腿的发展是从外卖配送一点点演变过来的,而校园跑腿的基础性服务项目就是帮…

智慧城市安全监控的新利器

在传统的城市管理中,井盖的监控一直是一个难题,而井盖异动传感器的出现为这一问题提供了有效的解决方案。它具有体积小、重量轻、安装方便等特点,可以灵活地应用于各种类型的井盖,实现对城市基础设施的全方位监控。 智能井盖监测终…

如何创建react项目

可以直接通过react脚手架进行创建 首先确保自己是否安装了create-react-app npm install -g create-react-app 如果安装不成功有可能是有缓存,可以先清除缓存再重新安装 npm cache clean --force 安装成功后就可以使用脚手架创建自己的项目,my-react就是我的项…

求臻医学:当MRD遇到肺癌 见招拆招,斩草除根

当MRD遇到肺癌→见招拆招,斩草除根 浅谈MRD在肺癌中的应用 新辅助治疗后,可以通过MRD来辅助评估预后,一般MRD阴性与新辅助治疗后的pCR (病理完全缓解)相关,达到MRD阴性或pCR的惠者预后更好. MRD在肺癌中可潜在解决的问题点1.术…

成都瀚网科技有限公司抖音带货是否靠谱

成都瀚网科技有限公司,作为一家专业的科技公司,近年来积极参与了抖音带货的浪潮,凭借其出色的产品和服务,赢得了广大用户的信赖。 在当今的数字化时代,抖音带货已经成为了一种非常流行的购物方式。消费者可以通过抖音平…

Linux中的进程等待(超详细)

Linux中的进程等待 1. 进程等待必要性2. 进程等待的方法2.1 wait方法2.2 waitpid方法 3. 获取子进程status4. 具体代码实现 1. 进程等待必要性 我们知道,子进程退出,父进程如果不管不顾,就可能造成‘僵尸进程’的问题,进而造成内…

抖音自动评论助手,其开发流程与需要的技术和代码分享

先来看实操成果,↑↑需要的同学可看我名字↖↖↖↖↖,或评论888无偿分享 在当今这个信息爆炸的时代,我们不难发现,无论是在线上还是线下,我们都无法忽视一个重要的信息传播工具——抖音。这款短视频平台以其强大的传播…

为什么选择CodeEase?

目录 为什么选择CodeEase核心功能后端前端 框架结构总结 为什么选择CodeEase CodeEase是一个标准化的低代码平台 愿景 我们励志开发一站式服务,缩短网站开发周期,降低程序bug率,减少开发人力和成本,推出了多租户SaaS平台开发模板…

集合贴——智能客服是什么

基础课1——智能客服的定义-CSDN博客文章浏览阅读166次。智能客服是一种采用人工智能技术的客户服务方式,它通过语音识别、自然语言处理、语义理解等技术,实现了与客户的自动交互。https://blog.csdn.net/2202_75469062/article/details/134406392?spm1…

基于STM32的温室自主灌溉系统(论文+源码)

1.系统设计 本课题为基于STM32的温室自主灌溉系统,通过查阅多种文献和的设计了如图2.1所示的温室自主灌溉系统总体架构,整个系统在器件上包括了主控制器STM32F103,温度传感器DS18B20,土壤湿度传感器YL-69,光敏电阻,显示器LCD1602…

js实现tab栏切换

目录 1、排他思想实现 2、事件委托实现 1、排他思想实现 思路: 需要点击谁,就先获取谁,获得的是一个伪数组 遍历数组,并给数组里的每个元素添加点击事件,写一个active类用于显示边框样式 每一个元素对应一张图片&…

系列六、JVM的初始内存和最大内存怎么配置?

一、JVM的初始内存和最大内存怎么配置? 可以通过虚拟机的-Xms、-Xmx来配置,而且这俩配置的大小一样,避免GC争抢内存导致的不稳定,忽高忽低。 二、如何查看JVM默认的堆内存大小 /*** Author : 一叶浮萍归大海* Date: 2023/11/16 14…

码住!听我说护眼台灯这样选!

台灯的显色指数是其非常重要的指标,它可以表示灯光照射到物体身上,物体颜色的真实程度,一般用平均显色指数Ra来表示,Ra值越高,灯光显色能力越强。常见的台灯显色指数最低要求一般是在Ra80以上即可,比较好的…

Modbus转Profinet网关在大型挤压涂布机应用配置案例

变频器和伺服电机是常用于工业生产线的电力传动设备。它们的功能是根据不同的控制信号调整电机的运行状态,实现对生产线速度和精度的精确控制。通过PLC与兴达易控Modbus转Profinet网关(XD-MDPN100)的连接,变频器和伺服电机可以与P…

word文档转换为ppt文件,怎么做?

大家是否会遇到需要将word文档转换为ppt文件的情况?除了反反复复粘贴复制以外,还有其他方法可以转换文件格式,今天给大家分享word转换ppt方法。 首先我们先将word文件打开大纲模式 然后我们将文中的大标题设置为1级标题,副标题设…

基于单片机设计的电子指南针(LSM303DLH模块(三轴磁场 + 三轴加速度)

一、前言 本项目是基于单片机设计的电子指南针,主要利用STC89C52作为主控芯片和LSM303DLH模块作为指南针模块。通过LCD1602液晶显示屏来展示检测到的指南针信息。 在日常生活中,指南针是一种非常实用的工具,可以帮助我们确定方向&#xff0…

unity中的模型坐标系与3dmax导出的模型坐标系不一致的解决方案

unity中的模型坐标系与3dmax导出的模型坐标系不一致的解决方案 unity是左手坐标系,3dmax为右手坐标系 需要在3dmax中修改坐标系 顶视图中改成:X轴(红色)向右: Y轴(蓝色)朝向自己: Z轴&#xff…

电脑怎么备份文件?简单几步,轻松备份!

电脑中存储着大量的个人和工作文件,包括照片、文档、音乐和视频等。但突发状况,如硬件故障、病毒感染或误删文件,可能会导致数据丢失。因此,备份文件至关重要。在本文中,我们将介绍三种电脑怎么备份文件的方法&#xf…

出行类app如何提升广告变现收益?

出行类APP已经成为越来越多人们出行的首选,出行类app在变现方式上存在以下痛点:APP功能单一、使用场景单一;用户使用时间集中,粘性低...这些痛点使得开发者获取收益的提升面临极大的挑战。 https://www.shenshiads.com 如何让出…

还能这样操作?勒索软件团伙向监管部门举报受害者!

ALPHV/BlackCat 勒索软件团伙将敲诈勒索提升到了一个新高度,该组织向美国证券交易委员会提交了一份投诉,指控其一名受害者未遵守“一旦遭遇网络攻击,需要在四天内披露”的有关规定。 早些时候,ALPHV/BlackCat 勒索软件团伙将软件公…