Hadoop MapReduce对多个输入文件的一对一处理

Hadoop MapReduce对多个输入文件的一对一处理,hadoop,mapreduce,Hadoop,Mapreduce,请澄清 我有一组带有特定名称的输入文件(比如10个)。我一次对所有文件运行单词计数作业(输入路径为文件夹)。我期待10个与输入文件同名的输出文件。也就是说,应统计File1输入,并将其存储在具有“File1”名称的单独输出文件中。依此类推到所有文件。有两种方法可以实现多个输出 使用MultipleOutputs类-有关multipleclassoutput()的信息,请参阅本文档;有关如何实现MultipleOutputs类的更多信息,请参阅本文档 另一个选项是使用LazyOutFormat,但

请澄清


我有一组带有特定名称的输入文件(比如10个)。我一次对所有文件运行单词计数作业(输入路径为文件夹)。我期待10个与输入文件同名的输出文件。也就是说,应统计File1输入,并将其存储在具有“File1”名称的单独输出文件中。依此类推到所有文件。

有两种方法可以实现多个输出

  • 使用MultipleOutputs类-有关multipleclassoutput()的信息,请参阅本文档;有关如何实现MultipleOutputs类的更多信息,请参阅本文档

  • 另一个选项是使用LazyOutFormat,但是,它与multipleOutput一起使用,有关其实现的更多信息,请参阅此()


  • 我觉得将LazyOutputFormat与MultipleOutputs类结合使用是更好的方法。

    有两种方法可以实现多个输出

  • 使用MultipleOutputs类-有关multipleclassoutput()的信息,请参阅本文档;有关如何实现MultipleOutputs类的更多信息,请参阅本文档

  • 另一个选项是使用LazyOutFormat,但是,它与multipleOutput一起使用,有关其实现的更多信息,请参阅此()

  • 我觉得将LazyOutputFormat与MultipleOutputs类结合使用是更好的方法

  • 将reduce任务数设置为等于输入文件数。这也将创建给定数量的输出文件

  • 为每个映射输出关键字(word)添加文件前缀。例如,当您在名为“file0.txt”的文件中遇到“cat”一词时,您可以发出“0_cat”或“file0_cat”键,或“file0.txt”的任何其他唯一键。使用上下文每次获取文件名

  • 覆盖默认分区器,以确保所有前缀为“0”或“file0”的映射输出键将转到第一个分区,所有前缀为“1”或“file1”的键将转到第二个分区,以此类推

  • 在reducer中,从输出键中删除“x_ux”或“filex_x”前缀,并将其用作输出文件的名称(使用multipleoutput)。否则,如果您不想要多个输出,您可以通过检查分区器代码轻松地在输出文件和输入文件之间进行映射。(例如,-00000部分将是分区0的输出)

  • 将reduce任务数设置为等于输入文件数。这也将创建给定数量的输出文件

  • 为每个映射输出关键字(word)添加文件前缀。例如,当您在名为“file0.txt”的文件中遇到“cat”一词时,您可以发出“0_cat”或“file0_cat”键,或“file0.txt”的任何其他唯一键。使用上下文每次获取文件名

  • 覆盖默认分区器,以确保所有前缀为“0”或“file0”的映射输出键将转到第一个分区,所有前缀为“1”或“file1”的键将转到第二个分区,以此类推

  • 在reducer中,从输出键中删除“x_ux”或“filex_x”前缀,并将其用作输出文件的名称(使用multipleoutput)。否则,如果您不想要多个输出,您可以通过检查分区器代码轻松地在输出文件和输入文件之间进行映射。(例如,-00000部分将是分区0的输出)


  • 请澄清…是否有Infile1、Infile2、…、Infile10输入文件和Outfile1、Outfile2、…、Outfile10作为输出文件。与此模式完全相同?确切要求-随机名称格式的文件-Y_XVHD_AWIFS_xxxx_20160821_124309,N_XVHG_AWIQS_xxxx_20160821_124339基于文件内容,我将在现有文件名后附加另一个字符串。我想要与输入文件名相同的文件,或者我可以根据内容更改文件名。如果我更改它,我将在现有文件名中附加一个常量字符串。请澄清…是否有Infile1、Infile2、…、Infile10输入文件和Outfile1、Outfile2、…、Outfile10作为输出文件。与此模式完全相同?确切要求-随机名称格式的文件-Y_XVHD_AWIFS_xxxx_20160821_124309,N_XVHG_AWIQS_xxxx_20160821_124339基于文件内容,我将在现有文件名后附加另一个字符串。我想要与输入文件名相同的文件,或者我可以根据内容更改文件名。如果我更改它,我将在文件名中附加一个常量字符串。