Spark Core
Spark Core 是该平台的基础。它要负责内存管理、故障恢复、计划安排、分配与监控作业,以及和存储系统进行交互。您可以通过为 Java、Scala、Python 和 R 而构建的应用程序编程接口 (API) 使用 Spark Core。这些 API 会将复杂的分布式处理隐藏在简单的高级操作符的背后。
MLlib
机器学习
Spark 包含 MLlib,它是在大规模数据上进行机器学习所需的算法库。数据科学家可以在任何 Hadoop 数据源上使用 R 或 Python 对机器学习模型进行训练,这些数据源使用 MLlib 保存,并且被导入到基于 Java 或 Scala 的管道当中。Spark 专为在内存中运行的快速交互式计算而设计,使机器学习可以快速运行。它的算法包含分类、回归、集群、协同过滤和模式挖掘等功能。Spark Streaming
实时
Spark Streaming 是利用 Spark Core 的快速计划功能执行流式分析的实时解决方案。它会提取迷你批处理中的数据,使用为批处理分析编写的相同应用程序代码实现对此类数据的分析。这样一来,开发人员的效率得到改善,因为他们可以将相同代码用于批处理和实时流式处理应用程序。Spark Streaming 支持来自 Twitter、Kafka、Flume、HDFS 和 ZeroMQ 的数据,以及 Spark 程序包生态系统中的其他众多数据。
Spark SQL
交互式查询
Spark SQL 是提供低延迟交互式查询的分布式查询引擎,其速度最高可比 MapReduce 快 100 倍。它包含一个基于成本的优化器、列式存储,能够生成代码并用于快速查询,它还可以扩展到具有数千个节点。业务分析师可以使用标准的 SQL 或 Hive 查询语言来查询数据。开发人员可以使用以 Scala、Java、Python 和 R 提供的 API。它支持各种开箱即用的数据源,包括 JDBC、ODBC、JSON、HDFS、Hive,ORC 和 Parquet。其他热门存储—Amazon Redshift、Amazon S3、Couchbase、Cassandra、MongoDB、Salesforce.com、Elasticsearch,以及其他许多存储,都可以在 Spark 程序包生态系统中找到。GraphX
图形处理
Spark GraphX 是构建在 Spark 之上的分布式图形处理框架。GraphX 提供 ETL、探索性分析和迭代图形计算,让用户能够以交互方式大规模构建、转换图形数据结构。它自带高度灵活的 API 和一系列分布式图形算法选项。