首页  

flink介绍     所属分类 flink 浏览量 792
有状态流计算架构

基于 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 使用说明