首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop API: Reducer的OutputFormat

Hadoop API: Reducer的OutputFormat
EN

Stack Overflow用户
提问于 2012-02-11 02:09:10
回答 1查看 3K关注 0票数 1

我完全搞不懂hadoop API。(我猜它一直在变化)

如果我没记错的话,JobConfdeprecated,我们应该使用JobConfiguration类来运行java中的map reduce作业。不过,在最近发布的hadoop 1.0.0中,JobConf似乎不再被弃用!

因此,我使用job和configuration类来运行map reduce作业。现在,我需要将reducers输出文件放在一个基于某些值的文件夹结构中,这些值是我地图输出的一部分。我浏览了几篇文章,发现可以使用OutputFormat类来实现这一点,但是我们将这个类放在两个包中:

代码语言:javascript
复制
org.apache.hadoop.mapred and 
org.apache.hadoop.mapreduce 

在我们的job对象中,我们可以将输出格式类设置为:

代码语言:javascript
复制
job.setOutputFormatClass(SomeOutputFormat.class);

现在,如果SomeOutputFormat extendsorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat,我们得到一个名为getRecordWriter();的方法,这对覆盖输出路径没有任何帮助。

还有另一种使用jobConf的方法,但在设置mappers, reducers, partitions, sorting and grouping类方面似乎同样行不通。

我有没有明显的遗漏了什么?我想把我的reduce输出文件写在一个基于值的文件夹中。例如,SomeOutputPrefix/Value1/Value2/realReduceFileName

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-11 23:14:02

我认为你需要实现

  1. 您自己的输出格式类和
  2. 您自己的RecordWriter,这将把不同的值写入不同的位置

因此,您的SomeOutputWriter将在其getRecordWriter()方法中返回new SomeRecordWriter("SomeOutputPrefix"),并且SomeRecordWriter将把不同的值写入不同的文件夹。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9232622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档