制作精美网站建设口碑好,郑州企业网站seo,一般做网站需要的js有哪些,微信小程序游戏排行榜Spark 为什么比 MapReduce 快总结
首先澄清几个误区#xff1a; 1#xff09;两者都是基于内存计算的#xff0c;任何计算框架都肯定是基于内存的#xff0c;所以说网上所说的 Spark 是基于内存计算所以快#xff0c;显然是错误的。 2#xff09;DAG 计算模型减少的是磁…Spark 为什么比 MapReduce 快总结
首先澄清几个误区 1两者都是基于内存计算的任何计算框架都肯定是基于内存的所以说网上所说的 Spark 是基于内存计算所以快显然是错误的。 2DAG 计算模型减少的是磁盘 1/0 次数相比于 MapReduce 计算模型而言而不是shuffle次数因为 shuffle 是根据数据重组的数次而定所以 shufle 次数不能减少。 所以总结 Spark 比MapReduce 快的原因有以下几点 1DAG 相比Hadoop 的MapReduce 在大多数情况下可以减少磁盘1/0次数。因为 MapReduce 计算模型只能包含一个Map 和一个Reduce所以 Reduce 完后必须进行落盘而DAG 可以连续 shuffle 的也就是说一个 DAG 可以完成好几个MapReduce,所以DAG 只需要在最后一次reduce 落盘这就比mapreduce少了总shuffle 次数越多减少的落盘次数越多。 2Spark shuffle 的优化。MapReduce 在 Shuffle 时默认进行排序。Spark 在Shuffle 时则只有部分场景才需要排序 (bypass 机制不需要排序。排序是非常耗时的这样就可以加快 shuffle 速度。。 3)Spark 支持将需要反复用到的数据进行缓存。所以对于下次再次使用此 RDD时不用再次计算而是直接从缓存中获取因此可以减少数据加口载耗时所以更适合需要迭代计算的机器学习算法。 4任务级别井行度上的不同。MapReduce 采用了多进程模型而 Spark 采用了多线程模型。多进程模型的好处是便于细粒度控制每个任务占用的资源但每次任务的启动都会消耗一定的启动时间即MapReduce 的Map Task和Reduce Task是进程级别的都是 jvm 进程每次启动都需要重新申请资源消耗了不必要的时间。而 Spark Task 则是基于线程模型的通过复用线程池中的线程来减少启动关闭 task 所需要的开销。多线程模型也有缺点由于同节点上所有任务运行在一个进程中因此会出现严重的资源争用难以细粒度控制每个任务占用资源)