05-Spark 通俗指南:为什么要造一辆比 Hadoop 更快的跑车?

在 Hadoop 统治江湖几年后,人们发现它有个致命弱点:
这时,Spark 横空出世,号称比 Hadoop MapReduce 快 100 倍。它是怎么做到的?


1. MapReduce 的“短视”毛病

Hadoop MapReduce 极其稳重,每做一步都要落袋为安。

  • 步骤 1 (Map):算出结果 -> 写入硬盘
  • 步骤 2 (Shuffle):下一个任务读取硬盘 -> 算出结果 -> 写入硬盘
  • 步骤 3 (Reduce):读取硬盘 -> 汇总 -> 写入硬盘

缺点:硬盘读写(IO)是最慢的。如果一个任务要迭代 100 次(比如机器学习算法),它就要读写硬盘 100 次。这就像小学生做算术题,算一步就得把草稿纸交上去封存,下一步再向老师申请把草稿纸拿回来接着算。

2. Spark 的“内存”魔法 (RDD)

Spark 的核心思想很简单:别碰硬盘,全在内存(RAM)里搞。

  • RDD (弹性分布式数据集):这是 Spark 的核心概念。
  • 工作流
    • 步骤 1 算出结果 -> 存在内存里
    • 步骤 2 直接从内存读 -> 算完还是在内存里
    • 直到最后一步算完了,再写回硬盘。

类比心算天才。由于中间结果全程记在脑子(内存)里,不用动笔(硬盘),所以速度极快。

3. 既然 Spark 这么快,Hadoop 是不是要扔了?

不是。 它们现在更多是合作关系

  • Spark 取代了什么?
    • 它主要取代了 MapReduce 这个计算引擎。现在很少有人直接写 MapReduce 代码了,都用 Spark(或者 Flink)来算。
  • Spark 没取代什么?
    • HDFS:Spark 自己不存数据,它只负责算。算之前的数据、算完的结果,通常还是存在 HDFS 里的。
    • YARN:Spark 的任务通常还是由 YARN 来分配资源的。

所以现在的标配架构通常是:HDFS (存) + YARN (管) + Spark (算)

4. Spark 还能干啥?(全家桶)

Spark 不仅仅是一个计算引擎,它通过扩展包把很多事都干了:

  • Spark SQL:让你可以像用 Hive 一样写 SQL,但是是用 Spark 引擎跑,速度飞快。
  • Spark Streaming:处理实时流数据(虽然其实是微批处理)。
  • MLlib:内置了大量的机器学习算法(逻辑回归、K-Means等),利用内存迭代极快的优势,做 AI 训练。

总结

  • Hadoop MapReduce:老黄牛。稳重、容错性极强(机器挂了接着跑),适合跑那几天几夜的离线批处理,不在乎时间。
  • Spark:法拉利。吃内存(贵),但速度极快,适合迭代计算、机器学习、交互式查询。

🚀 继续探索大数据的法拉利世界

🏗️ 06-Spark 进阶指南:架构原理与 Alluxio 加速 - 就像是法拉利的"引擎舱"!Spark高级架构深入探讨Spark的内部工作原理,让你了解它为什么这么快、这么强大。你将学习它的核心组件、执行模型、调度策略等,如何优化Spark作业,如何让Spark发挥出最大性能。这是成为Spark专家的"技术蓝图"!

🌊 07-Data Lake 数据湖:包容万物的"数字海洋" - 就像是大数据世界的"水库"!数据湖是现代大数据存储架构的重要概念,它能够存储各种类型、各种格式的数据,为Spark等计算引擎提供丰富的数据来源。你将学习数据湖的核心概念、架构设计、技术选型等,如何构建和管理数据湖,如何让数据湖成为大数据分析的"宝藏库"。这是了解现代数据存储的"新视角"!

10-流处理引擎Flink介绍:大数据世界的"实时监控中心" - 就像是大数据世界的"实时数据流"!Flink是专为流处理设计的引擎,它能够实时处理海量数据流,提供低延迟、高吞吐的实时分析能力。你将学习它如何实现真正的流处理,如何处理事件时间,如何保证数据一致性,如何成为实时数据处理的"黄金标准"。这是体验大数据实时处理的"速度与激情"!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐