是否可以使用Apache mahout而不依赖于Hadoop。
我想在单个计算机上使用mahout算法,只在我的Java项目中包含mahout库,但我根本不想使用hadoop,因为无论如何我将在单个节点上运行。
这可能吗?
答案 0 :(得分:11)
是。不是所有的Mahout都依赖于Hadoop,尽管很多。如果您使用依赖于Hadoop的部分,当然,您需要Hadoop。但是,例如,有一个不使用Hadoop的实质性推荐引擎代码库。
您可以在Java程序中嵌入本地Hadoop集群/ worker。
答案 1 :(得分:11)
当然,是的。在Mahout Recommender First-Timer FAQ中,他们建议不要从基于Hadoop的实施开始(除非您知道您将相对快速地扩展超过1亿用户偏好)。
您可以相对轻松地以纯Java方式使用Recommender interface的实现。或者将一个放在您选择的servlet中。
从技术上讲,Mahout 已经对Hadoop的Maven依赖。但您可以轻松使用没有Hadoop JAR的推荐器。在Mahout in Action的前几章中对此进行了描述 - 您可以下载sample source code并查看其完成情况 - 查看文件RecommenderIntro.java
。
但是,如果您正在使用Maven,则需要手动排除Hadoop - 依赖关系将如下所示:
<dependency>
<groupId>org.apache.mahout</groupId>
<artifactId>mahout-core</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
</exclusion>
</exclusions>
</dependency>