map.input.file环境参数具有映射器正在处理的文件名。在映射器中获取此值,并将其用作映射器的输出键,然后将单个文件中的所有k /
v转到一个化简器。
映射器中的代码。顺便说一句,我正在使用旧的MR API
@Overridepublic void configure(JobConf conf) { this.conf = conf;}@Override.public void map(................) throws IOException { String filename = conf.get("map.input.file"); output.collect(new Text(filename), value);}并使用MultipleOutputFormat,这允许为作业编写多个输出文件。文件名可以从输出键和值派生。



