2013-05-29 31 views
-1

我讀過Mahout是在Hadoop上開發的,我們可以使用Mahout,也可以不使用Hadoop。說Mahout算法可以在Hadoop上運行是什麼意思? Mahout算法不是用Map-Reduce的形式編寫的嗎?可以用一個例子向我解釋一下嗎?Mahout是什麼意思構建在Hadoop上?

謝謝!

回答

3

你看源代碼嗎?算法被實現爲Map/Reduce作業(不是全部,但大部分都是這樣),這就是爲什麼要做出這個聲明。

+0

我已經通過GenericUserBasedRecommender的代碼,看到它不是在Map-Reduce窗體中,這是否意味着它沒有在Hadoop上實現? –

+0

在這種情況下,我可以理解GenericUserBasedRecommender是一個普通的Java代碼,我可以將其轉換爲Map-Reduce代碼並在Hadoop上運行。請讓我知道我的理解是否正確。 –

+0

也有基於Hadoop的版本。你可以寫任何你想要的 –

0

Mahout有兩個版本是非分佈式和分佈式的。有一些基本的分佈式(Hadoop)實現可用,如ItemBased Collaborative Filtering。默認分發的限制是,如果您的評分數據的用戶ID和商品ID爲字母數字,那麼您需要自定義它。

如果你想實現一些自定義算法,那麼你將不得不編寫Mapper和Reducers,甚至是調用它們的代碼。

我使用我的自定義Map和Reduce任務覆蓋了org.apache.mahout.cf.taste.hadoop.item.RecommenderJob。

請大家糾正我,如果我錯了。