2017-04-19 69 views
0

我正在使用MapReduce爲Web搜索構建倒排索引。我知道如何使用MapReduce的一點鍵式,你在這裏設置:Hadoop MapReduce映射器和具有多個鍵類型的縮減器

但是,如果我的鑰匙可以是不同類型的,請問這是支持?例如,一個鍵可能只是文本,另一個可能是一個PairOfWritables。我想要設置不同的關鍵字類型,以便從映射器輸出到reducer,並從reducer輸出到最終輸出。我看到有一個名爲MultipleOutputs的類允許指定不同的鍵和類,但我不確定這是否適合使用它。從互聯網看來,MultipleOutputs似乎只用於reducer方法,而不是映射器。

+0

我不是Hadoop專家,但它似乎是這種情況,您可能希望在相同的數據上進行多次傳遞設置,以獲得您需要的不同密鑰。 (另外,看起來你可能會使用COTS搜索引擎而不是構建自己的搜索引擎,你看過Lucene嗎?) – markspace

+0

@markspace不會是低效的,要多次遍歷所有數據?另外,我正在做這個實驗。 – Alessandro

+0

雖然基本上都是O(n),並且如果輸入數據不可變,您可以並行運行任務。雖然如我所說,我不是專家,可能有更好的方法來做到這一點。 – markspace

回答

0

這是一個想法。你如何創建一個新的類,可以將任何類型的數據傳遞給reduce。該類將包含一個toString()方法,最終將您的數據表示爲一個String。使用此字符串,使用Hadoop中的Text類可以將其用作關鍵字

相關問題