Java 仅映射作业顺序

Java 仅映射作业顺序,java,csv,hadoop,mapreduce,Java,Csv,Hadoop,Mapreduce,我有一个csv文件。假设它有两个分割,即一个块将由第一个map()任务处理,另一个块将由第二个map()任务处理 在给定的csv中,我将“0”替换为false,将“1”替换为true。因此,我将为此编写一份仅限于地图的工作。作业完成后,我会得到与结果相同的输入文件顺序吗?映射作业完成后,shuffle和sort 有没有办法获得与结果相同的输入文件顺序?您可以执行job.setNumReduceTasks(0)。这样,shuffle和sort就不会发生 但是,输出文件的数量与映射任务的数量相同(本

我有一个
csv
文件。假设它有两个分割,即一个块将由第一个
map()
任务处理,另一个块将由第二个
map()
任务处理

在给定的csv中,我将“0”替换为
false
,将“1”替换为
true
。因此,我将为此编写一份仅限于地图的工作。作业完成后,我会得到与结果相同的输入文件顺序吗?映射作业完成后,
shuffle
sort


有没有办法获得与结果相同的输入文件顺序?

您可以执行
job.setNumReduceTasks(0)。这样,
shuffle
sort
就不会发生


但是,输出文件的数量与映射任务的数量相同(本例中为2个)。如果你把它们连接起来,你会得到你想要的。这可能无关紧要,因为在大多数情况下,Hadoop允许您在需要文件的任何位置提供文件夹。

您可以执行
作业。setNumReduceTasks(0)。这样,
shuffle
sort
就不会发生


但是,输出文件的数量与映射任务的数量相同(本例中为2个)。如果你把它们连接起来,你会得到你想要的。这可能无关紧要,因为在大多数情况下,Hadoop允许您在需要文件的任何位置提供文件夹。

您可以执行
作业。setNumReduceTasks(0)。这样,
shuffle
sort
就不会发生


但是,输出文件的数量与映射任务的数量相同(本例中为2个)。如果你把它们连接起来,你会得到你想要的。这可能无关紧要,因为在大多数情况下,Hadoop允许您在需要文件的任何位置提供文件夹。

您可以执行
作业。setNumReduceTasks(0)。这样,
shuffle
sort
就不会发生



但是,输出文件的数量与映射任务的数量相同(本例中为2个)。如果你把它们连接起来,你会得到你想要的。这可能无关紧要,因为在大多数情况下,Hadoop允许您在需要文件的任何位置提供一个文件夹。

所以我们需要连接文件?我们不会将每个文件都连接到同一个零件文件中?您不会将每个文件都连接到同一个零件文件中。每个映射任务都会生成一个零件文件。那么我是否能够在map()函数中将结果连接到它自己?在map函数中不能这样做。每个分割都将转到不同的映射任务,并且您无法在映射阶段进行通信。你为什么在乎?如果输出将转到其他map reduce作业,则可以提供输出文件夹作为其输入。如果没有,可以使用
cat
将它们连接起来。在这种情况下,Hadoop在性能方面对您没有帮助。使用单个映射器处理整个csv文件的最简单方法是重写FileInputFormat的isSplitable方法并将其设置为返回false,当您这样做时,整个文件将由mapper实例处理,如果您也将reducer设置为0,则行的输出顺序将与输入完全相同。因此,我们需要连接该文件?我们不会将每个行都连接到同一个零件文件中?您不会将每个行都连接到同一个零件文件中。每个映射任务都会生成一个零件文件。那么我是否能够在map()函数中将结果连接到它自己?在map函数中不能这样做。每个分割都将转到不同的映射任务,并且您无法在映射阶段进行通信。你为什么在乎?如果输出将转到其他map reduce作业,则可以提供输出文件夹作为其输入。如果没有,可以使用
cat
将它们连接起来。在这种情况下,Hadoop在性能方面对您没有帮助。使用单个映射器处理整个csv文件的最简单方法是重写FileInputFormat的isSplitable方法并将其设置为返回false,当您这样做时,整个文件将由mapper实例处理,如果您也将reducer设置为0,则行的输出顺序将与输入完全相同。因此,我们需要连接该文件?我们不会将每个行都连接到同一个零件文件中?您不会将每个行都连接到同一个零件文件中。每个映射任务都会生成一个零件文件。那么我是否能够在map()函数中将结果连接到它自己?在map函数中不能这样做。每个分割都将转到不同的映射任务,并且您无法在映射阶段进行通信。你为什么在乎?如果输出将转到其他map reduce作业,则可以提供输出文件夹作为其输入。如果没有,可以使用
cat
将它们连接起来。在这种情况下,Hadoop在性能方面对您没有帮助。使用单个映射器处理整个csv文件的最简单方法是重写FileInputFormat的isSplitable方法并将其设置为返回false,当您这样做时,整个文件将由mapper实例处理,如果您也将reducer设置为0,则行的输出顺序将与输入完全相同。因此,我们需要连接该文件?我们不会将每个行都连接到同一个零件文件中?您不会将每个行都连接到同一个零件文件中。每个映射任务都会生成一个零件文件。那么我是否能够在map()函数中将结果连接到它自己?在map函数中不能这样做。每个分割都将转到不同的映射任务,并且您无法在映射阶段进行通信。你为什么在乎?如果输出将转到其他map reduce作业,则可以提供输出文件夹作为其输入。如果没有,可以使用
cat
将它们连接起来。在这种情况下,Hadoop在性能方面对您没有帮助。使用单个映射器处理整个csv文件的最简单方法是重写FileInputFormat的isSplitable方法并将其设置为返回false,当您这样做时,整个文件由mapper实例处理,若您也将reducer设置为0,那个么行的输出顺序将和输入完全相同。