【问题标题】:How to install apache mahout on mac?如何在 mac 上安装 apache mahout?
【发布时间】:2013-10-25 03:20:59
【问题描述】:

我是 Mahout 的新手。我想安装它并尝试一下。到目前为止,我已经在我的 Mac 上安装和配置了 Maven3 和 Java 1.6。我的问题是:

Do I have to install Hadoop firstly before installing Mahout? 

有些教程包括安装 Hadoop,有些没有让我感到困惑。我知道 Mahout 是建立在 Hadoop 之上的。但并非所有 Mahout 都依赖于 Hadoop。

谁能提供一些有用的详细安装资源?

【问题讨论】:

  • 为什么不试试看呢?您说“并非全部”都依赖于 Hadoop,但其他人怎么知道您是否需要这些部分?
  • 我只是想弄清楚为什么安装 Mahout 需要或不需要 Hadoop。现在我正在尝试先安装 Hadoop,以防万一发生不好的事情。

标签: java maven hadoop mahout


【解决方案1】:

http://chimpler.wordpress.com/2013/02/20/playing-with-the-mahout-recommendation-engine-on-a-hadoop-cluster/

http://chimpler.wordpress.com/2013/03/13/using-the-mahout-naive-bayes-classifier-to-automatically-classify-twitter-messages/

这 2 个链接帮助我在 OSX 上启动和运行。将 hadoop 与 mahout 一起使用并不是绝对必要的,但几乎可以肯定的是,如果您打算在可扩展的系统中使用,那么在使用这两种方法的过程中获得经验会很有用...

【讨论】:

    【解决方案2】:

    您根本不需要 hadoop 来试用 mahout。下面是一个示例代码,它将模型作为文件的输入并打印推荐。

    package com.ml.recommend;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.List;
    
    import org.apache.mahout.cf.taste.common.TasteException;
    import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;
    import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
    import org.apache.mahout.cf.taste.impl.recommender.CachingRecommender;
    import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
    import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
    import org.apache.mahout.cf.taste.model.DataModel;
    import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
    import org.apache.mahout.cf.taste.recommender.RecommendedItem;
    import org.apache.mahout.cf.taste.recommender.Recommender;
    import org.apache.mahout.cf.taste.similarity.UserSimilarity;
    
    public class App {
    
            public static void main(String[] args) throws IOException, TasteException {
    
                    DataModel model = new FileDataModel(new File("data.txt"));
                    UserSimilarity userSimilarity = new PearsonCorrelationSimilarity(model);
    
                    UserNeighborhood neighborhood = new NearestNUserNeighborhood(3,
                                    userSimilarity, model);
    
                    Recommender recommender = new GenericUserBasedRecommender(model,
                                    neighborhood, userSimilarity);
    
                    Recommender cachingRecommender = new CachingRecommender(recommender);
    
                    List<RecommendedItem> recommendations = cachingRecommender.recommend(
                                    1000000000000006075L, 10);
    
                    System.out.println(recommendations);
    
            }
    
    }
    

    【讨论】:

      【解决方案3】:

      现在已经过了两年,我终于得到了一个在 Mac 上运行的 itemsimilarity 命令,经过大量的诅咒和流血......希望这可以节省一些时间和痛苦。除了我的同事!你的弱点让我恶心!总之……

      首先对于“我是否需要 $FINICKY_BIG_DATA_PLATFORM”问题,请参阅:

      http://mahout.apache.org/users/basics/algorithms.html

      Hadoop 和/或 spark 不是硬性要求,一些算法在单台机器上运行。但是,您可能感兴趣的算法可能只能在 hadoop 和/或 spark 上运行。有关建议的文档也非常强烈地引导您运行基于 spark 的算法。他们还鼓励您使用黑盒命令行命令,这些命令在单机版本和 spark 版本之间可以有不同的参数(例如,项目相似性)。所以你并不需要它,但你可能仍然需要它。

      我尝试过 brew 安装 hadoop、apache-spark 和 mahout。如果您使用绝对最新版本(mahout 0.11.0、apache-spark 1.4.1、hadoop 2.7.1),您可能会遇到以下一些问题:

      • “出现错误找不到 Spark 类路径。是否设置了“SPARK_HOME”?”要解决此问题,您不仅需要设置该环境变量(我的设置为“/usr/local/Cellar/ apache-spark/1.4.1/libexec"),您还需要 ${SPARK_HOME}/bin/ 中显然已弃用的 compute-classpath.sh 脚本。我手边有一个 1.2.0 spark 安装,所以我从那里拿了一个。

      • 额外的问题,在 1.2.0 安装中有两个 compute-classpath.sh 脚本,一个只是调用另一个的单行代码。如果你复制“真实”的,你可能会更快乐,所以少检查。

      • " java.lang.UnsatisfiedLinkError: no snappyjava in java.library.path " 要解决这个问题,Internet 会告诉您获取 libsnappyjava.jnilib 的副本,将其放入 /usr/lib/java 并将其重命名为 libsnappyjava.dylib 。我做了“brew install snappy”,它安装了 1.1.3 版并包括名为 libsnappy.dylib 和 libsnappy.jnilib 的符号链接。请注意,这些只是符号链接,名称并不完全正确......所以在复制并重命名主 lib 文件后,我至少遇到了一个新错误,这将我们带到......

      • " 线程 "main" java.lang.UnsatisfiedLinkError 中的异常:org.xerial.snappy.SnappyNative.maxCompressedLength(I)I " Internet 不太愿意提供建议。我确实看到一篇帖子说版本 1.0.xxx 没有任何魔法小马代码,但版本 1.1.1.3 有。我去了 http://central.maven.org/maven2/org/xerial/snappy/snappy-java/ ,下载了 snappy-java-1.1.1.3.jar 并将其按原样放入 /usr/lib/java ,没有更改名称。这使快速错误消失了,我可以运行“mahout spark-itemsimilarity”命令完成,YMMV,此建议按原样提供,不提供任何保证。

      • 请注意,快速错误导致的绝望可能会促使您下载 spark .tgz 并从头开始构建它。构建过程将占用您大约 2 个小时的时间,您将永远无法恢复,并且最终您仍然会遇到快速错误。最终,我可以在这个手工构建的版本上运行与 brew 安装版本相同的命令,snappy jar 最终成为主要的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-14
        • 2014-01-06
        • 1970-01-01
        • 2012-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多