Skip to content

1.1 Spark的背景和优势。📚

在大数据时代,数据的爆炸式增长对传统的数据处理框架提出了巨大挑战。🌋而Spark的诞生,正是为了应对这些挑战,它在传统的MapReduce计算框架基础上做出了重大改进和优化。

传统MapReduce框架的局限性

在Spark出现之前,Hadoop MapReduce是大数据处理的事实标准。它通过map和reduce两个阶段,实现了海量数据的分布式计算。🗺️🔍

但是,MapReduce也存在一些明显的局限性:

  1. 迭代计算低效 📉 MapReduce的计算结果需要写入磁盘,每次迭代都需要重新读取数据,I/O开销很大。这使得机器学习、图计算等迭代计算效率低下。

  2. 实时计算能力差 🕰️ MapReduce采用批处理模型,对于实时流式计算和响应支持不好,难以满足实时数据处理的需求。

  3. 任务调度开销大 🐌 MapReduce的任务调度是粗粒度的,每个job需要启动单独的进程,调度开销较大,不适合执行时间短、数量多的小任务。

Spark的优势和特点

Spark正是为了解决MapReduce的这些问题而诞生的,它在性能、易用性、通用性等方面,都实现了重大的突破。🚀

  1. 内存计算 💾 Spark将中间结果和数据缓存在内存中,大大减少了I/O操作,特别适合数据复用和迭代计算频繁的场景。

  2. DAG任务调度 🗺️ Spark采用有向无环图(DAG)模型描述任务依赖关系,调度粒度更细,避免了不必要的I/O和序列化开销,执行效率更高。

  3. 多语言API支持 🌐 Spark提供了Java、Scala、Python、R等多语言API,满足不同开发者的偏好,使用门槛更低。

  4. 通用计算框架 🎛️ Spark提供了完整的计算生态,包括批处理、SQL查询、实时流处理、机器学习、图计算等,使之成为一站式大数据解决方案。

  5. 兼容Hadoop生态 🤝 Spark可以与Hadoop的HDFS、YARN等组件无缝对接,融入已有的Hadoop生态,保护用户现有投资。

总之,Spark凭借其独特的内存计算和DAG任务调度等优势,在性能、易用性和通用性上大幅领先于MapReduce等传统计算框架,成为了大数据处理的新一代标准。🏆

你对Spark的背景和优势有什么看法或疑问吗?欢迎随时提出来讨论哦!💬接下来我们将介绍Spark的核心概念RDD(弹性分布式数据集),记得跟上学习进度!