数据岗位面试题更新 2026-08-05

请解释 Apache Spark 的基本定义,并对比它和 Hadoop 在计算模型、数据存储、执行速度以及适用场景上的主要差异。

数据技术原理方案权衡Apache HadoopApache Spark

考察说明

考查对 Spark 核心概念的理解及其与 Hadoop 生态的对比能力。

回答思路

  1. 【回答框架 1】Spark 是一个开源的分布式计算框架,核心是基于内存的弹性分布式数据集(RDD)进行迭代式计算,支持 SQL、流处理、图计算和机器学习等组件,适合需要低延迟、交互式查询和复杂算法的场景。
  2. 【回答框架 2】Hadoop 包含 HDFS 存储和 MapReduce 计算模型,MapReduce 中间结果写入磁盘,磁盘 I/O 开销大,适合批处理和高吞吐场景,但延迟高。Spark 将数据缓存在内存中,减少了磁盘读写,对迭代和交互式任务速度更快。
  3. 【回答框架 3】两者并非取代关系:Hadoop 提供分布式存储(HDFS)和资源管理(YARN),Spark 可运行在 Hadoop 之上,直接读取 HDFS 数据。Spark 的 RDD 和 DataFrame 抽象更丰富,编程接口更简洁,但内存消耗较大,需要合理配置资源。
  4. 【回答框架 4】适用场景方面:Hadoop 适合对海量离线数据进行简单批处理;Spark 适合机器学习迭代、实时流处理(Spark Streaming)以及需要快速响应的分析任务。选型需结合数据规模、延迟要求和集群资源。
  5. 【回答框架 5】实际项目中常将两者结合:HDFS 负责存储,Spark 负责计算,充分利用 Spark 的速度和 Hadoop 的可靠性。
  6. 【关键点 1】Spark 基于内存计算,减少磁盘 I/O,迭代任务性能显著优于 MapReduce。
  7. 【关键点 2】Hadoop 是分布式存储加批处理框架,Spark 是通用计算引擎,可共存协作。
  8. 【关键点 3】Spark 提供 SQL、Streaming、MLlib 等组件,生态更丰富,但内存消耗较大。
  9. 【易错点 1】不能简单断言 Spark 一定比 Hadoop 快,对简单一次性批处理,MapReduce 的磁盘开销可能差异不大。
  10. 【易错点 2】Spark 并非全内存计算,数据溢出时会落盘,内存配置不当可能导致性能下降或 OOM。
  11. 【易错点 3】注意 Hadoop 包括存储,Spark 只是计算层,不能将其与 MapReduce 对等比较。