windows-7 - cygwin下windows 7安装mahout

标签 windows-7 hadoop cygwin mapreduce mahout

我在Windows 7 pro 64位的cygwin下成功安装了hadoop。

现在我正在努力安装 mahout,但我不能。

设置 MAHOUT_HOME 和变量并在 cygwin 上运行 mahout 后,出现以下错误

我猜这与 cygwin 和 windows 路径之间的兼容性问题有关,但我找不到我应该更改哪个具体路径。

Running on hadoop, using /cygdrive/c/hadoop/bin/hadoop and HADOOP_CONF_DIR=
MAHOUT-JOB: /cygdrive/c/mahout/mahout-examples-0.7-job.jar
Exception in thread "main" java.io.IOException: Error opening job jar: /cygdrive               /c/mahout/mahout-examples-0.7-job.jar
    at org.apache.hadoop.util.RunJar.main(RunJar.java:90)
Caused by: java.io.FileNotFoundException: \cygdrive\c\mahout\mahout
examples-0.7               
-job.jar (The system cannot find the path specified)
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:214)
    at java.util.zip.ZipFile.<init>(ZipFile.java:144)
    at java.util.jar.JarFile.<init>(JarFile.java:152)
    at java.util.jar.JarFile.<init>(JarFile.java:89)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:88)

最佳答案

可能/cygdrive/c/mahout/mahout-examples-0.7-job.jar 应该是 C:\mahout\mahout-examples-0.7-job.jar。

     MAHOUT_JOB=`cygpath -wp $MAHOUT_JOB

Java 是一个 Windows 程序,因此不识别 Cygwin 特定的路径。所以/cygdrive/c/foo/...对java.exe没用。如果您的 Java 软件使用文件路径,您需要使用 Cygwin 附带的 cygpath 工具将它们转换为 Windows 风格的路径名。

cygpath 将 UNIX 风格的路径作为参数并返回 Windows 风格的路径。这是一个例子:

    $ cygpath -wp /cygdrive/c:/cygdrive/c/classes
    c:\;c:\classes

因此,当调用 Java 程序时(例如,从 shell 脚本中),您需要像这样编写命令行:

java -classpath `cygpath -wp $CLASSPATH` [arguments]

引用:http://www.inonit.com/cygwin/faq/

关于windows-7 - cygwin下windows 7安装mahout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700435/

相关文章:

hadoop - 使用 groupby 计算不同多列的 Hive 优化

windows - 如何为 apt-cyg 设置代理?

windows-7 - Windows 7 上的 Visual Studio 2012 仍然需要 .NET 4.5

c# - 构建使用 Windows 7 任务栏功能的 C#/.NET 应用程序

powershell - 获取所有打开的资源管理器窗口的报告

Hadoop LZO native 库和 JAR 不可用

oracle - Hive- 检查子分区的解决方法

batch-file - 如何从使用 Windows find 命令的 cygwin bash 执行 bat 文件

windows - Windows Server 的 Varnish 替代品

docker - 容器初始化导致\“rootfs_linux.go:58:挂载到rootfs引起的不是目录