前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MapReduce与Spark 对比

MapReduce与Spark 对比

作者头像
herain
发布2022-04-27 19:42:06
5670
发布2022-04-27 19:42:06
举报
文章被收录于专栏:数据指象数据指象

研究了一段时间,简单对比了二者不同点,也是Spark计算更有MapReduce的原因所在。

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

1,交换数据的方式

MR 多使用hdfs做数据交换,多节点会带来IO压力;Spark多是基于本地磁盘做数据交换。

2,执行单元:

MR 的task的执行单元是进程,进程的创建销毁的开销较大;Spark的task执行单元是线程,开销较小。

3,缓存

MR 基本上没有使用缓存,读取效率低;Spark是用Buffle KV做缓存,很适合算法场景的多次迭代计算,也可以了解一下“钨丝计划”。

4,shuffle

MR的shuffle 过程每一个task 会产生多个小文件,task之间的文件无法共用;Spark 的shuffle过程会合并小文件,保持task和file是一对一,来精简小文件的数量。

5,数据

MR的数据多是hdfs,一对Map和Reduce 与其他MR是独立的,上下游执行阶段是没有血缘记录的;Spark的数据是RDD,多MR形式来共享数据,构建了一个DAG(有向无环图),上下游执行阶段是有血缘记录的,减少了重复拉取数据的成本。

6,资源申请粒度

MapReduce是每一个task去独自做资源申请,粒度较细,Spark是整体job来做资源申请,粒度较粗。

注释:MR 的过程:Map、Sort、Combine、Shuffle、Reduce。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据指象 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档