Map设计模式书如果数据的分布不会随时间快速变化,则只需运行一次,因为它生成的值范围将继续保持良好的性能。我无法理解该语句的含义,这是一个一般性的观察,还是在使用totalorderpartitioner时可以实现?我们是否可以要求totalorderpartitioner不要创建分区器文件,而只使用已经创建的分区器文件?使用totalorderpartitioner时基本上可以跳过分析阶段吗?
sigwle7e1#
当使用totalorderpartitioner时,它可以很容易地实现:
TotalOrderPartitioner.setPartitionFile(job.getConfiguration(), partitionFile); // use existing file!!! // InputSampler.writePartitionFile(job, sampler); // Just comment out this line!!!
TotalOrderPartitioner.setPartitionFile(job.getConfiguration(), partitionFile); // use existing file!!!
// InputSampler.writePartitionFile(job, sampler); // Just comment out this line!!!
注意,来自javadoc:公共静态void setpartitionfile(配置conf,路径p)//设置存储已排序分区键集的sequencefile的路径。对于r reduces,sequencefile中肯定有r-1键。如果您重新运行排序—如果您的数据发生了细微的变化,并且示例仍然可以很好地表示它—您可以将现有的分区文件与示例一起使用,因为inputsampler在客户机上创建分区文件的成本很高。但是您必须使用与inputsampler为其创建分区文件的作业中相同数量的缩减器。
1条答案
按热度按时间sigwle7e1#
当使用totalorderpartitioner时,它可以很容易地实现:
注意,来自javadoc:
公共静态void setpartitionfile(配置conf,路径p)
//设置存储已排序分区键集的sequencefile的路径。对于r reduces,sequencefile中肯定有r-1键。
如果您重新运行排序—如果您的数据发生了细微的变化,并且示例仍然可以很好地表示它—您可以将现有的分区文件与示例一起使用,因为inputsampler在客户机上创建分区文件的成本很高。但是您必须使用与inputsampler为其创建分区文件的作业中相同数量的缩减器。