1、Spark Streaming
Spark Sreaming基于Spark Core实现了可扩展、高吞吐和容错的实时数据流处理。现在支持的数据源和处理后的结果存储如下图所示。
Spark Streaming将流式计算分解成一系列短小的批处理作业。即将Spark Streaming的输入数据按照批处理尺寸(如1秒)分成一段段的数据(Stream),每一段数据都转换成Spark中的RDD,然后将Spark Streaming中对DStream的转换操作变为Spark中对RDD的转换操作,将RDD经过操作变成中间结果保存在内存中,整个流式计算可以根据业务需求对中间结果进行叠加,或者存储到外部设备。如下图所示。
2、MLlib
MLlib是Spark对常用的机器学习算法的实现库。
3、Spark SQL
Spark SQL最常见的用途之一就是作为一个从Spark平台获取数据的渠道。支持从现有Apache Hive表以及流行的Parquet列式存储格式中读取数据的支持以及其他格式的支持如JSON。Spark SQL支持的数据源如下图所示。
4、GraphX
Spark GraphX是Spark提供的关于图和图并行计算的API,它集ETL、试探性分析和迭代式的图计算于一体。
5、Spark的整体代码结构
参考资料:
1. Spark技术内幕,张安站