使用mahout:运行.jar和键入控制台指令之间的区别

时间:2013-03-06 15:48:54

标签: hadoop mahout recommendation-engine

我对mahout有点困惑:我的印象是有两种方法可以使用它:

  • 使用Taste推荐程序执行.jar
  • 使用命令行,例如如here所示mahout recommenditembased --input input/recommend_data.csv --output output/recommendation --similarityClassname SIMILARITY_PEARSON_CORRELATION

- >这是正确的还是一样的?

我的问题是:我有一个csv输入文件,格式如下:user_id,item_id,rating。我有10万行,我需要每天为所有用户计算建议。我已经读过没有hadoop它应该没问题,但事实并非如此:.jar我创建了小批量的工作,但不是整个输入文件。

命令行方法在5分钟内工作,这是好的,但它不像jar项目那样灵活(最重要的是与MySQL数据库的接口)。

是否可以使用.jar并从hadoop中受益? 由于我没有分发任何计算(hadoop在一台服务器上运行),在.jar-without-mahout方法和命令行与hadoop方法之间有这样的区别是否正常?

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

100000行并不是很多数据。我相信您不需要使用推荐算法的分布式版本,即使它在伪分布式模式下运行(只有一台机器)。

您可以轻松地使用API​​来构建自己的非分布式推荐器。以下是Mahout in Action一书中的一个例子(我建议阅读) [link]。在这种情况下,他们使用基于类似用户的推荐器,并且从我在您的问题中看到的您使用基于类似项目的推荐器。

要使用项目相似性制作一个,您需要使用ItemSimilarity而不是UserSimilarity。同样,您将使用GenericUserBasedRecommender而不是GenericItemBasedRecommender。然后,当然,您将遍历所有用户并询问每个用户的建议。

希望这有帮助。