hadoop输出内容到不同的文件

实现将不同的内容输出到不同的文件,使用Partitioner

自定义的Partitioner
1、为何使用Partitioner,主要是想reduce的结果能够根据key再次分类输出到不同的文件夹中。
2、结果能够直观,同时做到对数据结果的简单的统计分析

1、Partitioner是partitioner的基类,如果需要定制partitioner也需要继承该类。
2、HashPartitioner是mapreduce的默认partitioner。计算方法是:
which reduce=(key.hashCode() & Integer.MAX_VALUE) % numReduceTasks。等到当前的目的reduce.
3、BinaryPatitioner继承于Partitioner<BinaryComparable,V>,是Partitioner的偏特化子类,该类
提供leftOffset和rightOffset,在计算which reducer时仅对键值K的[rightOffset,leftOffset]这个区间取hash。

4、KeyFieldBasedPartitioner也是基于hash的个partitioner,和BinaryPatitioner不同,它提供了
多个区间用于计算hash。当区间数为0时keyFieldBasedPartitioner退化成HashPartitioner.

猜你喜欢

转载自501565246-qq-com.iteye.com/blog/2044041
今日推荐