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