我是靠谱客的博主 故意老师,最近开发中收集的这篇文章主要介绍spark比MapReduce快的原因,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

park比MapReduce快的原因

Spark是基于内存的,而MapReduce是基于磁盘的迭代

  1. MapReduce的设设计:中间结果保存在文件中,提高了可靠性,减少了内存占用。但是牺牲了性能。
  2. Spark的设计:数据在内存中进行交换,要快一些,但是内存这个东西,可靠性不如磁盘。所以性能方面比MapReduce要好。

DAG计算模型在迭代计算上还是比MapReduce的效率更高

有向无环图是指:一个图从顶点出发,无法再回到原点,那么这种图叫做有向无环图。

DAG计算模型在spark任务调度

Spark比MapReduce快的根本原因在于DAG计算模型,一般而言,DAG比MapReduce在大多数情况下可以减少shuffle次数,spark的DAG相当于一个改进版的MapReduce,如果计算不涉及其他节点进行数据交换,spark可以在内存中一次性完成这些操作,也就是中间结果无需落地磁盘,减少了磁盘IO的操作。但是,如果计算过程中涉及到计算交换,Spark也会把shuffle的数据写磁盘。

Spark比MapReduce快的主要原因是spark将反复用到的数据cache到内存中,减少数据加载耗时。

Spark是粗粒度资源调度,MapReduce是细粒度资源调度

Rdd的五大特性

  1. rdd是由一系列的partition组成
  2. 每一个函数或者算子实际上是作用在partition上的,
  3. Rdd之间具有相互依赖关系,
  4. 分区器是作用在(k,v)格式的rdd上的,分区器作用在shuffle的written阶段,决定了每一条记录写入哪一个分区

(k,v)格式的rdd:如果rdd中的数组是由二元对象组成的,这个rdd就是(k,v)格式的rdd

  1. 每个rdd都会提供最佳的计算位置,有利于计算数据的本地化,符合大数据的计算原则,计算向数据移动。

最后

以上就是故意老师为你收集整理的spark比MapReduce快的原因的全部内容,希望文章能够帮你解决spark比MapReduce快的原因所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部