zoukankan      html  css  js  c++  java
  • MapReducer随笔小记

    小结排序:
    1、如果只需要对数据进行过滤,筛选只需要编写Mapper类,不需要Reduce类,此时在Driver中要执行下面一条语句
    Job。setNumReduceTask(0);
    2、如果需要对数据集进行分组(group by)、排序(order by)、表连接(join)、排重(distinct)等操作,则
    需要编写Reduce类,因为这些操作都是基于MapTask的输出建(Key)来完成

    3、如果既有分组又有派讯则只能使用两个MapReduce作业来完成,因为分组和排序会涉及到两次Shuffle过程

    分组和排序的本质为?
    分组是基于排序来完成的,也就是说分组之前已经经过了排序,从MapTask到ReduceTask的Shuffle过程所使用的默
    认排序是升序,排序就是比较值的大小:
    ------------------
    数字类型:直接根据数值大小进行比较
    字符串类型:根据字典序列(ASCII码值大小)进行排序


    MapTask本地数据统计:Combiner---
    -------------使用卡宾类需要注意问题:
    1、卡宾类与普通的Reducer类都是一样的,继承与Reducer类
    2、卡宾类的统计算法对于ReduceTask而言必须具有可拆解性,否则不能使用卡宾
    3、如果卡宾类的算法与Reducer的算法是完全一致的,则可直接将编写的Reducer类作为卡宾类使用
    wcJob.setCombinerClass(WordCountReducer.class);

    Hadoop中的分布式缓存:分发在磁盘上,spark

  • 相关阅读:
    字符串的全排列

    链表
    青蛙跳一格或者两格,n格跳法
    二叉树
    Concurrent实现原理
    sql语句总结 (转) http://blog.csdn.net/fengfeng91/article/details/15029173
    ArrayList实现原理
    java虚拟机 内存分配
    【转】关于Quartus ii无法识别Modelsim路径的问题
  • 原文地址:https://www.cnblogs.com/pandazhao/p/8044269.html
Copyright © 2011-2022 走看看