zoukankan      html  css  js  c++  java
  • MapReduce程序开发

    1、Demo:WordCount单词计数
    /root/training/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar

    	 执行:
    	 hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /input/data.txt /output/mr/wc1213
    
         分析WordCount程序数据处理的过程(非常重要)
    

    2、开发自己的WordCount程序
    需要包含的jar:
    /root/training/hadoop-2.7.3/share/hadoop/common
    /root/training/hadoop-2.7.3/share/hadoop/common/lib

       /root/training/hadoop-2.7.3/share/hadoop/mapreduce
       /root/training/hadoop-2.7.3/share/hadoop/mapreduce/lib
    

    再举一个例子:开发一个MapReduce:求每个部门的工资总额
    数据:员工表
    SQL> select deptno,sum(sal) from emp group by deptno order by deptno;

    				DEPTNO   SUM(SAL)
    			---------- ----------
    					10       8750
    					20      10875
    					30       9400
    

    3、MapReduce的一些高级特性
    (1)序列化:类似Java的序列化
    如果一个类实现了的Hadoop的序列化机制(接口:Writable),这个类的对象就可以作为输入和输出的值
    举例1:使用Employee类来封装员工信息,并且作为Map和Reduce的输入和输出

    			一定注意:序列化的顺序和反序列化的顺序要一致
    			
    			举例2:使用序列化Employee重写  求每个部门的工资总额
    
    
    
    (2)排序:注意:按照key2进行排序
    
               默认排序:数字     升序
                         字符串   字典顺序
    					 对象的排序:按照员工的薪水排序
    					 
    		   如果要改变默认的排序规则,需要创建一个自己的比较器
    					 
    (3)分区:Partition,默认情况下,MapReduce只有一个分区,意思是:只有一个输出文件
    (4)合并:Combiner,在Mapper端,先做一次Reducer,用于减少输出到Reducer中的数据,从而提高效率
    (5)MapReduce的核心:Shuffle(洗牌)
  • 相关阅读:
    HDU 1010 Tempter of the Bone(DFS剪枝)
    HDU 1013 Digital Roots(九余数定理)
    HDU 2680 Choose the best route(反向建图最短路)
    HDU 1596 find the safest road(最短路)
    HDU 2072 单词数
    HDU 3790 最短路径问题 (dijkstra)
    HDU 1018 Big Number
    HDU 1042 N!
    NYOJ 117 求逆序数 (树状数组)
    20.QT文本文件读写
  • 原文地址:https://www.cnblogs.com/notes-study/p/8435731.html
Copyright © 2011-2022 走看看