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

转载自神龙大侠

我是用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.hqwc.cn/news/791089.html

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

相关文章

JAVA-IO流之字节的输入输出流

一、IO流的分流按流的流向分为:输入流、输出流 根据处理的数据类型分为:字节流、字符流 在计算机中、将硬盘上的文件向内存中的流为输入流(读取)、将内存中的流输出到硬盘为输出流(写)二、java流-字节输入输出流概念:流可以理解为一个数据序列、输入流表示从一个源读取数…

郑州市专业技术人员继续教育刷课脚本-JavaScript编写

脚本 学习网站:zzzj.hnhhlearning.com, zzzj.jxjyedu.org.cn 脚本地址:郑州市专业技术人员继续教育-刷课脚本 教程 1.插件安装(以Microsoft Edge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩…

内网穿透:frp

由于需要做微信公众号开发,就用frp做了一个内网穿透。 1.环境说明 (1).一台云服务器,公网IP为:X.X.X.X(以阿里云为例,frp的服务端) (2).一个备案域名(可以是二级域名),并解析指向到上面的IP。 以test1.cn为例。 (3).一台客户机(frp客户端,可以上网) (4).frp软件,…

获得SSH秘钥和SSL环境的可见性和控制权

未经管理的密钥和证书如何损害分层安全防御系统 多年来,由于技术的不断发展和演变,网络威胁和安全漏洞也在不断变化。企业大多都在精心研究各种解决方案和战略,以加强其安全基础设施。但是,安全问题是没有灵丹妙药的。 目前,一种备受企业推崇并被广泛采用的一种技术是利用…

使用zig语言制作简单博客网站(七)右边栏分类点击和文章搜索

分类点击事件处理 后端代码sqlite数据库article表新增cate_name字段CREATE TABLE article (id INTEGER PRIMARY KEY AUTOINCREMENT,title VARCHAR (1024) NOT NULL,description VARCHAR (1024),content TEXT NOT NULL,istop INTEGER…

ECharts实现雷达图详解

ECharts 是一款由百度开源的数据可视化工具,它提供了丰富的图表类型,如折线图、柱状图、饼图、散点图、雷达图、地图、K线图、热力图、仪表盘等,以及丰富的交互功能。ECharts 组件的核心功能实现原理主要包括以下几个方面:数据驱动: ECharts 采用数据驱动的设计理念,图表…

HTB-Runner靶机笔记

HTB-Runner靶机笔记 概述 Runner是HTB上一个中等难度的Linux靶机,它包含以下teamcity漏洞(CVE-2023-42793)该漏洞允许用户绕过身份验证并提取API令牌。以及docker容器逃逸CVE-2024-21626,进行提权操作 Runner靶机地址:https://app.hackthebox.com/machines/Runner 一、nmap …

【新品8折】正点原子ZYNQ7035/7045/7100开发板发布、ZYNQ 7000系列、双核ARM、PCIe2.0、SFPX2!

【新品发布】正点原子FPGA新品ZYNQ7035/7045/7100开发板,ZYNQ 7000系列、双核ARM、PCIe2.0、SFPX2! 正点原子Z100 ZYNQ开发板,搭载Xilinx Zynq7000系列芯片,核心板支持Xilinx Zynq-7035、Zynq-7045和Zynq-7100三种型号。开发板由核心板+底板组成,外设资源丰富,板载2路千兆…

达梦存储过程性能问题定位

在达梦数据库中可以通过V$DMSQL_EXEC_TIME和debug方式来定位存储过程存在的性能问题,但V$DMSQL_EXEC_TIME往往定位比较粗糙,没法定位到存储过程中sql的执行时间,而debug可以点位具体某段sql,但如果存储过程里面有大量游标,参数变量值很多的情况下,debug调试也花费大量时间…

redis-数据结构数据类型

redis常见数据类型 作者:x x x Redis 共有 5 种基本数据类型:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。数据类型 底层数据结构 应用场景String SDS 它可以存储任何数据 - 字符串、整数、浮点值、JPEG 图像、序列化的 Ruby 对象或您希望…

SHxxx传感器集线器,最多支持100组频率+温度传感器接入,满足您的多通道需求

SHxxx传感器集线器,最多支持100组频率+温度传感器接入,满足您的多通道需求SHxxx是一个传感器集线器,能够将多路传感器轮转切换到单一接口(最多200路)。它解决了测试现场传感器数量较多时传感器编号混乱的问题。该传感器集线器适用于2/3/4线制的所有传感器,例如振弦、NTC热…

Idea如何提交本地项目到Gitee或Gitlab等远程仓库

Idea、提交Git代码1、确定远程仓库地址 2、确认自己的Git账号密码(提交代码时需要登录)如果是自己的Gitee码云则是自己登录码云的账号密码; 如果是公司的GitLab则以公司分给自己的Git账号密码为准。3、确定自己本地安装了Git,然后用Idea创建或者开发好代码4、初始化本地项目…