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

sky*_*yde 14 java hadoop machine-learning dependency-management mahout

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

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

那可能吗?

Sea*_*wen 11

是.不是所有的Mahout都依赖于Hadoop,尽管很多.如果您使用依赖于Hadoop的部分,当然,您需要Hadoop.但是,例如,有一个不使用Hadoop的实质性推荐引擎代码库.

您可以在Java程序中嵌入本地Hadoop集群/ worker.


Eya*_*yal 11

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

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

从技术上讲,Mahout 对Hadoop 依赖.但您可以轻松使用没有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>
Run Code Online (Sandbox Code Playgroud)