Apache DolphinScheduler大规模任务调度系统对大数据实时Flink任务支持

devtools/2024/10/21 10:02:59/

转载自神龙大侠

我是用olphinScheduler 3.2.1版本做源代码编译部署(部署方式参考我的另外一篇文档《源代码编译,Apache DolphinScheduler前后端分离部署解决方案》)

二进制文件部署本文也适用,只需要修改相对应的配置即可。

资源管理底层基座替换成hdfs

Flink程序jar包是在资源中心进行管理的,对于dolphinscheduler系统来说,资源主要包括3类

文件管理

当在调度过程中需要使用到第三方的 jar 或者用户需要自定义脚本的情况,可以通过在该页面完成相关操作。可创建的文件类型包括:txt/log/sh/conf/py/java 等。并且可以对文件进行编辑、重命名、下载和删除等操作。

UDF管理

资源管理和文件管理功能类似,不同之处是资源管理是上传的 UDF 函数,文件管理上传的是用户程序,脚本及配置文件。

任务组管理

任务组主要用于控制任务实例并发,旨在控制其他资源的压力(也可以控制 Hadoop 集群压力,不过集群会有队列管控)。您可在新建任务定义时,可配置对应的任务组,并配置任务在任务组内运行的优先级。用户仅能查看有权限的项目对应的任务组,且仅能创建或修改具有写权限的项目对应的任务组。

DolphinScheduler支持将资源存储在api-server本地文件系统或者hadoop分布式文件系统hdfs上面(也可以支持s3,我用的hdfs),生产环境把资源存在本地文件系统是不可靠的,所以需要将底层介质存储平台改成hdfs。

对于DolphinScheduler的核心组件,

  • 资源的管理是在api-server
  • 资源的使用是work-server

所以如果支持hdfs的配置修改需要对api-server和worker-server重新部署。

如果要支持hdfs需要修改(dolphinscheduler-common中的common.properties)如下配置:

resource.storage.upload.base.path=/dolphinscheduler //也可不修改
resource.hdfs.root.user=
resource.hdfs.fs.defaultFS=
hadoop.security.authentication.startup.state=truejava.security.krb5.conf.path= //krb5.conf配置文件
login.user.keytab.username=
login.user.keytab.path=

修改完之后,重新编译api-server, work-server部署,就可以修改资源管理文件系统的底座了。

目前DolphinScheduler支持创建文件夹和上传文件的功能,实际使用如下图所示:

file

备注:

  • 目前admin用户可以看到所有的文件;
  • 如果新建一个用户的话,是看不到其他用户创建的文件

我以WordCount.jar包作为例子,具体可以替换成特定任务的jar包。

WordCount任务是flink的example代码,类似第一个hello world程序,在二进制包examples目录下。有batch和streaming两种任务类型的jar包

在worker机器上部署flink环境(使用1.19版本)

我用的bin二进制部署文件,下载地址为 https://flink.apache.org/2024/06/14/apache-flink-1.19.1-relea...

配置Flink path可以修改机器的bash_profile文件,也可以修改DolphinScheduler的dolphinscheduler_env.sh配置文件。

  • bash_profile

file

  • dolphinscheduler_env.sh

file

租户的概念

DolphinScheduler支持多个租户,不同的租户之间资源是隔离,租户的实现机制是根据linux上用户来做资源隔离,如下图所示:

file

所以Flink的环境配置在具体的实施情况可以支持一些非常灵活的特性支持,比如可以在worker机器上创建不同的user:

  • flink119
  • flink108
  • flink112

不同user配置不同的Flink版本环境信息,这样Flink任务可以根据选择租户的不同来支持Flink多版本特性的支持。

上传Flink任务jar包

我这直接使用Flink的example jar包了,/batch/目录下的WrodCount.jar

file

注意,非常重要,执行的时候,需要选择正确的租户。

否则,要不找不到Flink,要不对于版本差异的代码 会有不符合预期的执行情况噢。

file

Flink任务运行对于batch和streaming任务有不同的效果,streaming任务会一直执行,batch任务执行完之后就退出了。

可以在任务实例查看flink任务的执行日志,如下图所示:

file

也可以将任务的执行情况,发送到钉钉:

file

Flink on yarn和Flink local对于hello world程序来说没有什么特别的不同,只是需要worker机器本身的部署用户(我的是deploy用户)配置好hadoop环境。

配置好 $HADOOP_HOME$HADOOP_CLASSPATH即可。

flink on yarn运行效果看图:

file

Yarn中application运行日志:

file

原文链接:https://segmentfault.com/a/1190000045101168

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


http://www.ppmy.cn/devtools/105294.html

相关文章

怎么摆脱非自然链接?

什么是非自然链接? 非自然链接是人为创建的链接,用于操纵网站在搜索引擎中的排名。非自然链接违反了Google 的准则,网站可能会因此受到惩罚。 它们不是由网站所有者编辑放置或担保的。示例包括带有过度优化锚文本的链接、通过 PR 的广告、嵌…

Leetcode 146. LRU 缓存(Medium)

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -…

基于yolov5的猪只识别计数检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv5的猪只识别计数检测系统是一种创新的农业应用解决方案,它结合了深度学习和计算机视觉技术,专为提高养猪业的管理效率和精确度而设计。该系统利用YOLOv5这一先进的目标检测模型,能够实时、准确地在图像或视频中识别并…

数据库系统 第34节 数据库压缩

数据库压缩是一种优化技术,它通过压缩数据库中的数据来减少所需的存储空间,并且可以加速数据的读取和写入操作(尤其是在带宽受限的情况下)。压缩通常是在数据写入磁盘之前执行,并在数据被读取到内存中之前解压。数据库…

python元组和java的区别

元组 Python 中的元组可以用来返回多个值,这些值可以被其他变量分别接收。这个特性被称为“多值返回”或“解包(unpacking)”。当一个函数返回多个值时,Python 会自动将它们打包成一个元组,并且可以在调用函数时将这些…

苹果mac数据恢复概率大吗 mac数据恢复专业软件哪个好用

一般情况下,当我们把电脑中的数据删掉后,都会保存在回收站里面,但如果回收站被清空了或者数据在回收站中没有找到的话,那么,之前被删掉的数据还能恢复吗?恢复的概率有多大呢? 答案是可以的&…

jEasyUI 创建带复选框的树形菜单

jEasyUI 创建带复选框的树形菜单 jEasyUI 是一个基于 jQuery 的框架,它为用户提供了一套完整的用户界面组件,包括菜单、窗口、表格等。在本文中,我们将重点介绍如何使用 jEasyUI 创建一个带复选框的树形菜单。 1. 引入 jEasyUI 相关文件 首先,在 HTML 文件中引入 jEasyU…

解密注意力机制:从基础概念到Transformer的演化与应用

前言 在AI技术的迅猛发展中,注意力机制已经成为了推动智能技术进步的关键力量。它赋予了机器高效处理复杂信息的能力,尤其在自然语言处理领域的应用更是引领了变革。本文将深入探讨注意力机制及其核心应用——Transformer架构,解析其如何通过…