【发布时间】:2011-06-07 18:05:38
【问题描述】:
我是一个新手,想了解如何将 mahout 和 hadoop 用于协同过滤。我有单节点 cassandra 设置。我想从 cassandra 获取数据
在哪里可以找到明确的 hadoop 安装步骤,然后是 mahout 以使用 cassandra?
【问题讨论】:
我是一个新手,想了解如何将 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 集群的控制箱。那里没有其他驯兽师的东西。
运行这个:(假设 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 --rank 50
...现在我是否正确是另一回事,但它似乎在做一些事情!
【讨论】:
您可以按照以下教程进行学习。它易于理解和清楚地说明 Hadoop 的基础知识:
【讨论】: