Flink体系结构和运行架构是怎样的

发布时间:2021-12-31 14:35:59 作者:iii
来源:亿速云 阅读:140

这篇文章主要讲解了“Flink体系结构和运行架构是怎样的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Flink体系结构和运行架构是怎样的”吧!

Flink体系结构以及主要组成

像大多数大数据框架一样,Flink是非常经典的Master/Slave结构实现,JobManager是Master,TaskManager是Slave。

JobManager处理器(Master)

协调分布式执行,它们用来调度task,协调检查点(CheckPoint),协调失败时恢复等,Flink运行时至少存在一个master处理器,如果配置高可用模式则会存在多个master处理器,它们其中有一个是leader,而其他的都是standby。JobManager接收的应用包括jar和JobGraph。

TaskManager处理器(Slave)

处理器也称之为Worker,主要职责是从JobManager处接收任务, 并部署和启动任务, 接收上游的数据并处理,Task Manager 是在 JVM 中的一个或多个线程中执行任务的工作节点,TaskManager在启动的时候会向ResourceManager注册自己的资源信息(Slot的数量等)。

ResourceManager

针对不同的环境和资源提供者,如(YARN,Me搜索,Kubernetes或独立部署),Flink提供了不同的ResourceManager,其作用是负责Flink的资源处理单元:slot, 可以理解为cpu和内存资源

Dispatcher

提供一个REST接口来让我们提交需要执行的应用。一旦一个应用提交执行,Dispatcher会启动一个JobManager,并将应用转交给他。Dispatcher还会启动一个webUI来提供有关作业执行信息 注意:某些应用的提交执行的方式,有可能用不到Dispatcher。

上面各个组件的关系,可以参考下图:

Flink体系结构和运行架构是怎样的

Flink运行架构

运行架构与体系结构的区别是,体系结构主要指Flink在实体机器上的体现,是由什么进程,整个流程体系如何,而运行架构指的是一个程序提交后,走了哪些抽象流程

Flink程序结构

Flink程序的基本构建块是流和转换(请注意,Flink的DataSet API中使用的DataSet也是内部流 )。从概念上讲,流是(可能永无止境的)数据记录流,而转换是将一个或多个流输入,并产生一个或多个输出流

Flink体系结构和运行架构是怎样的 

上图表述了Flink的应用程序结构,有Source(源头)、Transformation(转换)、Sink(接收器)三个重要组成部 分 Source 数据源,定义Flink从哪里加载数据,Flink 在流处理和批处理上的 source 大概有 4 类:基于本地集合的 source、基于文件的 source、基于网络套接字的 source、自定义的 source。自定义的 source 常见的有 Apache kafka、RabbitMQ 等。 Transformation 数据转换的各种操作,也称之为算子,有 Map / FlatMap / Filter / KeyBy / Reduce / Window等,可以将数据 转换计算成你想要的数据。 Sink 接收器,Flink 将转换计算后的数据发送的地点 ,定义了结果数据的输出方向,Flink 常见的 Sink 大概有如下几 类:写入文件、打印出来、写入 socket 、自定义的 sink 。自定义的 sink 常见的有 Apache kafka、 RabbitMQ、MySQL、ElasticSearch、Apache Cassandra、HDFS等。

Task和SubTask

Operator chain(操作器链)

Flink的所有操作都称之为Operator,客户端在提交任务的时候会对Operator进行优化操作,能进行合并的Operator 会被合并为一个Operator,合并后的Operator称为Operator chain,实际上就是一个执行链,每个执行链会在 TaskManager上一个独立的线程中执行。shuffle

Flink体系结构和运行架构是怎样的

Flink中的数据传输

在运行过程中,应用中的任务会持续进行数据交换。为了有效利用网络资源和提高吞吐量,Flink在处理任务间的数据传输过程中,采用了缓冲区机制

任务槽和槽共享

任务槽也叫做task-slot、槽共享也叫做slot sharing

Flink体系结构和运行架构是怎样的 

每个TaskManager是一个JVM的进程, 可以在不同的线程中执行一个或多个子任务。为了控制一个worker能接收多少个task。worker通过task slot来进行控制(一个worker至少有一个task slot)

Flink体系结构和运行架构是怎样的 

感谢各位的阅读,以上就是“Flink体系结构和运行架构是怎样的”的内容了,经过本文的学习后,相信大家对Flink体系结构和运行架构是怎样的这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. 一、flink--架构、运行、调度原理
  2. MySQL的架构和历史是怎样的

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

flink

上一篇:Araxis Merge for Mac工具有什么用

下一篇:One Switch for Mac工具是怎样的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》