将数据集中的每条记录都归档到一个 或 多个文件中。
分箱与分区:
分享模式与分区模式很类似。 主要区别在于 分箱
使用 Map 构建
而 分区需要用到 MapReduce 进行分区。
分箱好处是减少 reduce 阶段的工作量
结构:
Map阶段重写 setup方法。使用了 MultipleOutput 类, 通过该类将作业输出到多个不同的文件中。
对每条记录遍历每个分箱的条件。如果符合就会发送到该箱。
该模式未用到 combiner、partitioner、 reduce。
性能分析:
和其他只有 map 任务的作业一样,该模式具有相同的可扩展性和性能特性,该模式不需要执行排序、混排及reduce,并且大部分都是在本地数据上执行。
关键代码:
jar包:import org.apache.hadoop.mapreduce.lib.output.MultipleOutputs;重写 map 类的 setup方法。 给 MultipleOutputs 对象赋值。 @Override public void setup(Context context) throws IOException, InterruptedException {最后就是 mos 对象的各种输出分箱。 至此 结束
本文深入探讨了分箱技术在数据集处理中的应用,详细阐述了分箱与分区的区别,以及如何利用Map阶段实现数据高效分类。通过引入MultipleOutputs类,实现数据输出到多个文件,避免了不必要的reduce阶段工作,提升了性能与可扩展性。重点分析了该模式在无需排序、混排及reduce操作的情况下,如何在本地数据上执行任务,确保了作业的高效率与稳定性。
1863

被折叠的 条评论
为什么被折叠?



