Spark 研究
Apache Spark 最初是加州大学伯克利分校 AMPLab 的一个研究项目,该实验室专注于大数据分析。
我们的目标是设计一种编程模型,它比 MapReduce 支持更广泛的应用,同时保持其自动容错性。特别是,MapReduce 对于多遍应用效率不高,这些应用需要在多个并行操作之间进行低延迟数据共享。这些应用在分析中非常常见,包括
- 迭代算法,包括许多机器学习算法和图算法,如 PageRank。
- 交互式数据挖掘,用户希望将数据加载到集群的 RAM 中并重复查询。
- 流式应用,它们会随着时间的推移维护聚合状态。
传统的 MapReduce 和 DAG 引擎对于这些应用来说是次优的,因为它们基于非循环数据流:一个应用必须作为一系列不同的作业运行,每个作业都从稳定的存储(例如,分布式文件系统)读取数据,然后将其写回稳定的存储。它们在每个步骤加载数据并将其写回复制存储时会产生大量成本。
Spark 提供了一个名为 弹性分布式数据集 (RDD) 的抽象,以有效地支持这些应用。 RDD 可以在查询之间存储在内存中,而无需复制。相反,它们使用血统重建故障时丢失的数据:每个 RDD 都会记住它是如何从其他数据集构建的(通过诸如 map
、join
或 groupBy
之类的转换)来重建自身。 RDD 允许 Spark 在多遍分析中胜过现有模型高达 100 倍。我们表明,RDD 可以支持各种迭代算法,以及交互式数据挖掘和一个高效的 SQL 引擎 (Shark)。
您可以在以下论文中找到更多关于 Spark 背后的研究信息
-
SparkR:使用 Spark 扩展 R 程序,Shivaram Venkataraman、Zongheng Yang、Davies Liu、Eric Liang、Hossein Falaki、Xiangrui Meng、Reynold Xin、Ali Ghodsi、Michael Franklin、Ion Stoica 和 Matei Zaharia。 SIGMOD 2016。 2016 年 6 月。
-
MLlib:Apache Spark 中的机器学习,Xiangrui Meng、Joseph Bradley、Burak Yavuz、Evan Sparks、Shivaram Venkataraman、Davies Liu、Jeremy Freeman、DB Tsai、Manish Amde、Sean Owen、Doris Xin、Reynold Xin、Michael J. Franklin、Reza Zadeh、Matei Zaharia 和 Ameet Talwalkar。 机器学习研究杂志 (JMLR)。 2016 年。
-
Spark SQL:Spark 中的关系数据处理。 Michael Armbrust、Reynold S. Xin、Cheng Lian、Yin Huai、Davies Liu、Joseph K. Bradley、Xiangrui Meng、Tomer Kaftan、Michael J. Franklin、Ali Ghodsi、Matei Zaharia。 SIGMOD 2015。 2015 年 6 月。
-
GraphX:统一数据并行和图并行分析。 Reynold S. Xin、Daniel Crankshaw、Ankur Dave、Joseph E. Gonzalez、Michael J. Franklin、Ion Stoica。 OSDI 2014。 2014 年 10 月。
-
离散流:大规模容错流计算。 Matei Zaharia、Tathagata Das、Haoyuan Li、Timothy Hunter、Scott Shenker、Ion Stoica。 SOSP 2013。 2013 年 11 月。
-
Shark:大规模 SQL 和丰富的分析。 Reynold S. Xin、Joshua Rosen、Matei Zaharia、Michael J. Franklin、Scott Shenker、Ion Stoica。 SIGMOD 2013。 2013 年 6 月。
-
离散流:一种高效且容错的模型,用于在大型集群上进行流处理。 Matei Zaharia、Tathagata Das、Haoyuan Li、Scott Shenker、Ion Stoica。 HotCloud 2012。 2012 年 6 月。
-
Shark:使用粗粒度分布式内存进行快速数据分析(演示)。 Cliff Engle、Antonio Lupher、Reynold S. Xin、Matei Zaharia、Haoyuan Li、Scott Shenker、Ion Stoica。 SIGMOD 2012。 2012 年 5 月。最佳演示奖。
-
弹性分布式数据集:用于内存集群计算的容错抽象。 Matei Zaharia、Mosharaf Chowdhury、Tathagata Das、Ankur Dave、Justin Ma、Murphy McCauley、Michael J. Franklin、Scott Shenker、Ion Stoica。 NSDI 2012。 2012 年 4 月。最佳论文奖。
-
Spark:具有工作集的集群计算。 Matei Zaharia、Mosharaf Chowdhury、Michael J. Franklin、Scott Shenker、Ion Stoica。 HotCloud 2010。 2010 年 6 月。