hadoop全序划分的分析阶段

zyfwsgd6  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(408)

Map设计模式书
如果数据的分布不会随时间快速变化,则只需运行一次,因为它生成的值范围将继续保持良好的性能。
我无法理解该语句的含义,这是一个一般性的观察,还是在使用totalorderpartitioner时可以实现?
我们是否可以要求totalorderpartitioner不要创建分区器文件,而只使用已经创建的分区器文件?
使用totalorderpartitioner时基本上可以跳过分析阶段吗?

sigwle7e

sigwle7e1#

当使用totalorderpartitioner时,它可以很容易地实现:

  1. TotalOrderPartitioner.setPartitionFile(job.getConfiguration(), partitionFile); // use existing file!!!
  2. // InputSampler.writePartitionFile(job, sampler); // Just comment out this line!!!

注意,来自javadoc:
公共静态void setpartitionfile(配置conf,路径p)
//设置存储已排序分区键集的sequencefile的路径。对于r reduces,sequencefile中肯定有r-1键。
如果您重新运行排序—如果您的数据发生了细微的变化,并且示例仍然可以很好地表示它—您可以将现有的分区文件与示例一起使用,因为inputsampler在客户机上创建分区文件的成本很高。但是您必须使用与inputsampler为其创建分区文件的作业中相同数量的缩减器。

相关问题