我是一个新手试图了解如何将mahout和hadoop用于协同过滤。我有单节点cassandra设置。我想从cassandra
获取数据我在哪里可以找到hadoop的明确安装步骤,然后mahout与cassandra一起工作?
答案 0 :(得分:7)
(我认为这是你刚刚在user@mahout.apache.org上提出的问题吗?复制我的答案。)
你根本不需要Hadoop,如果你不这样做,我建议你不要简单地使用它。超越某一点是“必要的邪恶”。
您可以在Cassandra上获取数据,但您希望能够将其读入内存。如果可以转储为文件,则可以使用FileDataModel。或者,您可以模拟FileDataModel中的代码来创建基于Cassandra的代码。
然后,您的两个需求很容易回答:
这甚至不是推荐 问题。只需选择一个实现 UserSimilarity的用户,并使用它 将用户与所有其他用户进行比较,以及 挑选最高的 相似。 (包装用 CachingUserSimilarity将有助于 很多。)
这只是推荐人 问题。用一个 GenericUserBasedRecommender用 您的UserSimilarity和DataModel 你已经完成了。
它当然可以比这复杂得多,但这是一个很好的起点。
如果以后您使用Hadoop,是的,您必须根据其说明设置Hadoop。没有Mahout“设置”。对于推荐者,您可以查看一个在您的Hadoop集群上调用必要作业的RecommenderJob类。您可以使用“hadoop”命令运行它 - 再次,这是您需要了解Hadoop的地方。
本书Mahout in Action详细介绍了Mahout Hadoop的大部分工作。
答案 1 :(得分:3)
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上载mahout-examples-0.5-SNAPSHOT-job.jar到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 --rank 50
...现在我是否做得对,这是另一回事,但它似乎正在做点什么!
答案 2 :(得分:-1)
您可以按照以下教程学习。它易于理解并清楚地说明了Hadoop的基础知识: