8

我是一个新手,试图了解 mahout 和 hadoop 将如何用于协同过滤。我有单节点 cassandra 设置。我想从 cassandra 获取数据

我在哪里可以找到明确的 hadoop 安装步骤,然后是 mahout 以使用 cassandra?

4

3 回答 3

7

(我认为这与您刚刚在 user@mahout.apache.org 上提出的问题相同?复制我的答案。)

您可能根本不需要 Hadoop,如果不需要,为了简单起见,我建议您不要使用它。超过某个点是“必要的邪恶”。

您可以在 Cassandra 上拥有数据,但您希望能够将其读入内存。如果可以转储为文件,则可以使用 FileDataModel。或者,您可以模拟 FileDataModel 中的代码以基于 Cassandra 创建一个。

然后,您的两个需求很容易得到解答:

  1. 这甚至不是推荐问题。只需选择 UserSimilarity 的实现,并使用它来比较用户与所有其他用户,并选择具有最高相似性的用户。(使用 CachingUserSimilarity 包装会有很大帮助。)

  2. 这只是一个推荐问题。将 GenericUserBasedRecommender 与您的 UserSimilarity 和 DataModel 一起使用,您就完成了。

它当然可以变得比这复杂得多,但这是一个很好的起点。

如果以后您使用 Hadoop,是的,您必须根据其说明设置 Hadoop。没有 Mahout“设置”。对于推荐者,您将查看 RecommenderJob 类之一,该类调用 Hadoop 集群上的必要作业。您可以使用“hadoop”命令运行它——同样,这是您需要了解 Hadoop 的地方。

Mahout in Action一书详细介绍了 Mahout Hadoop 的大部分作业。

于 2011-01-13T11:01:55.370 回答
3

Mahout in Action 一书确实让我免于令人沮丧的缺乏文档。

我正在关注https://issues.apache.org/jira/browse/MAHOUT-180 ... 这表明“hadoop -jar”语法只会给我错误。这本书有'jar',并且通过这个修复,我的测试工作正在愉快地运行。

这是我所做的:

  1. 使用http://bickson.blogspot.com/2011/02/mahout-svd-matrix-factorization.html?showComment=1298565709376#c3501116664672385942上的实用程序将我的矩阵的 CSV 表示转换为 mahout 文件格式。将其复制到 Hadoop 文件系统中。

  2. 将 mahout-examples-0.5-SNAPSHOT-job.jar 从我笔记本电脑上新建的 Mahout 上传到 hadoop 集群的控制箱。那里没有其他mahout的东西。

  3. 跑这个:(假设 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

......现在我是否正确是另一回事,但它似乎在做些什么!

于 2011-02-24T16:56:20.067 回答
-1

您可以按照以下教程进行学习。它易于理解并清楚地说明了 Hadoop 的基础知识:

http://developer.yahoo.com/hadoop/tutorial/

于 2012-01-05T06:35:59.030 回答