2013-11-14 47 views
0

我正在使用hadoop map和reduce program。我需要读取多个文件,并输出到多个文件hadoop mapreduce流式传输中的多文件输出

Input \ one.txt 
     two.txt 
     three.txt 

Output \ 
     one_out.txt 
     two_out.txt 

我需要一些这样的事。我怎样才能做到这一点。

请帮我

感谢

+0

您无法控制由MR生成的文件的名称。但是,如果使用文件输入格式,则每个文件都将传递给另一个映射器,最终创建单独的输出文件,除非该文件相当大。 –

+0

@AnkurShanbhag - 好的。命名无关紧要我需要为每个I/P文件分别提供一个o/p文件 – Backtrack

回答

1
  • 如果文件大小是小,你可以简单地使用FileInputFormat,和Hadoop将在内部产生一个单独映射器任务为每个文件,这将最终为相应的输入文件生成输出文件(如果没有涉及减速器)。
  • 如果文件很大,则需要编写自定义输入格式,并指定isSplittable(false)。它将确保hadoop不会在映射器中分割文件,也不会在每个输入文件中生成多个输出文件。
+0

+1对我来说很有意义 – Backtrack