首页 > 其他分享 >Apache DolphinScheduler大规模任务调度系统对大数据实时Flink任务支持

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

时间:2024-09-02 16:40:12浏览次数:9  
标签:hdfs DolphinScheduler Flink jar server 任务 任务调度

转载自神龙大侠

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

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

标签:hdfs,DolphinScheduler,Flink,jar,server,任务,任务调度
From: https://www.cnblogs.com/DolphinScheduler/p/18392928

相关文章

  • 探索Java中的分布式任务调度:从理论到实践
    引言在现代企业级应用中,定时任务调度是一项至关重要的功能。无论是数据备份、日志清理还是批处理任务,都离不开任务调度系统。随着系统的规模和复杂度的增加,传统的单机任务调度已经无法满足需求。因此,分布式任务调度应运而生。本篇博文将详细介绍Java中的分布式任务调度,从基本......
  • 关于Flink内存分配核心知识点
    这个问题同样也是之前辅导过的同学的面试问题,这个问题非常接地气且考察面试者的实践经验。事实上,这也是我们大数据提高班的Flink专项提高部分内容。下面我列举的这些就是核心,能答出这些重点即可。内存模型在Flink1.9和Flink1.11版本做了非常大的改动,主要原因是为了统一Batch和Strea......
  • 深入理解Flink窗口
    引言我们已经了解了Flink中事件时间和水位线的概念,那它们有什么具体应用呢?当然是做基于时间的处理计算了。其中最常见的场景,就是窗口聚合计算。在流处理中,我们往往需要面对的是连续不断、无休无止的无界流,不可能等到所有所有数据都到齐了才开始处理。所以聚合计算其实只......
  • apache flink + Paimon  快速搭建指南
    ApachePaimon是一种湖格式,可以使用Flink和Spark构建实时湖屋架构,用于流式和批处理操作。Paimon创新性地将lake格式和LSM(日志结构合并树)结构相结合,将实时流式更新引入lake架构。Paimon提供以下核心功能:*实时更新:*主键表支持写入大规模更新,具有很高的更新性能,通常通过FlinkStre......
  • 分布式计算架构详解以及任务调度方式
    信息技术领域重要分支—分布式计算。分布式计算通过将任务分配到多个物理的计算资源上进行处理,以来提高计算效率和资源利用率。今天主讲分布式计算架构的关键组成以及在云服务器背景下任务调度的不同方式,然后再综合来看这些调度策略是怎样适应云环境的动态性和可扩展性。以前的集中......
  • (十九)Flink CDC
    FlinkCDC(FlinkChangeDataCapture)是基于数据库的日志CDC技术,实现了全增量一体化读取的数据集成框架。搭配Flink计算框架,FlinkCDC可以高效实现海量数据的实时集成。目录CDC简介CDC模式CDC产品对比FlinkCDC简介FlinkCDC发展历程支持的Flink版本支......
  • Apache DolphinScheduler中处理任务/告警/事件相关核心思路曝光
    最近在看ApacheDolphineScheduler,发现DolphinScheduler在处理任务时,通过先将任务快速的存储在数据库中,然后基于对应的Task,将Task放入队列中,然后将Task进行快速消费的思路。这种模型在很多框架中,都有体现。我们知道在Master模块时处理任务的核心模块,而API模块主要是界面中操作......
  • 兴业证券基于Apache DolphinScheduler的应用实践
    文/兴业证券股份有限公司 刘洋 石良生 柳君 李致琪本文来源于网络,如有侵权,请联系删除任务调度平台,扮演着自动执行预设任务的重要角色,是业务开展过程中不可或缺的一环。随着业务规模的不断扩展,兴业证券每日需要进行数以万计的任务调度,因此,优化和提升任务调度平台的性......
  • 源代码编译,Apache DolphinScheduler前后端分离部署解决方案
    转载自神龙大侠生产环境部署方案在企业线上生产环境中,普遍的做法是至少实施两套环境。测试环境线上环境测试环境用于验证代码的正确性,当测试环境验证ok后才会部署线上环境。鉴于CI/CD应用的普遍性,源代码一键部署是必要的。本文是探索对DolphinScheduler源代码改造,构建测......
  • Flink系列-SQL connector扩展以及DataGenTableSourceFactory源码走读
    一、说明    通常我们直接使用Flink的sql进行实时任务开发,经常会遇到扩展新的数据源端或者目标端的场景,或者需要了解connector的一些源码机制,方便开发和定位问题。    如何扩展新增Sqlconnector呢?扩展ApacheFlink的新SQLConnector主要涉及以下几个步骤:......