0

我正在尝试使用 .\bin\hadoop jar path_to_mahout_jar 等运行 Mahout

它仅在输入是本地文件时才有效。当我尝试使用 Hadoop 文件系统中的文件时,会出现以下错误:

Exception in thread "main" java.io.FileNotFoundException: input (The system cannot find the file specified)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:120)
        at org.apache.mahout.classifier.sgd.TrainLogistic.open(TrainLogistic.java:316)
        at org.apache.mahout.classifier.sgd.TrainLogistic.mainToOutput(TrainLogistic.java:75)
        at org.apache.mahout.classifier.sgd.TrainLogistic.main(TrainLogistic.java:64)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)

但是,当我查看 HDFS 时,我可以看到该文件。

4

3 回答 3

0

这很奇怪,对我来说,mahout 是在 hdfs 的 Director 中寻找文件,要在我的本地文件系统中制作 mahout,我必须提供一个 file:/// URI。也许您应该按照 Sean 为您的问题建议的那样尝试 hdfs:// URI。

于 2013-07-14T06:51:07.327 回答
0

Trainlogistic 算法(以及其他一些分类算法)不能在 HDFS 上运行。

检查这个链接,它说它只能在单台机器上运行。

祝你好运..!

于 2014-04-14T00:44:10.033 回答
0

如果您在本地工作,则可以使用 java.io,但如果您在 HDFS 上工作,则必须使用 hadoop.io 操作。也许以下链接可以帮助您:

https://sites.google.com/site/hadoopandhive/home/how-to-read-all-files-in-a-directory-in-hdfs-using-hadoop-filesystem-api

https://sites.google.com/site/hadoopandhive/home/how-to-write-a-file-in-hdfs-using-hadoop

https://sites.google.com/site/hadoopandhive/home/hadoop-how-to-read-a-file-from-hdfs

于 2015-06-02T11:37:37.717 回答