gpt4 book ai didi

Hadoop API : OutputFormat for Reducer

转载 作者:可可西里 更新时间:2023-11-01 16:20:18 25 4
gpt4 key购买 nike

我对 hadoop API 完全困惑。 (猜猜它一直在变化)

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

所以我正在使用 Job 和配置类来运行 map reduce 作业。现在,我需要根据 map 输出中的某些值将 reducer 输出文件放在文件夹结构中。我浏览了几篇文章,发现可以使用 OutputFormat 类来实现这一点,但我们在两个包中都有这个类:

org.apache.hadoop.mapred and 
org.apache.hadoop.mapreduce

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

job.setOutputFormatClass(SomeOutputFormat.class);

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

还有另一种使用jobConf 的方法,但在设置映射器、缩减器、分区、排序和分组 类方面似乎也不起作用。

有什么非常明显的东西是我遗漏的吗?我想将我的 reduce 输出文件写在一个基于值的文件夹中。例如,SomeOutputPrefix/Value1/Value2/realReduceFileName

谢谢!

最佳答案

我认为你需要实现

  1. 你自己的输出格式类和
  2. 你自己的 RecordWriter,它将把不同的值写入不同的地方

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

关于Hadoop API : OutputFormat for Reducer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com