当前位置: 首页 > news >正文

福州市网站建设_网站建设公司_服务器部署_seo优化

怎么样建网站啊,wordpress 双分页,如何推广中国文化,网站建设技术支持方案一、排序分组概述 MapReduce中排序和分组在哪里被执行 第3步中需要对不同分区中的数据进行排序和分组#xff0c;默认情况按照key进行排序和分组 二、排序 在Hadoop默认的排序算法中#xff0c;只会针对key值进行排序 任务#xff1a; 数据文件中#xff0c;如果按照第一…一、排序分组概述 MapReduce中排序和分组在哪里被执行 第3步中需要对不同分区中的数据进行排序和分组默认情况按照key进行排序和分组 二、排序 在Hadoop默认的排序算法中只会针对key值进行排序 任务 数据文件中如果按照第一列升序排列 当第一列相同时第二列升序排列 如果当第一列相同时求出第二列的最小值 自定义排序 1.封装一个自定义类型作为key的新类型将第一列与第二列都作为key WritableComparable接口 定义 public interface WritableComparableT extends Writable, ComparableT { } 自定义类型MyNewKey实现了WritableComparable的接口该接口中有一个compareTo()方法当对key进行比较时会调用该方法而我们将其改为了我们自己定义的比较规则从而实现我们想要的效果   private static class MyNewKey implements WritableComparableMyNewKey {long firstNum;long secondNum;public MyNewKey() {}public MyNewKey(long first, long second) {firstNum first;secondNum second;}Overridepublic void write(DataOutput out) throws IOException {out.writeLong(firstNum);out.writeLong(secondNum);}Overridepublic void readFields(DataInput in) throws IOException {firstNum in.readLong();secondNum in.readLong();}/** 当key进行排序时会调用以下这个compreTo方法*/Overridepublic int compareTo(MyNewKey anotherKey) {long min firstNum - anotherKey.firstNum;if (min ! 0) {// 说明第一列不相等则返回两数之间小的数return (int) min;} else {return (int) (secondNum - anotherKey.secondNum);}}} 2.改写最初的MapReduce方法函数 public static class MyMapper extendsMapperLongWritable, Text, MyNewKey, LongWritable {protected void map(LongWritable key,Text value,MapperLongWritable, Text, MyNewKey, LongWritable.Context context)throws java.io.IOException, InterruptedException {String[] spilted value.toString().split(\t);long firstNum Long.parseLong(spilted[0]);long secondNum Long.parseLong(spilted[1]);// 使用新的类型作为key参与排序MyNewKey newKey new MyNewKey(firstNum, secondNum);context.write(newKey, new LongWritable(secondNum));};} public static class MyReducer extendsReducerMyNewKey, LongWritable, LongWritable, LongWritable {protected void reduce(MyNewKey key,java.lang.IterableLongWritable values,ReducerMyNewKey, LongWritable, LongWritable, LongWritable.Context context)throws java.io.IOException, InterruptedException {context.write(new LongWritable(key.firstNum), new LongWritable(key.secondNum));};}三、分组 在Hadoop中的默认分组规则中也是基于Key进行的会将相同key的value放到一个集合中去 目的求出第一列相同时第二列的最小值 上面的例子看分组因为我们自定义了一个新的key它是以两列数据作为key的因此这6行数据中每个key都不相同产生6组 它们是1 1,2 1,2 2,3 1,3 2,3 3。 而实际上只可以分为3组分别是123。现在首先改写一下reduce函数代码 public static class MyReducer extendsReducerMyNewKey, LongWritable, LongWritable, LongWritable {protected void reduce(MyNewKey key,java.lang.IterableLongWritable values,ReducerMyNewKey, LongWritable, LongWritable, LongWritable.Context context)throws java.io.IOException, InterruptedException {long min Long.MAX_VALUE;for (LongWritable number : values) {long temp number.get();if (temp min) {min temp;}}context.write(new LongWritable(key.firstNum), new LongWritable(min));};} 自定义分组 为了针对新的key类型作分组我们也需要自定义一下分组规则 private static class MyGroupingComparator implementsRawComparatorMyNewKey {/** 基本分组规则按第一列firstNum进行分组*/Overridepublic int compare(MyNewKey key1, MyNewKey key2) {return (int) (key1.firstNum - key2.firstNum);}/** param b1 表示第一个参与比较的字节数组* * param s1 表示第一个参与比较的字节数组的起始位置* * param l1 表示第一个参与比较的字节数组的偏移量* * param b2 表示第二个参与比较的字节数组* * param s2 表示第二个参与比较的字节数组的起始位置* * param l2 表示第二个参与比较的字节数组的偏移量*/Overridepublic int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) {return WritableComparator.compareBytes(b1, s1, 8, b2, s2, 8);}} 自定义了一个分组比较器MyGroupingComparator该类实现了RawComparator接口而RawComparator接口又实现了Comparator接口这两个接口的定义 public interface RawComparatorT extends ComparatorT {public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2); } public interface ComparatorT {int compare(T o1, T o2);boolean equals(Object obj); } 分组实现步骤 1.MyGroupingComparator实现这两个接口 RawComparator中的compare()方法是基于字节的比较 Comparator中的compare()方法是基于对象的比较 由于在MyNewKey中有两个long类型每个long类型又占8个字节。这里因为比较的是第一列数字所以读取的偏移量为8字节。 2.添加对分组规则的设置   // 设置自定义分组规则    job.setGroupingComparatorClass(MyGroupingComparator.class); 3. 运行结果
http://www.lebaoying.cn/news/82973.html

相关文章:

  • 深圳做网站多少费用营销型网站深度网
  • 南沙网站建设公司网站怎么收费的
  • wordpress 电影模版百度seo优化教程
  • 福州企业网站建站系统建设企业网站
  • 自己买服务器建设网站购物网站排版设计
  • 佛山网站建设收费标准深圳市易百讯科技有限公司
  • 厦门网站设计建湖做网站哪家好
  • 网站流量依赖率温州专业做网站
  • 企业如何在自己的网站上做宣传网站建设前景怎么样
  • 网站建设最快多长时间wordpress制作表单
  • 织梦做的网站首页被篡改常州网站建设 光龙
  • 文本怎样做阅读链接网站选择热门网站做推广的原因
  • 青州哪里做网站怎么添加网站备案号
  • 苏州建网站的公司一站式服务福建西南建设有限公司网站
  • 做农村网站多少钱海东高端网站建设公司
  • 国外优质网站网站页面好了怎么做后端
  • 网站建设总体情况网站建设辶金手指排名十一
  • 上海网站制作与推广旅游村庄网站建设方案
  • 网站怎么做关键词怎么优化石家庄工程职业学院
  • 网站视频上传怎么做能答题做试卷的网站
  • 简单大气的企业网站wap手机
  • 网站首页不见怎么做wordpress 腾讯cos
  • 超全的开源建站系统大全做写字楼租赁用什么网站好
  • 域名连接到网站高端网站开发哪家强
  • 婚庆网站设计做企业网站的步骤
  • 温州手机网站建设网站开发程序开发
  • 图片展示网站建设wordpress教程安装教程
  • 北京网站优化网站内容上传要求
  • 新的房地产网站怎么做SEOwordpress评论输入框
  • 建设一个手机网站深汕特别合作区属于哪个区