【问题标题】:Unable to run Mahout 20newsgroups example under Cygwin无法在 Cygwin 下运行 Mahout 20newsgroups 示例
【发布时间】:2014-08-03 01:38:52
【问题描述】:

我能够验证新闻组数据是否存在输入目录(在 /tmp 下)。不知道为什么我得到一个文件未找到异常。

$ sh 分类-20newsgroups.sh 请选择一个数字选择对应的任务运行 1. 朴素贝叶斯 2.sgd 3. clean -- 清理 /tmp/mahout-work-rsrinivasan 中的工作区 输入您的选择:1 好的。您选择了 1,我们将使用 naivebayes 在 /tmp/mahout-work-rsrinivasan 创建工作目录 准备训练数据 MAHOUT_LOCAL 未设置;将 HADOOP_CONF_DIR 添加到类路径。 没有设置 HADOOP_HOME,在本地运行 SLF4J:类路径包含多个 SLF4J 绑定。 SLF4J:在 [jar:file:/C:/cygwin/usr/local/mahout/examples/target/mahout-examples-0.6-job.jar!/org/slf4j/impl/StaticLoggerBinder.class] 中找到绑定 SLF4J:在 [jar:file:/C:/cygwin/usr/local/mahout/examples/target/dependency/slf4j-jcl-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] 中找到绑定 SLF4J:在 [jar:file:/C:/cygwin/usr/local/mahout/examples/target/dependency/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] 中找到绑定 SLF4J:请参阅http://www.slf4j.org/codes.html#multiple_bindings 了解说明。 12/05/14 09:13:44 WARN driver.MahoutDriver:在类路径中找不到 org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups.props,将仅使用命令行参数 线程“主”java.io.FileNotFoundException 中的异常:找不到输入目录 \tmp\mahout-work-rsrinivasan\20news-bydate\20news-bydate-train 在 org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups.main(PrepareTwentyNewsgroups.java:92) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68) 在 org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139) 在 org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:188)

【问题讨论】:

    标签: java apache mahout


    【解决方案1】:

    您可能必须先编辑该脚本才能在 Windows 上运行。我想 Cygwin/Windows 的路径是错误的。

    【讨论】:

    • 我检查了分类 20newsgroups.sh 和 mahout shell 脚本中的路径,它们都指向输入数据的位置。看来问题在于JVM如何使用路径。由于 JVM 在 Windows 中本地运行(即在 cygwin 之外),我不清楚如何更改路径。我能够让一切都在 Mac 上运行。顺便说一句,刚刚订购了你的书。
    • 我通过使用 cygpath -wp 转换它们解决了路径问题。现在我得到了这个异常:线程“主”java.io.IOException中的异常:无法设置路径权限:\tmp\hadoop-rsrinivasan\mapred\staging\rsrinivasan431425615\.staging 到 0700 我设置了 MAHOUT_LOCAL。我不明白为什么本地模式下的 mahout 试图使用 hadoop!!!
    • 本地模式仍然意味着 Hadoop,只是不在集群中运行。它在进程内运行 Hadoop。 (这不是 Mahout 特定的。)权限错误通常是因为 Windows 没有 chmod。我想。
    【解决方案2】:

    最好在 unix 环境下运行该示例。当我尝试 oscon2011 reuters 示例时,我遇到了类似的问题;虽然我使用 git bash 控制台来完成这项工作。看来分类和聚类示例 hdfs local 可以正常运行。

    我设法使用 vagrant 启动并运行了一个虚拟机,过程相对简单。是的,它确实增加了学习周期,但经过一些初始投资后,我能够在几个小时内完成路透社的示例。

    谢谢 和

    【讨论】:

      猜你喜欢
      • 2013-11-25
      • 1970-01-01
      • 2013-05-31
      • 2016-11-06
      • 2016-06-16
      • 2014-05-08
      • 1970-01-01
      • 2018-06-05
      • 1970-01-01
      相关资源
      最近更新 更多