使用hadoop filenotfounderror运行mahout

mqkwyuun  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(350)

我正在尝试使用.\bin\hadoop jar path \u to \u mahout \u 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时可以看到该文件。

b4lqfgs4

b4lqfgs41#

trainlogistic算法(以及其他一些分类算法)不能在hdfs上运行。
检查这个链接,它说它只能在一台机器上运行。
祝你好运。。!

brvekthn

brvekthn2#

奇怪的是,对我来说mahout在hdfs的directors中查找文件,为了在本地文件系统中生成mahout,我必须给出一个file:///uri。也许你应该像肖恩建议的那样尝试hdfs://uri。

siotufzp

siotufzp3#

如果在本地工作,则可以使用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

相关问题