14

是否可以在不依赖 Hadoop 的情况下使用 Apache mahout。

我想在一台计算机上使用 mahout 算法,只在我的 Java 项目中包含 mahout 库,但我根本不想使用 hadoop,因为无论如何我都将在单个节点上运行。

那可能吗?

4

2 回答 2

11

是的。并非所有 Mahout 都依赖于 Hadoop,尽管很多都依赖于 Hadoop。如果你使用一个依赖于 Hadoop 的部分,当然你需要 Hadoop。但例如,有一个不使用 Hadoop 的大量推荐引擎代码库。

您可以在 Java 程序中嵌入本地 Hadoop 集群/工作者。

于 2011-10-19T07:20:52.997 回答
11

肯定的,是的。在Mahout Recommender First-Timer FAQ中,他们建议不要从基于 Hadoop 的实现开始(除非您知道您将相对较快地扩展超过 1 亿用户偏好)。

您可以相对轻松地以纯 Java 方式使用Recommender 接口的实现。或者在您选择的 servlet 中放置一个。

从技术上讲,Mahout对 HadoopMaven 依赖。但是您可以轻松地使用没有 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>
于 2012-03-14T15:49:32.600 回答