Spark Streaming简介
Spark Streaming是构建在Spark上的实时计算框架,且是对Spark Core API的一个扩展,它能够实现对流数据进行实时处理,并具有很好的可扩展性、高吞吐量和容错性。Spark Streaming具有如下显著特点:
- 易用性
Spark Streaming支持Java、Python、Scala等编程语言,可以像编写离线程序一样编写实时计算的程序。
- 容错性
Spark Streaming在没有额外代码和配置的情况下,可以恢复丢失的数据。对于实时计算来说,容错性至关重要。首先我们要明确一下Spark中RDD的容错机制,即每一个RDD都是一个不可变的分布式可重算的数据集,其记录着确定性的操作继承关系(lineage),所以只要输入数据是可容错的,那么任意一个RDD的分区(Partition)出错或不可用,都是可以使用原始输入数据经过转换操作重新计算得出。
- 易整合性
Spark Streaming可以在Spark上运行,并且还允许重复使用相同的代码进行批处理。也就是说,实时处理可以与离线处理相结合,进行交互式的查询操作。