Spark 研究

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

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

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

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

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

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

最新消息

存档