大数据Spark(五十七):Spark运行架构与MapReduce区别

文章目录

Spark运行架构与MapReduce区别

一、Spark运行架构

二、Spark与MapReduce区别


Spark运行架构与MapReduce区别

一、Spark运行架构

  • Master:Spark集群中资源管理主节点,负责管理Worker节点。
  • Worker:Spark集群中资源管理的从节点,负责任务的运行。
  • Application:Spark用户运行程序,包含Driver端和在各个Worker运行的Executor端。
  • Driver:用来连接Worker的程序,Driver可以将Task发送到Worker节点处理这些数据。每个Spark Application都有独立的Driver,Driver负责任务(Tasks)的分发和结果回收。如果task的计算结果非常大就不要回收了,可能会造成oom。
  • Executor :Worker节点上运行的进程,负责执行Task,将数据存储在内存或者磁盘中,并将结果返回给Driver。每个Application都有各自独立的一批Executors。
  • Task:被发送到某个Executor上的工作单元。

二、Spark与MapReduce区别

Apache Spark 和 Hadoop MapReduce 都是用于大规模数据处理的分布式计算框架,但它们在架构设计、数据处理方式和应用场景等方面存在显著差异。以下是两者的主要区别:

1) 数据处理方式

MapReduce:采用基于磁盘的处理方式,每个任务的中间结果需要写入磁盘,然后再读取进行下一步处理。这种方式增加了磁盘 I/O 操作,导致处理速度较慢。

Spark:利用内存进行数据处理,将中间结果存储在内存中,减少了磁盘读写操作,从而显著提高了处理速度。特别是在需要多次迭代计算的场景下,Spark 的性能优势更加明显。

2) 编程模型

MapReduce:提供了相对低级的编程接口,主要包含 Map 和 Reduce 两个操作,开发者需要编写较多的代码来实现复杂的数据处理逻辑。

Spark:提供了更高级的编程接口,如 RDD(弹性分布式数据集)和 DataFrame,支持丰富的操作算子,使得开发者可以以更简洁的方式编写复杂的处理逻辑。此外,Spark支持SQL处理批/流数据。

3) 任务调度

MapReduce:采用多进程模型,每个Task任务作为一个独立的JVM进程运行。

Spark:采用多线程模型,在同一个进程中管理多个Task任务,资源调度更为高效。

4) 资源申请

MapReduce:采用细粒度资源调度,每个 MapReduce Job 运行前申请资源,Job运行完释放资源。如果一个Application中有多个 MapReduce Job,每个Job独立申请和释放资源。

Spark:采用粗粒度资源调度。Application运行前,为所有的Spark Job申请资源,所有Job执行完成后,统一释放资源。

5) 数据处理能力

MapReduce:主要用于批处理任务,不适合实时数据处理。

Spark:适用于批量/实时数据处理。通过 SparkStreaming 和 StructuredStreaming 模块,支持实时数据流处理。

6) 容错机制

MapReduce:通过将中间结果写入磁盘,实现任务失败后的重试和恢复。

Spark:采用 RDD 的血统(lineage)机制,记录数据集的生成过程。当节点发生故障时,Spark 可以根据血统信息重新计算丢失的数据分区,实现高效的容错。


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
相关推荐
-曾牛39 分钟前
Git完全指南:从入门到精通版本控制 ------- Git仓库创建 (5)
大数据·网络·git·学习·elasticsearch·个人开发
caihuayuan42 小时前
Redis奇幻之旅(三)1.redis客户端与服务端
java·大数据·sql·spring·课程设计
掘金-我是哪吒3 小时前
分布式微服务系统架构第105集:协议,高性能下单系统示例项目
分布式·微服务·架构·系统架构·linq
唐天下文化3 小时前
甜心速达智慧潮流精选超市、即时零售新业态,打造可持续发展商业模式
大数据·人工智能·零售
嘻嘻嘻哈哈哈嘻嘻嘻3 小时前
LNMP架构部署论坛
架构
科技小E3 小时前
5G时代,视频分析设备平台EasyCVR实现通信基站远程安全便捷管控
大数据·网络·人工智能·音视频·安防监控
twj_one4 小时前
[ElasticSearch]Suggest查询建议(自动补全&纠错)
大数据·elasticsearch·搜索引擎
Debug_TheWorld4 小时前
Spark rdd算子解析与实践
spark
King.6244 小时前
从 SQL2API 到 Text2API:开启数据应用开发的新征程
大数据·开发语言·数据库·sql·低代码
alin、m5 小时前
银河麒麟(Kylin) - V10 SP1桌面操作系统ARM64编译QT-5.15.12版本
大数据·qt·kylin