五 数据组织模式 3) 分箱 & 代码

分箱目的:
        将数据集中的每条记录都归档到一个 或 多个文件中

分箱与分区:
        分享模式与分区模式很类似。 主要区别在于 分箱使用 Map 构建 而 分区需要用到 MapReduce 进行分区。
        分箱好处是减少 reduce 阶段的工作量
结构:
        Map阶段重写 setup方法。使用了 MultipleOutput 类, 通过该类将作业输出到多个不同的文件中。
        对每条记录遍历每个分箱的条件。如果符合就会发送到该箱。
        该模式未用到 combiner、partitioner、 reduce。
性能分析:
        和其他只有 map 任务的作业一样,该模式具有相同的可扩展性和性能特性,该模式不需要执行排序、混排及reduce,并且大部分都是在本地数据上执行。


关键代码:
  1. jar包:
  2. import org.apache.hadoop.mapreduce.lib.output.MultipleOutputs;
  3. 重写 map 类的 setup方法。 MultipleOutputs 对象赋值。
  4. @Override
  5. public void setup(Context context) throws IOException, InterruptedException {
  6. 最后就是 mos 对象的各种输出分箱。 至此 结束





posted @ 2016-04-19 13:57  rocky_24  阅读(321)  评论(0编辑  收藏  举报
希望祖国繁荣,富强! God has given me a gift. Only one. I am the most complete fighter in the world. My whole life, I have trained. I must prove I am worthy of someting. rocky_24