1、技术理念不同:Spark的技术理念是使用微批来模拟流的计算,基于Micro-batch,数据流以时间为单位被切分为一个个批次,通过分布式数据集RDD进行批量处理,是一种伪实时而Flink是基于事件驱动,它是一个面向流的处理框架, Flink基于每个事件一行一行地流式处理,是真正的流式计算 另外他也可以基于流来模拟批进行计算实现批处理,在技术上具有更好的扩展性
2、时间机制:SparkStreaming只支持处理时间, 折中地使用processing time来近似地实现event time相关的业务使用processing time模拟event time必然会产生一些误差, 特别是在产生数据堆积的时候,误差则更明显,甚至导致计算结果不可用,Structured streaming 支持处理时间和事件时间,同时支持 watermark 机制处理滞后数据Flink 支持三种时间机制:事件时间、注入时间、处理时间、同时支持 watermark 机制处理迟到的数据,说明Flink在处理乱序大实时数据的时候,优势比较大