我正在研究hadoop中的totalorderpartioner,我还不能完全理解如何以及在何处创建分区文件。
到目前为止我的理解是
inputsampler.sampler sampler=新inputsampler.randomsampler(0.110000);inputsampler.writepartitionfile(作业,采样器);
如果我使用适当的输入和输出路径配置作业对象,并使用独立程序运行它,它应该为输出路径上的分区文件创建。
创建此分区文件的处理将在客户机上进行,因此用于创建此文件的示例和拆分将从各个数据节点流式传输到客户机上,然后进行排序,然后创建分区文件。
完成后,我将能够使用这个分区文件作为totalorderpartitioner的输入,用于其他各种作业,这些作业使用与生成这个分区文件的输入源类似的输入源
有人能证实我的理解吗?
1条答案
按热度按时间puruo6ea1#
在实现mapreduce作业时,至少有一个Map器、一个reducer和一个类来配置和执行该作业。就是在最后一个类中,您放入了创建splits文件(即分区文件)的代码。
该类中的逻辑:
使用Map器和缩减器以及其他属性配置作业,然后
创建分区文件,最后
提交作业以执行
这种方法使分区文件的创建成为整个流程的一部分,并使作业提交保持一步操作。