是否可以使用没有hadoop依赖的apache mahout?

时间:2011-10-19 00:32:40

标签: java hadoop machine-learning dependency-management mahout

是否可以使用Apache mahout而不依赖于Hadoop。

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

这可能吗?

2 个答案:

答案 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>