在较旧版本的hadoop库(即org.apache.hadoop.mapred.lib)中,有一个名为IdentityMapper的Mapper的基本实现,它实际上将所有键值对传递给Reducer
但是,我发现在较新版本的hadoop库(org.apache.hadoop.mapreduce.lib)中,它 没有任何名为IdentityMapper的类(可以找到Mapper的所有子类 here)。
我可以知道IdentityMapper是更改其名称还是在新库中消失?
如果答案是第二个,我可以进一步了解IdentityMapper消失的原因吗?这是否意味着 我们可以在没有Mapper的情况下链接多个Reducers吗?
答案 0 :(得分:15)
我突然意识到设计......
简短的回答是:新的Mapper是旧的IdentityMapper。
这是一个更长的答案:
在旧库中,Mapper是一个接口,其基本实现称为IdentityMapper。
但是,在新库中,它不再具有映射器的基本接口。相反,它有一个名为Mapper的映射器的公共基类,其实现是以前的IdentityMapper。