Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hadoop中的分区文件是如何创建的_Java_Hadoop_Mapreduce - Fatal编程技术网

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

Java hadoop中的分区文件是如何创建的,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我正在研究Hadoop中的TotalOrderPartitioner,但我还不能完全理解如何以及在何处创建分区文件 到目前为止,我的理解是 输入采样器。采样器采样器=新输入采样器。随机采样器(0.110000); InputSampler.writePartitionFile(作业,采样器) 如果我使用适当的输入和输出路径配置作业对象,并使用独立程序运行它,那么它应该在输出路径上创建分区文件 创建此分区文件的处理将在客户机上进行,因此用于创建此文件的样本和拆分将从各个数据节点流式传输到客户机上,

我正在研究Hadoop中的TotalOrderPartitioner,但我还不能完全理解如何以及在何处创建分区文件

到目前为止,我的理解是

输入采样器。采样器采样器=新输入采样器。随机采样器(0.110000); InputSampler.writePartitionFile(作业,采样器)

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

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

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


有人能确认我的理解吗?

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

此类中的逻辑:

  • 使用映射器、还原器和其他属性配置作业,然后
  • 创建分区文件并最终
  • 提交作业以执行

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

我同意,让我们把这个类命名为“驱动程序类”,然而我想问的是,这个代码是在哪里执行的,它是在客户机上吗?因此,整个采样代码以及生成分区文件的代码也将在客户机上执行。。。这是我的理解。。。我想看看这是否合理。很抱歉是的,它位于运行作业配置类的计算机上,该类通常是客户端。你说得对