Map Reduce Design Patterns Book
如果您的数据分布不会随着时间的推移而快速变化,则只需运行一次,因为它产生的值范围将继续良好运行。
我无法理解声明的含义,这是一般观察还是在使用TotalOrderPartitioner时实际可以实现?
我们能否以某种方式要求TotalOrderPartitioner不创建分区文件并仅使用已创建的文件?
使用TotalOrderPartitioner时,我基本上可以跳过分析阶段吗?
答案 0 :(得分:1)
使用TotalOrderPartitioner时可以轻松实现:
TotalOrderPartitioner.setPartitionFile(job.getConfiguration(), partitionFile); // use existing file!!!
// InputSampler.writePartitionFile(job, sampler); // Just comment out this line!!!
请注意,来自javadoc:
public static void setPartitionFile(Configuration conf, 路径p)
//设置存储已排序分区键集的SequenceFile的路径。 必须是这样的情况,对于R减少,SequenceFile中有R-1个键。
如果重新运行排序 - 如果数据稍有变化并且样本仍然可以很好地表示它 - 您可以将现有分区文件与样本一起使用,因为InputSampler在客户端上的创建是昂贵的。但您必须使用相同数量的Reducers,就像您在InputSampler创建分区文件的作业中使用的那样。