Spark 研究
Apache Spark 最初是加州大学伯克利分校 AMPLab 的一个研究项目,该实验室专注于大数据分析。
我们的目标是设计一种编程模型,它能支持比 MapReduce 更广泛的应用类型,同时保持其自动容错能力。特别是,MapReduce 对于需要跨多个并行操作进行低延迟数据共享的多遍应用程序效率低下。这些应用程序在分析中很常见,包括:
- 迭代算法,包括许多机器学习算法和 PageRank 等图算法。
- 交互式数据挖掘,用户希望将数据加载到集群的内存中并重复查询。
- 流式应用程序,随时间保持聚合状态。
传统的 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, and 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, and 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:带工作集(Working Sets)的集群计算。Matei Zaharia, Mosharaf Chowdhury, Michael J. Franklin, Scott Shenker, Ion Stoica. HotCloud 2010. 2010 年 6 月。