怎样建立一个一系列分布非常均匀的分区?
通过对键空间进行采样,就可较为均匀的划分数据集。采样的核心思想是只查看一小部分键,获得键的近似分布,并由此构建分区。Hadoop已经内置了若干采样器,不需要用户自己编写。
InputSampler类实现了Sampler接口,该接口唯一成员方法(getSampler)有两个输入参数(一个InputFormat对象和一个Job对象),返回一系列样本键:
public interface Sampler<K,V>{
K[] getSample(InputFormat<K,V> inf,Job job)
throws IOException,InterruptedException;
}
该接口通常不直接由客户端调用,而是由InputSampler类的静态方法writePartitionFile()调用,目的是创建一个顺序文件来存储定义分区的键。
public static