Flink简单学习

一:Flink基本架构

1.JobManager和TaskManager

JobManager:也称之为Master用于协调分布式执行,它们用来调度task协调检查点,协调失败时恢复等

TaskManager:也称之为Worker,用于执行一个dataflow的task(或者特殊的subtask)、数据缓冲和datastream的交换

Flink简单学习

 

 

 Master和Worker处理器可以直接在物理机上启动

Worker连接到Master,告知自身的可用性进而获得任务分配

2.*数据流和有界数据流

*数据流:*数据流有一个开始但是没有结束

有界数据流:有界数据流有明确定义的开始和结束

批处理的特点是有界、持久、大量,批处理非常适合需要访问全套记录才能完成的计算工作

流处理的特点是*、实时、而是对通过系统传输的每个数据项执行操作,一般用于实时统计。

二:Flink运行框架

1.任务提交流程

Flink简单学习

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

Flink简单学习

 

 

slot仅用来隔离task受管理的内存。

Task Slot是静态的概念是指TaskManager具有的并发执行能力

Flink简单学习

 

上一篇:Flink基本的API


下一篇:FLINK(1)