可以看出,把输入流分割成微小的批次,然后一个批次一个批次的处理,一个批次一个批次的输出。
Native Streaming 模式(Flink)
该计算模式认为批是流的特例,其是将每条数据都进行计算,这种计算模式很自然,并且延迟性能更低,
数据模型
Spark最早使用的是RDD模型,这个比MapReduce快了100倍的计算模型有着显著的优势。对Hadoop生态大幅升级换代。RDD弹性数据集是分割为固定大小的批数据。
Spark Streaming里的DStream和RDD模型类似,把一个实时进来的无线数据分割为一个小批数据集合DStream,定时器定时通知系统去处理这些微批数据。然而,API少,无法胜任复杂的流计算业务,调大吞吐量而不触发背压是个体力活,不支持乱序处理。
Flink的基本数据模型是数据流,及事件(Event)的序列。数据流作为数据的基本模型可能没有表或者数据块的直观熟悉,但是可以证明是完全等效的。流可以是无边界的无限流,即所谓的流处理。可以说,有边界的有限流,这样就是批处理。
Flink采用Dataflow模型,和Lambda模式不同。Dataflow是纯粹的节点组成的一个图,图中的节点可以执行流计算、批计算、机器学习算法,流数据在节点间流动,被节点上的处理函数实时apply处理,节点间使用Netty连接起来的。两个Netty间Keepalive,网络Buffer是自然反压的关键。经过逻辑优化和物理优化,Dadaflow的逻辑关系和运行的物理拓扑相差不大。这种纯粹的流式设计,时延和吞吐理论山是最优的。
通信人家园 (https://www.txrjy.com/) | Powered by C114 |