java - hadoop中的分区文件是如何创建的

标签 java hadoop mapreduce

我正在研究来自 Hadoop 的 TotalOrderPartioner,但我不太了解分区文件的创建方式和位置。

目前我的理解是

InputSampler.Sampler sampler = new InputSampler.RandomSampler(0.1,10000); InputSampler.writePartitionFile(job, sampler);

如果我使用适当的输入和输出路径配置作业对象并使用独立程序运行它,它应该在输出路径上创建一个分区文件。

创建此分区文件的过程将在客户端机器上进行,因此用于创建此文件的样本和拆分将从各种数据节点流式传输到客户端机器上,然后进行排序,然后创建分区文件.

完成此操作后,我将能够使用此分区文件作为 TotalOrderPartitioner 的输入,用于各种其他作业,这些作业使用与用于生成此分区文件的输入源类似的输入源

有人可以确认我的理解吗?

最佳答案

当您实现一个 mapReduce 作业时,至少有一个 Mapper、一个 Reducer 和一个配置和执行该作业的类。在最后一个类中,您放置了创建拆分文件(即分区文件)的代码。

这个类的逻辑:

  • 使用 mapper 和 reducer 以及其他属性配置作业,然后
  • 创建分区文件,最后
  • 提交作业执行

这种方法使分区文件的创建成为整个流程的一部分,并使作业提交成为一步操作。

关于java - hadoop中的分区文件是如何创建的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21995069/

相关文章:

java - JAVA中计算所有小于或等于N的数字的乘法表的程序

java - 我怎样才能用java正则表达式修复这个结果?

hadoop - Dumbo mapreduce for hadoop

apache - Hadoop 2.6.0无法在WordCount示例中 reduce task 数量

java - 在hadoop编程中,分区,比较在哪里?

java - Reducer 将 Mapper 输出写入输出文件

java - 在 Android 中接收用户输入然后继续执行的正确方法

java - 以编程方式创建 IMAP/POP3 帐户

sql - 如何查看hive变量的计算值

hadoop - YARN无法使用嵌入式HBase