为什么IdentityMapper会在org.apache.hadoop.mapreduce库中消失?

时间:2013-10-29 18:50:12

标签: java apache hadoop mapreduce

在较旧版本的hadoop库(即org.apache.hadoop.mapred.lib)中,有一个名为IdentityMapper的Mapper的基本实现,它实际上将所有键值对传递给Reducer

但是,我发现在较新版本的hadoop库(org.apache.hadoop.mapreduce.lib)中,它 没有任何名为IdentityMapper的类(可以找到Mapper的所有子类 here)。

我可以知道IdentityMapper是更改其名称还是在新库中消失?

如果答案是第二个,我可以进一步了解IdentityMapper消失的原因吗?这是否意味着 我们可以在没有Mapper的情况下链接多个Reducers吗?

1 个答案:

答案 0 :(得分:15)

我突然意识到设计......

简短的回答是:新的Mapper是旧的IdentityMapper。

这是一个更长的答案:

在旧库中,Mapper是一个接口,其基本实现称为IdentityMapper

但是,在新库中,它不再具有映射器的基本接口。相反,它有一个名为Mapper的映射器的公共基类,其实现是以前的IdentityMapper。