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

kee*_*lar 3 java apache hadoop mapreduce

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

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

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

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

kee*_*lar 15

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

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

这是一个更长的答案:

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

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