Skip to main content
QUICK REVIEW

[论文解读] A Survey on Spark Ecosystem for Big Data Processing

Shanjiang Tang, Bingsheng He|arXiv (Cornell University)|Nov 18, 2018
Cloud Computing and Resource Management参考文献 60被引用 17
一句话总结

本综述对 Apache Spark 的优化技术进行了全面、系统的回顾,将进展按 Spark 生态系统的六个层次——存储、处理、数据管理、高级语言和应用——进行分类。它识别了性能、通用性和容错性方面的关键挑战,并提出了内存大数据处理的未来研究方向。

ABSTRACT

With the explosive increase of big data in industry and academic fields, it is necessary to apply large-scale data processing systems to analysis Big Data. Arguably, Spark is state of the art in large-scale data computing systems nowadays, due to its good properties including generality, fault tolerance, high performance of in-memory data processing, and scalability. Spark adopts a flexible Resident Distributed Dataset (RDD) programming model with a set of provided transformation and action operators whose operating functions can be customized by users according to their applications. It is originally positioned as a fast and general data processing system. A large body of research efforts have been made to make it more efficient (faster) and general by considering various circumstances since its introduction. In this survey, we aim to have a thorough review of various kinds of optimization techniques on the generality and performance improvement of Spark. We introduce Spark programming model and computing system, discuss the pros and cons of Spark, and have an investigation and classification of various solving techniques in the literature. Moreover, we also introduce various data management and processing systems, machine learning algorithms and applications supported by Spark. Finally, we make a discussion on the open issues and challenges for large-scale in-memory data processing with Spark.

研究动机与目标

  • 系统性地回顾并分类现有针对 Spark 性能和通用性优化的研究。
  • 识别 Spark 当前架构中的局限性,包括内存管理、容错性和硬件支持方面的问题。
  • 分析 Spark 生态系统各层(从底层存储到高层应用)的演进及其优化策略。
  • 突出支持异构加速器(GPU、FPGA、TPU)和细粒度数据操作方面的开放性挑战。
  • 通过总结最先进技术并提出基于 Spark 的大数据处理未来研究方向,为研究人员和实践者提供指导。

提出的方法

  • 将 Spark 生态系统划分为六个支持层:存储、处理器、数据管理、数据处理、高级语言和应用算法层。
  • 根据优化技术的关注点对 Spark 中的优化技术进行回顾与分类:性能(如调度、内存 I/O)、通用性(如高级 API)和容错性。
  • 分析 Spark 的 RDD 模型、基于血缘的恢复机制以及内存计算,识别出垃圾回收和数据倾斜等瓶颈。
  • 评估针对加速器(GPU、FPGA、APU、TPU)的扩展及其因异构编程模型带来的集成挑战。
  • 研究内存管理解决方案如 Tungsten,该方案通过优化序列化和内存布局重新设计 Spark 的内存系统,以减少 GC 开销。
  • 回顾基于 Spark 的机器学习系统(如 MLlib)、深度学习系统(如 DeepLearning4J、TensorFlow on Spark)以及数据管理系统(如 Shark、Spark SQL)。

实验结果

研究问题

  • RQ1如何在 Spark 生态系统的不同层次上优化其性能,特别是在内存数据处理方面?
  • RQ2Spark 的 RDD 模型在数据倾斜、不可变性以及缺乏细粒度操作方面存在哪些关键局限性?
  • RQ3如何扩展 Spark 以支持新兴的异构加速器(如 GPU、FPGA、APU 和 TPU)?
  • RQ4在容错性方面,特别是血缘持久化和驱动器故障方面,存在哪些开放性挑战?
  • RQ5在 Spark 中,内存管理和垃圾回收方面最有效的优化策略是什么?

主要发现

  • Spark 的内存处理相比 MapReduce 显著提升了性能,但垃圾回收仍是影响性能的主要瓶颈。
  • Spark 基于血缘的容错机制比复制更节省存储空间,但其假设驱动器和血缘元数据始终可用,因此无法实现 100% 的容错性。
  • Tungsten 是 Spark 内存管理项目,通过优化序列化和内存布局,显著减少了内存占用和 GC 开销。
  • RDD 分区中的数据倾斜会导致负载不均,从而在跨工作节点的流水线任务执行中引发性能下降。
  • Spark 对异构加速器(GPU、FPGA、TPU)的支持有限,需要新的抽象来统一 CUDA 和 OpenCL 等异构编程模型。
  • 高级声明式和过程式 API(如 Spark SQL、MLlib)提升了易用性,但无法解决核心 Spark 中的低层性能或通用性问题。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。