在旧版本的 hadoop 库(即 org.apache.hadoop.mapred.lib)中,有一个 Mapper 的基本实现,称为 IdentityMapper ,它基本上将所有键值对传递给一个 Reducer。
但是,我在较新版本的 hadoop 库(org.apache.hadoop.mapreduce.lib)中发现,它
没有任何名为 IdentityMapper 的类(Mapper 的所有子类都可以找到
here)。
我可以知道 IdentityMapper 是否更改了名称或在新库中消失了吗?
如果答案是第二个,我可以进一步知道为什么 IdentityMapper 消失了吗?这是否意味着
我们可以链接多个 Reducer 而无需中间有 Mapper 吗?
最佳答案
我突然意识到这个设计......
简短的回答是:新的 Mapper 是旧的 IdentityMapper。
这是一个更长的答案:
在旧库中, Mapper 是一个接口(interface),其基本实现称为 IdentityMapper 。
但是,在新库中,它不再具有映射器的基本接口(interface)。相反,它有一个名为 Mapper 的映射器的公共(public)基类,其实现是之前的 IdentityMapper。
关于java - 为什么 IdentityMapper 在 org.apache.hadoop.mapreduce 库中消失了?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19666748/