0

我使用的是在这里下载的 Hadoop 版本 0.22.0 。我开始根据教程创建自定义映射器和化简器,发现Mapper<K1, V1, K2, V2>所有映射器类要实现的接口已被弃用。Reducer<K2, V2, K3, V3>旨在由所有 reducer 实现的接口(至少根据教程)也已弃用。和之类的类MapReduceBase也是如此JobConf。这些都是所有自定义映射器和化简器都需要的核心类和接口,不是吗?javadoc 中没有说明应该使用什么来替代那些已弃用的类。

那么我应该使用哪些接口和类来代替那些已弃用的接口和类呢?还是我应该使用它们?为什么它们被弃用?请向我解释发生了什么以及我应该怎么做,因为我不明白。

4

2 回答 2

1

org.apache.hadoop.mapred包中的类来自旧 MR API, org.apache.hadoop.mapreduce来自新 API。请注意,所有类都没有从旧 API 移植到新 API。这是来自 SO的类似线程。

于 2012-10-31T14:23:56.523 回答
0

Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT>包中有一个同名的类(不是接口!)org.apache.hadoop.mapreduce,应该使用它来代替接口和基类。与 reducer 相同的故事:Reducer<KEYIN, VALUEIN, KEYOUT, VALUEOUT>package 中有一个类org.apache.hadoop.mapreduce

我仍然不知道该怎么做,JobConf但是当我发现时我会更新我的答案。


编辑:将使用 ClassConfiguration而不是JobConf.

于 2012-10-31T14:13:34.420 回答