flink的特点:能同时满足高性能、高吞吐、低延时,相比较于storm和spark streaming,storm的吞吐量不如flink,而spark streaming的延时比较高,因为spark streaming进行流式计算的原理就是微批操作,就是要积累一定的时间,虽然可以尽量降低这个时间粒度,但是延时指标还是会比flink要高
flink的基本架构
客户端:客户端通过建立akka连接提交任务给JobManager,并且通过JobManager获取任务状态和执行情况。
JobManager:相当于Master,负责任务管理和资源管理,JobManager接受到客户端提交的任务以后,会根据TaskManager的Task Slot情况进行任务的分配,并且通过Actor system和TaskManager进行通信,获取任务的执行状态返回给客户端;同时在任务执行的过程中会触发Checkpoints操作,TaskManager收到checkpoint指令后完成checkpoint操作,所有的checkpoint协调过程都是在JobManager中完成的。
TaskManager:相当于Slave,负责任务的执行和任务在每个节点上的资源申请和管理。
有界数据集:有明确时间范围的起始和结束,用于批计算
无界数据集:会一直产生的数据,没有明确时间范围的起始和结束,用于流处理
spark streaming对有界数据集进行批处理,对无界数据集进行微批处理从而实现流计算;实际上有界数据集合无界数据集是可以相互转化的,利用这个思想,flink利用统一的流处理模式处理不同类型的数据集
flink的开放API
flink程序的主要步骤
flink的编程模型采用DataFlow模型,主要需要实现三种DataStream API:Data Source/Transformation/Data Sink
原文:https://www.cnblogs.com/LeonNew/p/11409028.html