Spark Streaming工作原理
Spark Streaming支持从多种数据源获取数据,包括Kafka、Flume、Twitter、ZeroMQ、Kinesis 以及TCP Sockets数据源。当Spark Streaming从数据源获取数据之后,则可以使用诸如map、reduce、join和window等高级函数进行复杂的计算处理,最后将处理的结果存储到分布式文件系统、数据库中,最终利用实时Web仪表板进行展示。Spark Streaming支持的输入、输出源如图1所示。
图1 Spark Streaming支持的输入、输出数据源
为了可以深入的理解Spark Streaming,接下来,通过一张图对Spark Streaming的内部工作原理进行详细讲解,如图2所示。
图2 Spark Streaming工作原理
在图2中,Spark Streaming先接收实时输入的数据流,并且将数据按照一定的时间间隔分成一批批的数据,每一段数据都转变成Spark中的RDD,接着交由Spark引擎进行处理,最后将处理结果数据输出到外部储存系统。