2013-10-29 93 views
2

在舊版本的hadoop庫(即org.apache.hadoop.mapred.lib)中,有一個名爲IdentityMapper的Mapper的基本實現,它基本上將所有鍵值對傳遞給Reducer。爲什麼IdentityMapper在org.apache.hadoop.mapreduce庫中消失?

然而,我在Hadoop的庫(org.apache.hadoop.mapreduce.lib)的新版本中,它 沒有叫IdentityMapper任何類(映射的所有子類都可以找到 here)。

我可以知道IdentityMapper是更改其名稱還是消失在新庫中?

如果答案是第二個,我可以進一步知道爲什麼IdentityMapper消失了嗎?這是否意味着 我們可以連接多個Reducer而不需要Mapper?

回答

14

我突然意識到設計...

簡短的回答是:新的映射是老IdentityMapper。

這是一個較長的答案:

在舊圖書館,Mapper是一個接口,它的基本實現被稱爲IdentityMapper

但是,在新庫中,它不再具有映射器的基本接口。相反,它有一個名爲Mapper的映射器的公共基類,其實現是以前的IdentityMapper。