Spark 研究

Apache Spark 最初是加州大学伯克利分校 AMPLab 的一个研究项目,该实验室专注于大数据分析。

我们的目标是设计一种编程模型,它比 MapReduce 支持更广泛的应用,同时保持其自动容错性。特别是,MapReduce 对于多遍应用效率不高,这些应用需要在多个并行操作之间进行低延迟数据共享。这些应用在分析中非常常见,包括

  • 迭代算法,包括许多机器学习算法和图算法,如 PageRank。
  • 交互式数据挖掘,用户希望将数据加载到集群的 RAM 中并重复查询。
  • 流式应用,它们会随着时间的推移维护聚合状态。

传统的 MapReduce 和 DAG 引擎对于这些应用来说是次优的,因为它们基于非循环数据流:一个应用必须作为一系列不同的作业运行,每个作业都从稳定的存储(例如,分布式文件系统)读取数据,然后将其写回稳定的存储。它们在每个步骤加载数据并将其写回复制存储时会产生大量成本。

Spark 提供了一个名为 弹性分布式数据集 (RDD) 的抽象,以有效地支持这些应用。 RDD 可以在查询之间存储在内存中,而无需复制。相反,它们使用血统重建故障时丢失的数据:每个 RDD 都会记住它是如何从其他数据集构建的(通过诸如 mapjoingroupBy 之类的转换)来重建自身。 RDD 允许 Spark 在多遍分析中胜过现有模型高达 100 倍。我们表明,RDD 可以支持各种迭代算法,以及交互式数据挖掘和一个高效的 SQL 引擎 (Shark)。

您可以在以下论文中找到更多关于 Spark 背后的研究信息

最新消息

存档