我是一个新手,试图了解 mahout 和 hadoop 将如何用于协同过滤。我有单节点 cassandra 设置。我想从 cassandra 获取数据
我在哪里可以找到明确的 hadoop 安装步骤,然后是 mahout 以使用 cassandra?
(我认为这与您刚刚在 user@mahout.apache.org 上提出的问题相同?复制我的答案。)
您可能根本不需要 Hadoop,如果不需要,为了简单起见,我建议您不要使用它。超过某个点是“必要的邪恶”。
您可以在 Cassandra 上拥有数据,但您希望能够将其读入内存。如果可以转储为文件,则可以使用 FileDataModel。或者,您可以模拟 FileDataModel 中的代码以基于 Cassandra 创建一个。
然后,您的两个需求很容易得到解答:
这甚至不是推荐问题。只需选择 UserSimilarity 的实现,并使用它来比较用户与所有其他用户,并选择具有最高相似性的用户。(使用 CachingUserSimilarity 包装会有很大帮助。)
这只是一个推荐问题。将 GenericUserBasedRecommender 与您的 UserSimilarity 和 DataModel 一起使用,您就完成了。
它当然可以变得比这复杂得多,但这是一个很好的起点。
如果以后您使用 Hadoop,是的,您必须根据其说明设置 Hadoop。没有 Mahout“设置”。对于推荐者,您将查看 RecommenderJob 类之一,该类调用 Hadoop 集群上的必要作业。您可以使用“hadoop”命令运行它——同样,这是您需要了解 Hadoop 的地方。
Mahout in Action一书详细介绍了 Mahout Hadoop 的大部分作业。
Mahout in Action 一书确实让我免于令人沮丧的缺乏文档。
我正在关注https://issues.apache.org/jira/browse/MAHOUT-180 ... 这表明“hadoop -jar”语法只会给我错误。这本书有'jar',并且通过这个修复,我的测试工作正在愉快地运行。
这是我所做的:
使用http://bickson.blogspot.com/2011/02/mahout-svd-matrix-factorization.html?showComment=1298565709376#c3501116664672385942上的实用程序将我的矩阵的 CSV 表示转换为 mahout 文件格式。将其复制到 Hadoop 文件系统中。
将 mahout-examples-0.5-SNAPSHOT-job.jar 从我笔记本电脑上新建的 Mahout 上传到 hadoop 集群的控制箱。那里没有其他mahout的东西。
跑这个:(假设 hadoop 已配置;我用 dfs -ls /user/danbri 确认)
hadoop jar ./mahout-examples-0.5-SNAPSHOT-job.jar \ org.apache.mahout.math.hadoop.decomposer.DistributedLanczosSolver \ --input svdoutput.mht --output outpath --numRows 0 --numCols 4 --排名 50
......现在我是否正确是另一回事,但它似乎在做些什么!
您可以按照以下教程进行学习。它易于理解并清楚地说明了 Hadoop 的基础知识: