ScholarGate
助手

大数据处理框架

大数据框架允许程序员处理远超单机能力的数据集,通过将计算表达为并行数据流,由运行时进行分发并实现容错。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

大数据处理框架是一种系统,它允许程序员将对超大数据集的计算表达为高级数据流操作符,并自动对数据进行分区、调度集群间的并行执行,并容忍节点故障。

Scope

本主题涵盖了集群规模数据处理的数据流编程模型:MapReduce范式及其局限性,基于弹性分布式数据集构建的内存数据流引擎,以及具有窗口化、事件时间语义和精确一次保证的统一批处理和流处理。它探讨了海量、可能无界的数据如何被分区、并行处理并在故障后恢复。

Core questions

  • 如何表达和并行执行超出单机容量的数据计算?
  • 内存和流处理引擎如何改进批处理MapReduce?
  • 对于无界、乱序的数据流,如何平衡正确性、延迟和容错性?

Key theories

MapReduce
MapReduce将数据处理表达为映射(map)步骤(将记录转换为键值对)和归约(reduce)步骤(按键聚合),由运行时处理并行化、数据混洗和失败任务的重新执行。
弹性分布式数据集
RDDs提供了一种容错的内存抽象,其确定性转换的血缘关系允许重新计算丢失的分区,从而实现比基于磁盘的MapReduce快得多的迭代和交互式集群计算。
统一批处理和流数据流
现代引擎将批处理视为流处理的一种特殊情况,利用事件时间窗口和水印以及一致性快照,为无界、乱序的数据提供精确一次的结果。

Clinical relevance

这些框架处理搜索、分析、推荐和机器学习管道背后的数据,流引擎为实时监控和事件驱动型应用提供支持,使其成为数据密集型计算的核心基础设施。

History

谷歌2004年的MapReduce论文(2008年修订)确立了集群规模的数据处理;Spark的弹性分布式数据集(2012年)带来了快速的内存和迭代处理;而Flink和数据流模型(2015年)等系统则通过强大的正确性保证统一了批处理和流处理。

Debates

批处理与流处理作为主要处理模型
批处理更简单,易于实现精确一次,但会增加延迟;而流处理提供低延迟,代价是在乱序数据下更难保证正确性;统一引擎认为流处理可以涵盖批处理,尽管批处理仍常用于大型历史作业。

Key figures

  • Jeffrey Dean
  • Sanjay Ghemawat
  • Matei Zaharia
  • Tyler Akidau

Related topics

Seminal works

  • dean2008
  • zaharia2012
  • akidau2015

Frequently asked questions

为什么Spark和类似系统在许多工作负载中取代了纯MapReduce?
MapReduce在每个步骤之间将中间结果写入磁盘,这对于迭代算法来说速度较慢。弹性分布式数据集等内存抽象在步骤之间将数据保留在内存中,并且在发生故障时仅重新计算丢失的分区,从而为迭代和交互式分析带来了显著的速度提升。

Methods for this concept

Related concepts