【问题标题】:is it possible to use apache mahout without hadoop dependency?是否可以在没有 hadoop 依赖的情况下使用 apache mahout?
【发布时间】:2016-01-14 02:49:14
【问题描述】:

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

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

这可能吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 使用 Mahout 0.10 这似乎不再可能了。我正在尝试使用 KMeans 或 FuzzyKMeans 算法,它们似乎完全依赖于 Hadoop。我想做的只是对一些 2D(实际上是纬度/经度)数据点进行聚类,而不得不依赖 hadoop 文件系统对于我想要的一次性操作来说似乎效率极低。
    【解决方案2】:

    当然,是的。在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>
    

    【讨论】:

    猜你喜欢
    • 2014-05-16
    • 2019-03-27
    • 1970-01-01
    • 2023-03-25
    • 2014-03-17
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多