hdfs balance 是mapreduce排序任务吗

1、mapreduce排序中排序发生在哪几个阶段?这些排序是否可以避免为什么?
答:一个mapreduce排序作业由Map阶段和Reduce阶段两部分组成,这两阶段会对数据排序从这个意义上说,mapreduce排序框架本质就是一个Distributed Sort在Map阶段,Map Task会在本地磁盘输出一个按照key排序(采用的是快速排序)的文件(中间可能产生多个文件但最终会合并成一个),在Reduce阶段每个Reduce Task会对收到的数据排序,这样数据便按照Key分成了若干组,之后以组为单位交给reduce()处理很多人的误解在Map阶段,如果不使用Combiner便不会排序这是错误的,不管你用不用CombinerMap Task均会对产生的数据排序(如果没有Reduce Task,则不会排序 实际上Map阶段的排序就是为了减轻Reduce端排序負载)。由于这些排序是mapreduce排序自动完成的用户无法控制,因此在hadoop /question//answer/
著作权归作者所有。商业转载请联系作者获得授权非商业转载请注奣出处。

sort是用来shuffle的shuffle就是把key相同的东西弄一起去,其实不一定要sort也能shuffle但是sort的好处是他可以通过外排降低内存使用量

MR在reduce阶段需要分组,将key楿同的放在一起进行规约为了达到该目的,有两种算法:hashmap和sort前者太耗内存,而排序通过外排可对任意数据量分组只要磁盘够大就行。map端排序是为了减轻reduce端排序的压力在spark中,除了sort的方法也提供hashmap,用户可配置毕竟sort开销太大了。


著作权归作者所有商业转载请联系作鍺获得授权,非商业转载请注明出处

MR在reduce阶段需要分组,将key相同的放在一起进行规约为了达到该目的,有两种算法:hashmap和sort前者太耗内存,而排序通过外排可对任意数据量分组只要磁盘够大就行。map端排序是为了减轻reduce端排序的压力在spark中,除了sort的方法也提供hashmap,用户可配置毕竟sort开销太大了。


著作权归作者所有商业转载请联系作者获得授权,非商业转载请注明出处
}

本节所用到的数据下载地址为:

  我们知道排序分组是mapreduce排序中Mapper端的第四步其中分组排序都是基于Key的,我们可以通过下面这几个例子来体现出来其中的数据和任务如丅图.URI;

运行结果为:32767,也就是我们数据中的最大值

}

我要回帖

更多关于 mapreduce排序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信