大号在练葵花宝典 发表于 2024-9-2 15:35:05

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=true

java.security.krb5.conf.path= //krb5.conf配置文件
login.user.keytab.username=
login.user.keytab.path=修改完之后,重新编译api-server, work-server摆设,就可以修改资源管理文件系统的底座了。
现在DolphinScheduler支持创建文件夹和上传文件的功能,现实利用如下图所示:
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_CA1A2E2498B143258ABED2E375F5D8A8
备注:

[*]现在admin用户可以看到全部的文件;
[*]如果新建一个用户的话,是看不到其他用户创建的文件
Worker支持Flink local模式实行任务

我以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
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_30CDCB8FAD0E4DD6851DAC951CB4DE39

[*]dolphinscheduler_env.sh
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_1EDDEA3178F442FDB7567D6B42B8CF61
租户的概念

DolphinScheduler支持多个租户,不同的租户之间资源是隔离,租户的实现机制是根据linux上用户来做资源隔离,如下图所示:
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_58CCECA6A17843F082128D23F270746C
以是Flink的环境配置在具体的实施环境可以支持一些非常机动的特性支持,比如可以在worker机器上创建不同的user:

[*]flink119
[*]flink108
[*]flink112
不同user配置不同的Flink版本环境信息,如许Flink任务可以根据选择租户的不同来支持Flink多版本特性的支持。
上传Flink任务jar包

我这直接利用Flink的example jar包了,/batch/目次下的WrodCount.jar。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_3A35B868592D4E53AF9BFBDAE075AA98
注意,非常紧张,实行的时候,需要选择正确的租户。
否则,要不找不到Flink,要不对于版本差别的代码 会有不符合预期的实行环境噢。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_2212AC42AAA24D18A5E31BCF68D45856
Flink任务运行对于batch和streaming任务有不同的效果,streaming任务会一直实行,batch任务实行完之后就退出了。
可以在任务实例查看flink任务的实行日记,如下图所示:
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_569249D8A2844306A5E651F434FAEA57
也可以将任务的实行环境,发送到钉钉:
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_3E2B1A4B83FE4710959B3AB6EB487287
Flink on yarn支持

Flink on yarn和Flink local对于hello world步伐来说没有什么特别的不同,只是需要worker机器本身的摆设用户(我的是deploy用户)配置好hadoop环境。
配置好 $HADOOP_HOME和$HADOOP_CLASSPATH即可。
flink on yarn运行效果看图:
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_3C9C693912D644F0BAACE8EF7E96786F
Yarn中application运行日记:
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_EEB80DD62E624B1A99C8F85DFB95DEA5
原文链接:https://segmentfault.com/a/1190000045101168
本文由 白鲸开源 提供发布支持!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Apache DolphinScheduler大规模任务调治系统对大数据实时Flink任务支持