mahout推荐包括两部分,一部分是单机版的推荐,主要是以org.apache.mahout.cf.taste.*包下面;另一种则是hadoop版本的推荐主要是以org.apache.mahout.cf.taste.hadoop.*包下面。下面我们针对hadoop版本进行分析。在org.apache.mahout.cf.taste.hadoop.item包下面的RecommenderJob开始。
该job主要分为几个步骤,它首先执行第一个job是PreparePreferenceMatrixJob,该job主要负责构造一个用户的偏好或者叫浏览矩阵;第二个job则是生成协同矩阵,
点击查看第二个job计算协同矩阵。最后的输出形式为(itemId, VectorWritable<userId, pref>)即itemId-> {userId1:score1, userId2:score2}
其中该PreparePreferenceMatrixJob又分为三个步骤完成:
第一个步骤转化itemIDIndex,通过一个mapper与一个reducer完成。
这步主要是将itemId转成一个int。之所以要做,主要是因为它其后面要使用的很多数据结构都是基于int的。如Vector之类还有VectorWritable..
其中ma