摘要: 采样分组 为了实现输出的全局排序,可以对温度数据进行分组处理,实现多个reduce处理,组间有序,组内有序,从而实现全局有序。而如何分组才能保证每个reduce分到的数据差不多,这样作业中的任务执行时间也差不多。例如将处理温度数据,要求温度按顺序输出。分成4组个分组,<-10℃,-10℃~0℃, 0 阅读全文
posted @ 2020-02-15 23:45 一字千金 阅读(458) 评论(0) 推荐(0)
摘要: 任务的默认排序 MapTask和ReduceTask都会默认对数据按照key进行排序,不管逻辑上是否需要。默认是按照字典顺序排序,且实现该排序的方法是快速排序。但是map和reduce任务只能保证单个任务内部输出有序,不能保证所有输出全局有序。 MapTask,当环形缓冲区使用率到达一定阈值后进行一 阅读全文
posted @ 2020-02-15 23:42 一字千金 阅读(859) 评论(0) 推荐(0)
摘要: 1.1.1 全排序 (1)全排序概述 指的是让所有的输出结果都是有序的,最简单的方法就是用一个reduce任务,但是这样处理大型文件时效率极低,失去的并行架构的意义。所以可以采用分组排序的方法来实现全局排序,例如现在要实现按键的全局的排序,可以将键值按照取值范围分为n个分组,<-10℃,-10℃~0 阅读全文
posted @ 2020-02-15 23:40 一字千金 阅读(525) 评论(0) 推荐(0)
摘要: 1.1.1 辅助排序(二次排序) (1)二次排序定义 通常情况下我们只对键进行排序,例如(年份,温度)组成的键值对,我们通常只对key年份进行排序,如果先按照年份排好序,还要求年份相同的再按照温度进行进行逆序排列,像这样先按照第一字段进行排序,然后再对第一字段相同的行按照第二字段排序,我们称为二次排 阅读全文
posted @ 2020-02-15 21:57 一字千金 阅读(626) 评论(0) 推荐(0)