Hadoop 如何生成自定义输出文件名?

Hadoop 如何生成自定义输出文件名?,hadoop,Hadoop,我对输出文件名的生成有疑问。我使用的是Hadoop-0.19.2,在输入文件夹中有两个输入文件(/data/inp/20111203_12345,/data/inp/20111204_12345),我想生成相应的输出文件夹(/data/out/20111203_12345/part-0000X,/data/out/20111204_12345/part-0000X) Map Reduce程序只被调用一次。由于输入和输出文件之间存在1对1的映射,因此可以假定输入文件之间没有数据合并 1) 在映射器

我对输出文件名的生成有疑问。我使用的是Hadoop-0.19.2,在输入文件夹中有两个输入文件(/data/inp/20111203_12345,/data/inp/20111204_12345),我想生成相应的输出文件夹(/data/out/20111203_12345/part-0000X,/data/out/20111204_12345/part-0000X)


Map Reduce程序只被调用一次。

由于输入和输出文件之间存在1对1的映射,因此可以假定输入文件之间没有数据合并

1) 在映射器中,执行一些处理并将KV对作为文件路径/值输出。然后,特定文件的所有数据都将转到单个映射器。在映射程序中,实现以下操作以获取文件路径

void configure(JobConf conf) {
    filePath = conf.get("map.input.file");
}
请注意,filePath包含输入文件名,包括目录

2) 允许将数据写入多个文件,并且输出文件名可以从输出对派生。reducer的键是输入文件目录和名称,可用于派生输出文件名


使用上述方法,如果输入文件很大,则reducer可能是一个瓶颈,因为每个reducer将处理单个文件中的数据。我想不出更好的方法:)

你的问题是什么。。。?它是如何涉及编程的?