有没有可能在没有hadoop依赖的情况下使用apache mahout?

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

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

这可能吗?


答案 1

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

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


答案 2

当然,是的。在Mahout推荐器First-Timer常见问题解答中,他们建议不要从基于Hadoop的实现开始(除非你知道你将相对快速地扩展到超过1亿个用户偏好)。

您可以相对容易地以纯 Java 方式使用推荐器接口的实现。或者将一个放在您选择的服务包中。

从技术上讲,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>

推荐