flink介绍
所属分类 flink
浏览量 940
有状态流计算架构
基于 Google Dataflow流式计算模型
实现 高吞吐 低延迟 高性能 实时流式计算框架
支持高度容错的状态管理
周期性通过分布式快照技术Checkpoints实现状态的持久化
高吞吐 低延迟 高性能
支持事件时间 EventTime , EventTime vs ProcessTime
有状态计算 1.4版本中实现了状态管理 ,保存在内存或者文件系统中
支持灵活的窗口(windows)操作 , 窗口划分 基于 Time Count Session 以及 Data-driven 等类型的窗口操作
轻量级分布式快照 Checkpoints 实现容错
基于JVM实现独立的内存管理
保存点 Save Points
API&Libraries层
Runtime核心层
物理部署层
CEP Complex Event Processing
SQL&Table库
FlinkML 机器学习库
Gelly 图处理库
流 DataStream API
批 DataSet API
Map FlatMap
较低级的Process Function API
Runtime核心层
分布式Stream作业的执行
JobGraph到ExecutionGraph的映射转换
任务调度等
DataSteam和DataSet转成统一的可执行的Task Operator
物理部署层
本地
集群(Standalone YARN)
云(GCE/EC2)
Kubenetes
JobManager TaskManager
Master-Slave
组件之间通信 基于Akka Framework
包括任务的状态以及Checkpoint触发等信息
Flink内部节点之间的通信是用Akka,比如JobManager和TaskManager之间的通信
operator之间数据传输利用Netty
Client客户端
客户端负责将任务提交到集群,与JobManager构建Akka连接,然后将任务提交给JobManager
通过和JobManager之间进行交互获取任务执行状态
客户端提交任务方式
CLI方式
Flink WebUI
在应用程序中构建ExecutionEnvironment
JobManager
负责整个Flink集群的任务调度和资源管理
从客户端中获取提交的应用,根据集群中TaskManager上TaskSlot的使用情况,
给应用分配TaskSlots资源并命令TaskManager启动应用
相当于整个集群的Master节点
JobManager和TaskManager之间通过Actor System进行通信
获取任务执行的情况并通过Actor System将应用的任务执行情况发送给客户端
任务执行过程中,Flink JobManager会触发Checkpoints操作,
每个TaskManager节点收到Checkpoint触发指令后,完成Checkpoint操作,
所有的Checkpoint协调过程都是在Flink JobManager中完成
当任务完成后,Flink会将任务执行的信息反馈给客户端,并释放TaskManager的资源
TaskManager
集群Slave节点,负责具体的任务执行和对应任务在每个节点上的资源申请与管理
客户端提交Flink应用到JobManager
JobManager根据注册在JobManager中TaskManager的资源情况
将任务分配给有资源的TaskManager节点,然后启动并运行任务
TaskManager之间的数据交互通过数据流的方式进行
任务运行采用多线程方式
MapReduce多JVM进程
flink能极高CPU使用效率
在多个任务和Task之间通过TaskSlot方式共享系统资源
每个TaskManager中管理多个TaskSlot资源池 对资源进行有效管理
上一篇
下一篇
flink流处理WordCount 实例
flink批处理wordcount实例
flink批处理wordcount实例2
Flink编程模型
java正则表达式实例之简单分词
git reset 和 diff 使用说明