Flink知识学习(6)

网友投稿 572 2022-05-29

Flink是一个基于Master-Slave风格的架构,Flink集群启动时,会启动一个JobManager进程、至少一个TaskManager进程。当Flink程序提交后,会创建一个Client来进行预处理,将程序转换为一个表示完整Job的DAG,并提交到JobManager,最后JobManager将Job中的各个Task分配给TaskManager。Flink 中的计算资源通过Task Slot来定义。每个Task Slot 代表了TaskManager 的一个固定大小的资源池。例如,一个拥有3个slot的TaskManager会将其管理的内存平均分成三分分给各个slot。将资源slot 化意味着来自不同job的task不会出现内存竞争。slot目前仅支持内存的隔离,不支持CPU隔离。

Flink程序在执行的时候,会先被转化为一个Streaming Dataflows,一个Streaming Dataflow是由一组Stream和Transformation Operator组成的DAG。

用户首先提交Flink程序到JobClient,经过JobClient的处理、解析、优化提交到JobManager,最后由TaskManager运行task。

Flink知识学习(6)

Client:Flink Client主要给用户提供向Flink系统提交用户任务(流式作业)的能力。

TaskManager:Flink系统的业务执行节点,执行具体的用户任务。TaskManager可以有多个,各个TaskManager都平等。

JobManager:Flink系统的管理节点,管理所有的TaskManager,并决策用户任务在哪些Taskmanager执行。JobManager在HA模式下可以有多个,但只有一个主JobManager。

TaskSlot:TaskSlot(任务槽)类似yarn中的container用于资源隔离,但是该组件只包含内存资源,不包含cpu资源。假如每一个TaskManager当中包含3个Task Slot,TaskManager最多能同时并发执行的任务是可以控制的,那就是3个, 因为不能超过slot的数量。slot有独占的内存空间,这样在一个TaskManager中可以运行多个不同的作业,作业之间不受影响。slot之间可以共享JVM资源, 可以共享Dataset和数据结构,也可以通过多路复用(Multiplexing) 共享TCP连接和心跳消息(Heatbeat Message)。

Task:任务执行的单元。

Flink

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【精选单品】华为 CloudLink 协作智真系列——CloudLink Bar 300一体化超高清视频会议终端
下一篇:MSSQL系列之十六 架构(Schema)
相关文章