是否可以在不依赖 Hadoop 的情况下使用 Apache mahout。
我想在一台计算机上使用 mahout 算法,只在我的 Java 项目中包含 mahout 库,但我根本不想使用 hadoop,因为无论如何我都将在单个节点上运行。
那可能吗?
是否可以在不依赖 Hadoop 的情况下使用 Apache mahout。
我想在一台计算机上使用 mahout 算法,只在我的 Java 项目中包含 mahout 库,但我根本不想使用 hadoop,因为无论如何我都将在单个节点上运行。
那可能吗?
是的。并非所有 Mahout 都依赖于 Hadoop,尽管很多都依赖于 Hadoop。如果你使用一个依赖于 Hadoop 的部分,当然你需要 Hadoop。但例如,有一个不使用 Hadoop 的大量推荐引擎代码库。
您可以在 Java 程序中嵌入本地 Hadoop 集群/工作者。
肯定的,是的。在Mahout Recommender First-Timer FAQ中,他们建议不要从基于 Hadoop 的实现开始(除非您知道您将相对较快地扩展超过 1 亿用户偏好)。
您可以相对轻松地以纯 Java 方式使用Recommender 接口的实现。或者在您选择的 servlet 中放置一个。
从技术上讲,Mahout对 Hadoop有Maven 依赖。但是您可以轻松地使用没有 Hadoop JAR 的推荐器。这在 Mahout in Action 的前几章中有描述 - 您可以下载示例源代码并查看它是如何完成的 - 查看文件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>