一:Flink基本架构
1.JobManager和TaskManager
JobManager:也称之为Master用于协调分布式执行,它们用来调度task协调检查点,协调失败时恢复等
TaskManager:也称之为Worker,用于执行一个dataflow的task(或者特殊的subtask)、数据缓冲和datastream的交换
Master和Worker处理器可以直接在物理机上启动
Worker连接到Master,告知自身的可用性进而获得任务分配
2.无界数据流和有界数据流
无界数据流:无界数据流有一个开始但是没有结束
有界数据流:有界数据流有明确定义的开始和结束
批处理的特点是有界、持久、大量,批处理非常适合需要访问全套记录才能完成的计算工作
流处理的特点是无界、实时、而是对通过系统传输的每个数据项执行操作,一般用于实时统计。
二:Flink运行框架
1.任务提交流程
Flink提交任务后Client向HDFS上传Flink的jar包和配置
ResourceManager分配容器资源并通知对用的NodeManager启动ApplicationMaster
ApplicationMaster启动后加载Flink的jar包和配置构建环境,然后启动JobManager
ApplicationMaster向ResourceManager申请资源启动TaskManager,ResourceManager分配容器资源后由ApplicationMaster加载Flink的jar包和配置构建环境并启动TaskManager,TaskManager启动后向JobManager发送心跳包,并等待JobManager向其分配任务。
2.TaskManager 与solts
TaskManager是一个JVM进程,它可能会在独立的线程上执行一个或多个subtask
worker通过task slot来进行控制
每个task slot表示TaskManager拥有资源的一个固定大小的子集。
一个TaskManager有三个slot,那么会把他管理的内存分配给三个slot。
假如一个taskManager有3个slot,他就会给每个slot分配1/3的内存资源,目前slot不会对cpu进行隔离。同一个taskManager中的slot会共享网络资源和心跳信息。
在Flink中并不是一个slot只可以执行一个task,在某些情况下,一个slot中也可能执行多个task
slot仅用来隔离task受管理的内存。
Task Slot是静态的概念是指TaskManager具有的并发执行能力
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。