mapreduce写磁盘(为啥mapreduce不适合实时数据)

2026-05-17 15:00:01 :0

mapreduce写磁盘(为啥mapreduce不适合实时数据)

大家好,今天小编来为大家解答以下的问题,关于mapreduce写磁盘,为啥mapreduce不适合实时数据这个很多人还不知道,现在让我们一起来看看吧!

本文目录

为啥mapreduce不适合实时数据

因为他的计算速度比较慢,计算出来的中间结果等等都会写到磁盘上,输出的结果也会到磁盘上,读写磁盘就意味着性能不能达到实时的要求。做历史数据的批处理比较好。
但spark等实时框架计算过程是用内存的,中间结果也可以放在内存中,所以很快,也就能达到实时的要求了

spark和java的关系

通常大家只是说Spark是基于内存计算的,速度比MapReduce要快。或者说内存中迭代计算。其实我们要抓住问题的本质。总结有以下几点:
1、Spark vs MapReduce ≠ 内存 vs 磁盘
其实Spark和MapReduce的计算都发生在内存中,区别在于:
MapReduce通常需要将计算的中间结果写入磁盘,然后还要读取磁盘,从而导致了频繁的磁盘IO。
Spark则不需要将计算的中间结果写入磁盘,这得益于Spark的RDD(弹性分布式数据集,很强大)和DAG(有向无环图),其中DAG记录了job的stage以及在job执行过程中父RDD和子RDD之间的依赖关系。中间结果能够以RDD的形式存放在内存中,且能够从DAG中恢复,大大减少了磁盘IO。
2、Spark vs MapReduce Shuffle的不同
Spark和MapReduce在计算过程中通常都不可避免的会进行Shuffle,两者至少有一点不同:
MapReduce在Shuffle时需要花费大量时间进行排序,排序在MapReduce的Shuffle中似乎是不可避免的;
Spark在Shuffle时则只有部分场景才需要排序,支持基于Hash的分布式聚合,更加省时;
3、多进程模型 vs 多线程模型的区别
MapReduce采用了多进程模型,而Spark采用了多线程模型。多进程模型的好处是便于细粒度控制每个任务占用的资源,但每次任务的启动都会消耗一定的启动时间。就是说MapReduce的Map Task和Reduce Task是进程级别的,而Spark Task则是基于线程模型的,就是说mapreduce 中的 map 和 reduce 都是 jvm 进程,每次启动都需要重新申请资源,消耗了不必要的时间(假设容器启动时间大概1s,如果有1200个block,那么单独启动map进程事件就需要20分钟)
Spark则是通过复用线程池中的线程来减少启动、关闭task所需要的开销。(多线程模型也有缺点,由于同节点上所有任务运行在一个进程中,因此,会出现严重的资源争用,难以细粒度控制每个任务占用资源)
总结:关于Spark为什么比MapReduce快,或者Spark速度快于MapReduce的原因,总结至少有这几点不同之处吧。

为什么Spark比MapReduce快

MapReduce慢是因为 模型很呆板 ,频繁的Io操作

Spark快的话不仅是因为它是内存迭代计算吧? 具体什么是内存迭代计算?

Spark计算比MapReduce快的根本原因在于DAG计算模型。一般而言,DAG相比Hadoop的MapReduce在大多数情况下可以减少shuffle次数(怎么体现?)。

Spark的DAGScheduler相当于一个改进版的MapReduce,如果计算不涉及与其他节点进行数据交换,Spark可以在内存中一次性完成这些操作,也就是中间结果无须落盘,减少了磁盘IO的操作。

但是,如果计算过程中涉及数据交换,Spark也是会把shuffle的数据写磁盘的!!!

另外有同学提到,Spark是基于内存的计算,所以快,这也不是主要原因,要对数据做计算,必然得加载到内存,Hadoop也是如此,只不过Spark支持将需要反复用到的数据给Cache到内存中,减少数据加载耗时,所以Spark跑机器学习算法比较在行(需要对数据进行反复迭代)。Spark基于磁盘的计算依然也是比Hadoop快。

刚刚提到了Spark的DAGScheduler是个改进版的MapReduce,所以Spark天生适合做批处理的任务。而不是某些同学说的:Hadoop更适合做批处理,Spark更适合做需要反复迭代的计算。Hadoop的MapReduce相比Spark真是没啥优势了。但是他的HDFS还是业界的大数据存储标准。

1、Spark vs MapReduce ≠ 内存 vs 磁盘

其实Spark和MapReduce的计算都发生在内存中,区别在于:

MapReduce通常需要将计算的中间结果写入磁盘,然后还要读取磁盘,从而导致了频繁的磁盘IO。

Spark则不需要将计算的中间结果写入磁盘,这得益于Spark的RDD(弹性分布式数据集,很强大)和DAG(有向无环图),其中DAG记录了job的stage以及在job执行过程中父RDD和子RDD之间的依赖关系。中间结果能够以RDD的形式存放在内存中,且能够从DAG中恢复,大大减少了磁盘IO。

2、Spark vs MapReduce Shuffle的不同

Spark和MapReduce在计算过程中通常都不可避免的会进行Shuffle,两者至少有一点不同:

MapReduce在Shuffle时需要花费大量时间进行排序,排序在MapReduce的Shuffle中似乎是不可避免的;

Spark在Shuffle时则只有部分场景才需要排序,支持基于Hash的分布式聚合,更加省时;

3、多进程模型 vs 多线程模型的区别

这俩根本没啥可比的,能够单MR做完的任务,Spark未必比MR快。至于迭代不迭代的并不是关键,其实你在Mapper里对数据做N个操作基本等价于N个窄依赖RDD的连接。

所以说真要比,也是多个MR组成的复杂Job来和Spark比。

MR由于其计算粒度的设计问题,在进行需要多次MR组合的计算时,每次MR除了Shuffle的磁盘开销外,Reduce之后也会写到磁盘。

而Spark的DAG实质上就是把计算和计算之间的编排变得更为细致紧密,使得很多MR任务中需要落盘的非Shuffle操作得以在内存中直接参与后续的运算,并且由于算子粒度和算子之间的逻辑关系使得其易于由框架自动地优化(换言之编排得好的MR其实也可以做到)。

另外在进行复杂计算任务的时候,Spark的错误恢复机制在很多场景会比MR的错误恢复机制的代价低,这也是性能提升的一个点。

迭代计算是spark最开始亮相时的看家本领,第一是避免了不必要的数据落盘,第二则是容错的机制以及缓存节点的合理搭配使得重计算的代价低很多,而且缓存可以在内存。mr和spark都是分片后读数据的,这点没什么区别。至于快100倍……论文这种东西

要想明白这个问题,需要对mapreduce的运算模型有所理解

mapreduce模型(不完全等同mapreduce框架哦),是一个分布式运算模型;它的思想可以通过一个简单的wordcount例子来说明:

需求:有大量的文件,需要统计这些文件中每一个单词出现的次数

在分布式计算里面:

上述过程,就被抽象成了两个运算过程,第一批task属于map过程,而第二批task属于reduce过程

好,现在可以讲mapreduce框架和spark的区别了

所以,spark比mapreduce快,就是上述的2/3两点

减少磁盘 I/O:随着实时大数据应用越来越多,Hadoop 作为离线的高吞吐、低响应框架已不 能满足这类需求。Hadoop MapReduce 的 map 端将中间输出和结果存储在磁盘中,reduce 端 又需要从磁盘读写中间结果,势必造成磁盘 IO 成为瓶颈。Spark 允许将 map 端的中间输出 和结果存储在内存中,reduce 端在拉取中间结果时避免了大量的磁盘 I/O。

增加并行度:由于将中间结果写到磁盘与从磁盘读取中间结果属于不同的环节,Hadoop 将 它们简单的通过串行执行衔接起来。Spark 把不同的环节抽象为 Stage,允许多个 Stage 既可 以串行执行,又可以并行执行

避免重新计算:当 Stage 中某个分区的 Task 执行失败后,会重新对此 Stage 调度,但在重新 调度的时候会过滤已经执行成功的分区任务,所以不会造成重复计算和资源浪费。

关于本次mapreduce写磁盘和为啥mapreduce不适合实时数据的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

mapreduce写磁盘(为啥mapreduce不适合实时数据)

本文编辑:admin

更多文章:


javac不可映射字符(java 编译出现GBK的不可映射字符,为什么会这样,之前一直都没问题的)

javac不可映射字符(java 编译出现GBK的不可映射字符,为什么会这样,之前一直都没问题的)

各位老铁们,大家好,今天由我来为大家分享javac不可映射字符,以及java 编译出现GBK的不可映射字符,为什么会这样,之前一直都没问题的的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力

2025年10月3日 17:30

justified是什么意思英语(请问:justified for 是什么意思,是固定搭配吗)

justified是什么意思英语(请问:justified for 是什么意思,是固定搭配吗)

大家好,今天小编来为大家解答以下的问题,关于justified是什么意思英语,请问:justified for 是什么意思,是固定搭配吗这个很多人还不知道,现在让我们一起来看看吧!本文目录请问:justified for 是什么意思,是固定

2026年7月14日 04:00

java网络编程教程(java 网络编程)

java网络编程教程(java 网络编程)

大家好,java网络编程教程相信很多的网友都不是很明白,包括java 网络编程也是一样,不过没有关系,接下来就来为大家分享关于java网络编程教程和java 网络编程的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目

2026年8月4日 19:30

shell三单形式(shell命令行可由哪三部分组成)

shell三单形式(shell命令行可由哪三部分组成)

大家好,shell三单形式相信很多的网友都不是很明白,包括shell命令行可由哪三部分组成也是一样,不过没有关系,接下来就来为大家分享关于shell三单形式和shell命令行可由哪三部分组成的一些知识点,大家可以关注收藏,免得下次来找不到哦

2026年8月20日 03:15

饿了么超时罚款规定?在饿了么买的东西超时了,该怎么办

饿了么超时罚款规定?在饿了么买的东西超时了,该怎么办

大家好,今天小编来为大家解答以下的问题,关于饿了吗超时,饿了么超时罚款规定这个很多人还不知道,现在让我们一起来看看吧!本文目录饿了么超时罚款规定在饿了么买的东西超时了,该怎么办饿了吗骑手送餐超时骑手惩罚饿了么订单超严重超时怎么办啊饿了么严重

2025年6月18日 04:00

转笔教程圆珠笔(怎么飞圆珠笔)

转笔教程圆珠笔(怎么飞圆珠笔)

各位老铁们好,相信很多人对转笔教程圆珠笔都不是特别的了解,因此呢,今天就来为大家分享下关于转笔教程圆珠笔以及怎么飞圆珠笔的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录怎么飞圆珠笔怎么学会简单的转笔怎么飞圆珠笔跟

2026年7月11日 09:15

security设置(惠普电脑HPClientSecurity如何设置禁止访问1394设备)

security设置(惠普电脑HPClientSecurity如何设置禁止访问1394设备)

本篇文章给大家谈谈security设置,以及惠普电脑HPClientSecurity如何设置禁止访问1394设备对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了

2026年7月27日 21:00

html横向导航栏(html导航栏横向等间距)

html横向导航栏(html导航栏横向等间距)

这篇文章给大家聊聊关于html横向导航栏,以及html导航栏横向等间距对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录html导航栏横向等间距请问HTML中导航栏的二级子菜单横向排列,如何实现,本来是列排列的,网址WWW.XU

2026年1月10日 14:15

configure for the king(two for the second,four for the third,and the dou)

configure for the king(two for the second,four for the third,and the dou)

“configure for the king”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看configure for the king(two for the second,four for the third,and

2026年5月25日 14:15

大佬们,这个游戏怎么玩啊?你知道上古卷轴为什么一直被叫老滚吗 直到我的膝盖中

大佬们,这个游戏怎么玩啊?你知道上古卷轴为什么一直被叫老滚吗 直到我的膝盖中

大家好,老头滚动相信很多的网友都不是很明白,包括大佬们,这个游戏怎么玩啊也是一样,不过没有关系,接下来就来为大家分享关于老头滚动和大佬们,这个游戏怎么玩啊的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录大佬们,这

2025年5月26日 21:00

url地址前部的ftp是指(什么是“FTP://“)

url地址前部的ftp是指(什么是“FTP://“)

这篇文章给大家聊聊关于url地址前部的ftp是指,以及什么是“FTP://“对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录什么是“FTP://“FTP是什么有些URL前部的ftp表示什么A.超文本传输协议 B.传输控制协议

2026年7月29日 23:15

关于php的参考文献书籍类(php相关的英文参考文献有哪些高分求解!!)

关于php的参考文献书籍类(php相关的英文参考文献有哪些高分求解!!)

本篇文章给大家谈谈关于php的参考文献书籍类,以及php相关的英文参考文献有哪些高分求解!!对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录

2025年8月1日 07:15

游戏block是什么意思(游戏设置里的英文是什么意思)

游戏block是什么意思(游戏设置里的英文是什么意思)

大家好,关于游戏block是什么意思很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于游戏设置里的英文是什么意思的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本

2026年9月19日 12:15

correspond名词形容词(relevant corresponding associate这个三个词都有“关联”之意,那么他们有什么区别呢)

correspond名词形容词(relevant corresponding associate这个三个词都有“关联”之意,那么他们有什么区别呢)

今天给各位分享relevant corresponding associate这个三个词都有“关联”之意,那么他们有什么区别呢的知识,其中也会对relevant corresponding associate这个三个词都有“关联”之意,那么

2025年11月16日 07:15

黑猫网站查开源代码网址(黑猫搜索怎么打不开)

黑猫网站查开源代码网址(黑猫搜索怎么打不开)

各位老铁们好,相信很多人对黑猫网站查开源代码网址都不是特别的了解,因此呢,今天就来为大家分享下关于黑猫网站查开源代码网址以及黑猫搜索怎么打不开的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录黑猫搜索怎么打不开黑猫

2025年7月12日 17:45

layer怎么读音发音英语(白色和黑色用英语怎么读)

layer怎么读音发音英语(白色和黑色用英语怎么读)

大家好,layer怎么读音发音英语相信很多的网友都不是很明白,包括白色和黑色用英语怎么读也是一样,不过没有关系,接下来就来为大家分享关于layer怎么读音发音英语和白色和黑色用英语怎么读的一些知识点,大家可以关注收藏,免得下次来找不到哦,下

2026年3月14日 04:45

允许null值什么意思(数据库ssms允许null值为什么是非空的意思)

允许null值什么意思(数据库ssms允许null值为什么是非空的意思)

本篇文章给大家谈谈允许null值什么意思,以及数据库ssms允许null值为什么是非空的意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录数据库ssms允许null值为什么是非空的意思在sql数据库的表设计中,其中有一栏是允

2026年8月4日 23:30

multiply的短语(英语multiplier怎么翻译)

multiply的短语(英语multiplier怎么翻译)

各位老铁们,大家好,今天由我来为大家分享multiply的短语,以及英语multiplier怎么翻译的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录

2026年2月7日 03:15

后端开发需要什么技术(软件后台开发的主要技术)

后端开发需要什么技术(软件后台开发的主要技术)

本篇文章给大家谈谈后端开发需要什么技术,以及软件后台开发的主要技术对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录软件后台开发的主要技术网站

2026年8月8日 19:15

php填空题及答案(php选择题)

php填空题及答案(php选择题)

大家好,php填空题及答案相信很多的网友都不是很明白,包括php选择题也是一样,不过没有关系,接下来就来为大家分享关于php填空题及答案和php选择题的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录php选择题p

2025年8月12日 18:15

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索