如何在Hadoop里面实现二次排序

如何在Hadoop里面实现二次排序,第1张

:(Partition)分区出现的必要性,如何使用Hadoop产生一个全局排序的文件?最简单的唤源方法就是使用一个分陆改区,但是该方法在处理大型文件时效率极低,因为一台机器必须处理所有输出文件,从而完全丧失了MapReduce所提供的并行架构早链判的优势。

为了提高reduce阶段的并行度,TeraSort作业对以上算法进行改进:在map阶段,伍枣每个map task都会将数据划分成R个数据块(R为reduce task个数)

其中第i(i>0)个数据块的所有数据都会比第i+1个中的腔姿拆数据大;

在reduce阶段,第i个reduce task处理(进行排序)所有map task的第i块册粗,这样第i个reduce task产生的结果均会比第i+1个大,最后将1~R个reduce task的排序结果顺序输出,即为最终的排序结果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12275974.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存