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

news2024/9/20 18:35:00

转载自神龙大侠

我是用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=true

java.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.coloradmin.cn/o/2097924.html

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

相关文章

科普小课堂:中等硬度的床垫,合适的睡姿,通过日常力量练习提升自身能力以支撑脊柱形态。

文章目录 引言I 选择合适床垫的指标3:1 原则睡得舒服与否II 日常力量练习翻书-胸椎活动度练习猫式-脊柱整体活动度练习III 知识扩展人体脊柱“S”型生理曲线软床垫对腰椎的影响硬床垫对腰椎的影响合适的睡姿引言 女性瘦型体型人群脊柱曲线相对较明显,尤其是腰部曲线,需选择承…

优化LabVIEW中TCP通信速度的方法

在LabVIEW中,TCP通信速度较慢可能由多种因素导致,如数据包处理延迟、阻塞式读取或数据解析效率低等。通过调整读取模式、优化数据处理逻辑、以及使用并行处理结构,可以显著提升TCP通信的速度,使其接近第三方调试工具的表现。LabVI…

DNS介绍(hosts文件,域名结构),面试题(输入url后会发生什么)

目录 DNS 引入 hosts文件 域名 主域名 结构 www 公司/组织/个人名称 后缀 面试题 简单回答 部分https 细节 DNS 引入 域名介绍,url的介绍原理特殊字符的处理,网络行为,http协议请求/响应的格式结构,状态码介绍,临时/永久重定向,http报头常见字段(长/短连接介绍,lo…

阿里云身份证二要素详细使用

初步: 先登录阿里云(找官网链接) 2、云市场搜索身份证二要素 看个人需求选择 3、我选择的是下边这个 4、接下来看文档具体调用(在请求示例中有选择语言的代码 我选择的就是java) 5、在控制台看appcode码 放入代码中…

如何解决企业防盗版/防勒索病毒?一个方案五步搞定!

SPN(Sandbox Proxy Network)解决方案通过创建一个隔离的沙盒环境,为企业提供了一个安全、受控的互联网访问方式。该方案特别适用于防止盗版软件的骚扰和勒索病毒的攻击,确保企业数据和网络环境的安全。 1. 核心功能 物理隔离&…

u盘数据如何恢复,数据恢复技巧分享

在数字化时代,U盘作为便携的数据存储设备,广泛应用于工作、学习和生活中。然而,误删文件、格式化错误或物理损坏等意外情况时有发生,导致重要数据丢失。本文将为你提供一套全面的U盘数据恢复指南,从基础方法到进阶技巧…

Unity(2022.3.41LTS) - UI详细介绍-画布

目录 零. 简介 一、图像的基本属性 二、图像的类型 三、图像的使用方法 四、代码控制图像 五、优化和注意事项 零. 简介 在 Unity 中,图像(Image)是一种常用的 UI 元素,用于显示静态图片或 Sprite(精灵图&#…

美杜莎(Medusa)勒索软件如何把你的文件变成了“石头”

写在前面的话 近期,Unit 42的研究人员在分析Medusa(美杜莎)勒索软件活动时,发现该活动的升级和勒索策略发生了很大变化。 Medusa勒索软件活动在2023年初上线了一个名为“Medusa Blog”的专用数据泄露网站,而该活动背…

利用Go语言模拟实现Raft协议

近来学习到区块链,想要模拟实现 Raft 协议。但是发现网上教程很杂,或者说很多教程并不适合于新手从零开始进行实现。 本文将从头开始复现个人模拟实现 Raft 的过程,完成后整个模拟后,读者应该学会 Go 语言的基本语法、Rpc 编程的基…

路由器内部到底是啥结构?不懂不算网工人

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 下午好,我的网工朋友。 在现代互联网中,路由器作为连接不同网络的枢纽,发挥着至关重要的作用。无论是简单的家…

通用文字识别API如何通过Java进行调用?(一)

一、什么是通用文字识别? 通用文字识别又叫通用文字OCR识别,文字识别,文字图片识别,通用文字识别是一种算法识别技术,它能够将图像中的文字转换为可编辑的文本格式,可支持多种类型图片类型。 二、通用文字…

java 基于Swing的随机点名

由于教学的原因,编写的一个随机点名程序,废话不多说,直接上代码: package org.example;import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.…

CAN(江科大CAN学习)

1.CAN CAN简介 • CAN 总线( Controller Area Network Bus )控制器局域网总线 CAN总线构建的是一种局域网网络,每个挂载在can总线上的设备,都可以利用这个局域网去发送自己的信息,也可以接受局域网的各种消息&#x…

Unity中保存数据的方法

一、概述 Unity中可用于持久化的方式有: 1)通过ScriptableObject在可编辑模式下保存数据 2)通过excel、json等文件实现数据的可持久化 二、ScriptableObject的使用 1、使用背景 假如需要制作子弹预设体,每个子弹上有speed速…

windows 10安装GPU版本pytorch

一、下载Anaconda 1.由于anaconda的服务器都在国外,推荐大家使用镜像源进行下载,清华的conda镜像链接:​​​​​​ anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirrora 2.使用命令新建一个虚拟环境&#…

一个简单的 NLP 神经网络

如何搭建一个简单的 NLP 神经网络? 假设我们一个变量名列表,根据这个变量名列表,学习其中的特征并生成新的变量名。训练一个模型用于预测下一个字符并生成新的变量名。使用一个单层的神经网络实现,假设我们的变量名只能用英文字母…

Python爬虫02

xml 和html 区别 jsonpath模块 场景 多层嵌套的复杂字典直接提取数据 安装 pip install jsonpath使用 from jsonpath import jsonpathret jsonpath(dict, jaonpath语法规则字符串)语法规则 eg: lxml模块&xpath语法 谷歌浏览器 xpath helper 插件 作用对当前页面…

d3dcompiler_47.dll缺失的可能原因多种多样,那么d3dcompiler_47.dll缺失怎么修复

在数字世界的深处,d3dcompiler_47.dll文件扮演着至关重要的角色,它是Direct3D编译器的一部分,负责处理图形渲染和游戏运行中的关键任务。然而,当用户启动某个程序或游戏时,屏幕上突然弹出的错误提示“d3dcompiler_47.d…

DevOps学习笔记

记录以下DevOps学习笔记,这里是笔记的入口汇总,可以直观的看到所有的笔记,还没有入口的部分,在下正在努力编写中。 gitlab jenkins docker docker安装 artifactory 1.artifactory安装 2.artifactory使用 计算机网络 1.dn…

世界上最快的端口扫描器masscan,如何使用?如何进行分布式使用部署?如何集成到web系统?

世界上最快的端口扫描器masscan,如何使用?如何进行分布式使用部署?如何集成到web系统? Masscan是一个高速的端口扫描工具,其主要功能和特点包括: 高速扫描:Masscan采用异步扫描技术,能够以非常快的速度扫描大量的主机和端口。 支持大规模扫描:Masscan可以同时扫描数十…