首页 > 其他分享 >为什么Spark比MapReduce快?

为什么Spark比MapReduce快?

时间:2023-12-30 18:12:09浏览次数:27  
标签:为什么 Shuffle MapReduce RDD 内存 磁盘 Spark

1、内存和磁盘使用方面

Spark vs MapReduce不等于内存 vs 磁盘,Spark和MapReduce的计算都发生在内存中,区别在于:

  • MapReduce需要将每次计算的结果写入磁盘,然后再从磁盘读取数据,从而导致了频繁的磁盘IO。
  • Spark通常不需要将计算的结果写入磁盘,可以在内存中进行迭代计算。这得益于Spark的RDD和DAG(有向无环图),其中DAG记录了job的stage以及在job执行过程中父RDD和子RDD之间的依赖关系。中间结果能够以RDD的形式存放在内存中,极大减少了磁盘IO

2、Shuffle上的不同

Spark和MapReduce在计算过程中通常都不可避免的会进行Shuffle,Shuffle都会落盘,但:

  • MapReduce在Shuffle时需要花费大量时间进行排序,排序在MapReduce的Shuffle中似乎是不可避免的;
  • Spark在Shuffle时则只有部分场景才需要排序,支持基于Hash的分布式聚合,更加省时;

3、任务级别并行度上的不同

  • MapReduce采用了多进程模型,而Spark采用了多线程模型多进程模型的好处是便于细粒度控制每个任务占用的资源,但每次任务的启动都会消耗一定的启动时间。就是说MapReduce的Map Task和Reduce Task是进程级别的,都是 jvm 进程,每次启动都需要重新申请资源,消耗了不必要的时间。
  • Spark Task则是基于线程模型的,通过复用线程池中的线程来减少启动、关闭task所需要的开销。(多线程模型也有缺点,由于同节点上所有任务运行在一个进程中,因此,会出现严重的资源争用,难以细粒度控制每个任务占用资源)

标签:为什么,Shuffle,MapReduce,RDD,内存,磁盘,Spark
From: https://www.cnblogs.com/guoyu1/p/17936613.html

相关文章

  • 为什么需要等保测试,等保测评是为了什么
    一、为什么要做网络安全评估?1、让企业了解自身网络安全现状任何风险都是潜在的,网络安全风险亦是如此。定期对系统和资产进行安全评估,有助于企业系统漏洞在被黑客利用之前提前发现,针对性采取措施,可以在一定程度上降低损失甚至避免损失。同时,定期做安全评估,能让企业了解自身的网络安......
  • 流畅的Python纸牌:rank_value * len(suit_value)为什么要乘以4
    用点数(rank_value )和花色(suits_values)两个因素对每张牌排序,每张牌都有不同的数值returnrank_value*len(suits_values)+suits_values[card.suit]其中:ranks=[str(n)forninrange(2,11)]+list('JQKA')suits_values=dict(zip(suits,[3,1,0,2]))*len(suits_......
  • 华为云耀云服务器L实例-大数据学习-MapReduce&Yarn的部署
      华为云耀云服务器L实例-大数据学习-MapReduce&Yarn的部署 产品官网:https://www.huaweicloud.com/product/hecs-light.html  今天我们采用可靠更安全、智能不卡顿、价优随心用、上手更简单、管理特省心的华为云耀云服务器L实例为例,介绍MapReduce 和 YARN(Yet Ano......
  • 华为云耀云服务器L实例-大数据学习-MapReduce&Yarn的实操
     华为云耀云服务器L实例-大数据学习-MapReduce&Yarn的实操  产品官网:https://www.huaweicloud.com/product/hecs-light.html  今天我们采用可靠更安全、智能不卡顿、价优随心用、上手更简单、管理特省心的华为云耀云服务器L实例为例,继续介绍MapReduce和YARN的实操......
  • 为什么要敏捷项目管理?你知道吗?
    当我们第一次听到“敏捷项目管理”这个词时,都会问两个问题。什么是敏捷?我们为什么需要敏捷?  “敏捷”是什么?敏捷方法是一种理念,采用基于人员、协作和共同价值观的组织模型。它作为新兴的项目管理模式,简化了传统项目管理的繁琐流程和文档。敏捷方法采用波浪式规划(rollingwave);迭......
  • spark 3.0新特性
    一、AdaptiveQueryExecution自适应查询https://blog.51cto.com/u_12865/7338853 二、DynamicPartionPruning动态裁剪分区ApacheSpark3.0动态分区裁剪(DynamicPartitionPruning)介绍https://www.iteblog.com/archives/8589.htmlApacheSpark3.0动态分区裁剪(Dynam......
  • 为什么企业需要客户crm系统?
    客户CRM提供数据储存,数据调配,数据分析。让传统的人工操作,让系统去完成。企业只需要提供原始数据就行了。举几个栗子:1、客户资料的集中管理:可以集中存储和管理客户信息,包括联系方式、工商信息,购买意愿等。这使企业能够更全面、准确地了解客户,为提供个性化的服务和解决问题提供基础。......
  • (转载)为什么UART串口通信要16倍过采样数据
    增强抗干扰是原因之一标准UART可以选16倍采样,也可以选64倍采样,个人觉得应该是方便分频设计. 标准UART的RXD前端有一个"1到0跳变检测器",当其连续接受到8个RXD上的地电平时,该检测器就认为RXD线出现了起始位,进入接受数据状态.在接受状态,接受控制器对数据位7,8,9三个脉冲采......
  • 为什么都建议配备人员摔倒AI检测算法
    旭帆科技的AI智能分析网关v4包含有30多种算法,包括人体、车辆、行为分析、烟火、入侵、安全帽、反光衣等等,可应用在安全生产、通用园区、智慧社区、智慧工地等场景中。今天,小编就其中的摔倒检测算法来展开聊聊,可以用于哪些场景。1、老年人健康监护老年人摔倒是常见的意外事件,使......
  • nginx WebUI进行反向代理为什么报错504
    当您在使用NginxWebUI进行反向代理时遇到504错误,这通常是由于Nginx无法在合理的时间内完成请求处理。504错误是Nginx的通用错误,表示"网关超时"。以下是可能导致此问题的原因以及相应的解决方案:1.后端服务器问题原因:后端服务器可能由于各种原因无法及时响应。解决方案:检查后端服务......