zoukankan      html  css  js  c++  java
  • MapReduce的排序与分区

    一、排序:按照key2进行排序
    1、数字的排序
    2、字符串的排序
    3、对象的排序: 实现WritableComparable接口 (1)序列化 (2)可被排序

        员工数据 Employee.java  ----> 作为key2输出
    	复习SQL:order by 后面 +  列名、表达式、别名、序号  desc
    	         desc 只作用于离他最近的一个列
    			      order by a desc,b desc
    				  
    	(1)一个列的排序
    	(2)多个列的排序
    

    二、分区:Partition: 根据Map的输出(k2 v2)进行分区
    1、默认情况下,MapReduce只有一个分区(只有一个输出文件)
    2、什么是分区?(重要)
    3、举例:Demo: 按照员工的部门号进行分区,相同部门号的员工输出到一个分区中
    日志:
    17/12/18 21:47:24 INFO mapreduce.Job: map 100% reduce 0%
    17/12/18 21:47:49 INFO mapreduce.Job: map 100% reduce 33%
    17/12/18 21:47:55 INFO mapreduce.Job: map 100% reduce 67%
    17/12/18 21:47:56 INFO mapreduce.Job: map 100% reduce 100%

    三、合并:Combiner
    1、MapReduce的任务中,可以没有Combiner
    2、Combiner是一种特殊的Reducer,是在Mapper端先做一次Reducer,用来减少Map的输出,从而提高的效率。
    3、注意事项:
    (1)有些情况,不能使用Combiner -----> 求平均值

    	(2)引入Combiner,不引人Combiner,一定不能改变原理的逻辑。(MapReduce编程案例:实现倒排索引)
    
    错误:
    Error: java.io.IOException: wrong value class: class org.apache.hadoop.io.DoubleWritable is not class org.apache.hadoop.io.IntWritable
  • 相关阅读:
    使用批处理bat作为日期系统日期的前三天
    电脑桌面显示倒退
    BZOJ 2648/2716(SJY把件-KD_Tree)[Template:KD_Tree]
    yii使用寻呼功能
    宝付额度
    vs2010旗舰版产品密钥
    考察网贷平台是否正规,仅供参考。
    sql server 修改字段大小
    帕累托分析法
    帕累托分析法(Pareto Analysis)(柏拉图分析)
  • 原文地址:https://www.cnblogs.com/notes-study/p/8435742.html
Copyright © 2011-2022 走看看