*** 找黑客暗语(黑客在 *** 上叫什么)

访客4年前黑客文章921

默认情况下,Map输出的结果会对Key进行默认的排序,但是有时候需要对Key排序的同时还需要对Value进行排序,这时候就要用到二次排序了。下面我们来说说二次排序

1、二次排序原理

我们把二次排序分为以下几个阶段

Map起始阶段

在Map阶段,使用job.setInputFormatClass()定义的InputFormat,将输入的数据集分割成小数据块split,同时InputFormat提供一个RecordReader的实现。在这里我们使用的是TextInputFormat,它提供的RecordReader会将文本的行号作为Key,这一行的文本作为Value。这就是自定 Mapper的输入是<LongWritable,Text> 的原因。然后调用自定义Mapper的map *** ,将一个个<LongWritable,Text>键值对输入给Mapper的map ***

Map最后阶段

在Map阶段的最后,会先调用job.setPartitionerClass()对这个Mapper的输出结果进行分区,每个分区映射到一个Reducer。每个分区内又调用job.setSortComparatorClass()设置的Key比较函数类排序。可以看到,这本身就是一个二次排序。如果没有通过job.setSortComparatorClass()设置 Key比较函数类,则使用Key实现的compareTo() ***

Reduce阶段

在Reduce阶段,reduce() *** 接受所有映射到这个Reduce的map输出后,也会调用job.setSortComparatorClass() *** 设置的Key比较函数类,对所有数据进行排序。然后开始构造一个Key对应的Value迭代器。这时就要用到分组,使用 job.setGroupingComparatorClass() *** 设置分组函数类。只要这个比较器比较的两个Key相同,它们就属于同一组,它们的 Value放在一个Value迭代器,而这个迭代器的Key使用属于同一个组的所有Key的之一个Key。最后就是进入Reducer的 reduce() *** ,reduce() *** 的输入是所有的Key和它的Value迭代器,同样注意输入与输出的类型必须与自定义的Reducer中声明的一致

接下来我们通过示例,可以很直观的了解二次排序的原理

相关文章

灰色跟什么色搭配好看(女士秋冬季灰色衣服搭

灰色跟什么色搭配好看(女士秋冬季灰色衣服搭

灰色衣服搭配什么颜色好看 灰色+灰色 灰色不仅相当好驾驭之外,不同深浅的色调能增添高贵的气质。 灰色的同色系搭配一直以来都是时尚人士经常运用在提升造型质感的元素之一。 而今年主流的灰则...

芭乐绿巨人app黑科技的简单介绍

芭乐绿巨人app黑科技的简单介绍

本文目录一览: 1、绿巨人黑科技怎么下载不了 2、绿巨人黑科技app官网是什么 3、绿巨人黑科技 文件位置 绿巨人黑科技怎么下载不了 可以在官方下载,就能下载了。绿巨人黑科技下载栏目提供了最...

预约上海高端多少钱张翠安

预约上海高端模特多少钱【张翠安】,上海是一座成功人士的聚集地,对商业模特的需求也是比较大的,今天明星商务分享模特访梦,年龄北京 女 32,婚姻:未婚,学历:本科,气质:预约上海高端模特多少钱寻找方法,...

微信找回个人聊天记录不花钱

1.让朋友截图给你,这样你就可以留下聊天记录了2.我们一般很少再去看以前的聊天记录,毕竟手机内存有限~ 苹果微信聊天记录删除了怎么恢复? 1、下载并安装“iTunes”软件,并将手机与电脑用数据线进行...

facebook是什么意(Facebook早被中国禁止)

facebook是什么意(Facebook早被中国禁止)

facebook是什么意(Facebook早被中国禁止)前不久扎克伯格过34生日,网络上也疯传,这是世界上最年轻的富豪,扎克伯格34岁就拥有近700亿美元的资产,而他的公司Facebook市值如今已经...

时光黑客,雇黑客盗微信 靠谱吗,黑客帮我找回qq号和密码

32.41 --packets-per-syscall POSITIVE-INTEGER>登录Authy后,界面上可办理的账户仍是空的,需求咱们增加需求办理的账户,这儿以办理Gmail账户为例...