Hadoop:使用什么而不是弃用的接口Mapper和Reducer?

时间:2012-10-31 13:45:05

标签: java hadoop mapreduce version deprecated

我正在使用Hadoop版本0.22.0下载here。我开始根据this教程创建自定义映射器和reducer,并发现不推荐使用所有映射器类实现的接口Mapper<K1, V1, K2, V2>。所有Reducer(至少根据the tutorial)实现的接口Reducer<K2, V2, K3, V3>也已弃用。类似于MapReduceBaseJobConf的类也是如此。这些都是所有自定义映射器和缩减器所需的核心类和接口,不是吗?在javadoc中没有任何注释应该用什么来代替那些已弃用的类。

那么我应该使用哪些接口和类而不是那些被弃用的接口和类?或者我应该使用它们吗?他们为什么弃用?请告诉我发生了什么,我应该怎么做,因为我没有得到它。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

我仍然不知道如何处理JobConf等等,但是当我发现时,我会更新我的答案。


修改:将使用班级Configuration代替JobConf