我是靠谱客的博主 失眠小松鼠,最近开发中收集的这篇文章主要介绍为什么Spark运行比MapReduce快,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Spark比MapReduce快主要有三点。
IO
Spark和MapReduce的计算都发生在内存中,但是MapReduce通常将计算的中间结果写入磁盘,从而导致了频繁的磁盘IO。
Spark则因为RDD弹性分布式数据集和DAG有向无环图不需要将计算的中间结果写入磁盘,大大减少了磁盘IO。

排序
MapReduce在Shuffle时需要花费大量时间进行排序。
Spark在Shuffle时则只有部分场景才需要排序。

进程、线程
MapReduce采用了多进程模型,多进程模型好处是可以细粒度控制每个任务占用的资源,但mapreduce中的map task和reduce task是进程,每次启动都需要重新申请资源,消耗了不必要的时间。
Spark采用了多线程模型,Spark通过复用线程池中的线程来减少启动、关闭task所需要的开销。(多线程模型会出现资源争用,难以细粒度控制每个任务占用资源)

最后

以上就是失眠小松鼠为你收集整理的为什么Spark运行比MapReduce快的全部内容,希望文章能够帮你解决为什么Spark运行比MapReduce快所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部