我完全对 hadoop API 感到困惑。(猜它一直在变化)
如果我没记错JobConf
的话,deprecated
我们应该使用Job
and Configuration
classes 来从 java 运行 map reduce 作业。似乎在最近发布的版本hadoop 1.0.0
JobConf
中不再被弃用!
所以我正在使用 Job 和配置类来运行 map reduce 作业。现在,我需要根据我的地图输出中的某些值将减速器输出文件放在文件夹结构中。我浏览了几篇文章,发现可以使用OutputFormat
Class 来实现这一点,但我们在两个包中都有这个类:
org.apache.hadoop.mapred and
org.apache.hadoop.mapreduce
在我们的job
对象中,我们可以将输出格式类设置为:
job.setOutputFormatClass(SomeOutputFormat.class);
现在,如果SomeOutputFormat
extends
说org.apache.hadoop.mapreduce.lib.output.FileOutputFormat
,我们得到一个名为getRecordWriter();
this 的方法,它对覆盖输出路径没有任何帮助。
还有另一种使用方法,但在设置类jobConf
方面似乎又不起作用。mappers, reducers, partitions, sorting and grouping
有什么很明显的我想念的吗?我想将我的 reduce 输出文件写入一个基于值的文件夹中。例如,SomeOutputPrefix/Value1/Value2/realReduceFileName
谢谢!