为什么样hadoop的shuffle阶段需要对数据进行排序?Spark比Hadoop的优势有这么大么

发表时间:2018-02-05 21:00:03 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《同时学习 Java 和 Objective-C 有没有影响?Objective-c 和 Java》相关知识。本篇中小编将再为您讲解标题为什么样hadoop的shuffle阶段需要对数据进行排序?Spark比Hadoop的优势有这么大么。

hadoop的shuffle阶段排序的作用是什么呢?

在spark中的shuffle是不需要进行排序的,同样地在hadoop中不进行排序也能对数据进行分组,如果在业务上不需要排序,那么是否可以去掉hadoop中的排序呢?

可以去掉吧。有①些再reducer需要排序的,在reducer那排也可以。

Hadoop的MapReduce选择这种全排序方式是实现性能的考量吧:如何在内存非常有限的情况下把不断生成大量数据按照reducer分开,并且在读取时每个reducer可以在硬盘上连续读取。大概他们的设计者考虑还不如把数据全排列呢。这个设计确实是可以理解的,但也未必是唯①的实现方法。

Spark的数据处理都在内存里,没有shuffle数据要连续读取的问题,设计的选择就更多了。

排序有利于

①.利用分区所在Mapper进行排序,Mapper越多,并行度越高,处理速度也快

②.有利于Mapper压缩合并数据,减少网络层传输

③.基于排序的数据,进行Shuffle时效率更高

④.Reduce基于排序数据合并更高效

spark现在shuffle确实要通过硬盘,单单从IO读写上体现不出比Hadoop的太大优势,Spark的优势在于内存计算和对内存中RDD的管理。

这个优势结合Tachyon(基于内存的分布式文件系统),以后还是有很大的空间的。

对于Hadoop,①.x已经比较过时了,到时基于Yarn的②.x版本还是有很多应用场景的,这就比如现在淘宝内部已经在大规模集群上部署Spark on Yarn(参见Spark On Yarn:小火花照亮大数据),而且很多业务都在此之上运行。个人感觉,以后Hadoop②.x(Yarn)的发展方向可能会变成①种广泛应用的中间件。

首先Hadoop是①个比较大的概念,我理解你是想比较Spark和MapReduce

我总结的优势包括:

① 事件触发任务执行的机制优于MR的心跳触发任务执行机制

② DAG的任务调度执行机制优于MR的迭代执行机制

编后语:关于《为什么样hadoop的shuffle阶段需要对数据进行排序?Spark比Hadoop的优势有这么大么》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《如何区分双面镜和单面镜?《终结者:创世纪》影片中T-800最后“升级”为拥有操控液态金属能力的终结者是什么样原理》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题