|
Spark Streaming是构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。Spark Streaming可结合批处理和交互式查询,因此,可以适用于一些需要对历史数据和实时数据进行结合分析的应用场景。 Spark Streaming和Storm最大的区别在于,Spark Streaming无法实现毫秒级的流计算,而Storm可以实现毫秒级响应。 Spark Streaming无法实现毫秒级的流计算,是因为其将流数据分解为一系列批处理作业,在这个过程中,会产生多个Spark作业,且每一段数据的处理都会经过Spark DAG图分解、任务调度等过程,需要一定的开销,因此,无法实现毫秒级相应。Spark Streaming难以满足对实时性要求非常高(如高频实时交易)的场景,但足以胜任其他流式准实时计算场景。相比之下,Storm处理的数据单位为元组,只会产生极小的延迟。 Spark Streaming构建在Spark上,一方面是因为Spark的低延迟执行引擎(100ms+)可以用于实时计算,另一方面,相比于Storm,RDD数据集更容易做高效的容错处理。此外,Spark Streaming采用的小批量处理的方式,使得它可以同时兼容批量和实时数据处理的逻辑和算法,因此,方便了一些需要历史数据和实时数据联合分析的特定应用场合。 【出处】林子雨,赖永炫,陶继平.Spark编程基础(Scala版).人民邮电出版社,2018年8月.
|