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

访客3年前黑客资讯950

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

1、二次排序原理

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

Map起始阶段

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

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


相关文章

微商怎么大量添加好友扩大自己的微信朋友圈

做微商如何大量添加好友?谈谈我做微商人脉倍增经验:有一次,和朋友交谈营销,我们讨论了直销在中国的发展以及在实战过程中直销所采用的各种手法。她本身做直销多年,身边有很多这方面的成功案例,所以对直销来说应...

有什么设施查我媳妇手机上的聊天记录

  29日,杭州市一男孩子本想藏快递箱给女朋友浪漫求婚送意外惊喜,不意被女朋友朋友取快递时错拆,意外惊喜差点儿给不对人。   幸亏被告方即时涌起救场。戏剧化的一幕被前台接待监管记下来。这年代,浪漫求...

与核心用户谈恋爱,做好百万用户产品运营

与核心用户谈恋爱,做好百万用户产品运营

想要做好百万用户产物运营,就是与焦点用户谈爱情:你只需要找对人,并发自心田的去爱。 岂论是网站照旧APP,当用户数累积到百万且不变增长时,拉新已然不是困难,盘子大了如何举办产物有效运营才是重点。 那么...

黑客帝国矩阵重启迅雷下载(黑客帝国矩阵重启)

黑客帝国矩阵重启迅雷下载(黑客帝国矩阵重启)

本文目录一览: 1、能发下[影视帝国黑客帝国:矩阵革命.The.Matrix.Revolutions.2003.480p.Bluray的种子或下载链接么? 2、黑客帝国3:矩阵革命高清完整版下载...

工作之余怎么赚钱?工作之余干点啥副业

工作之余怎么赚钱?工作之余干点啥副业

在越来越多的人当中,开始流行一个名为“副业刚需”的名词。似乎每一个正在工作的年轻人,都应该有一个副业。而相关的统计数据,也得到了类似的答案。某招聘网站的统计结果显示,随着年龄的不断增长,大众对于副业的...

主板品牌(台式电脑主板品牌排行榜前十名)

主板品牌(台式一体机笔记本主板品牌排行前十名)电脑主板在台式电脑主机中是较为关键的硬件配置之一,尽管它决策不上特性,可是它事关着电脑上的可靠性、扩展性,电脑主板就相当于房屋建筑的路基,其品质决策了房屋...