我正在尝试使用.\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时可以看到该文件。
3条答案
按热度按时间b4lqfgs41#
trainlogistic算法(以及其他一些分类算法)不能在hdfs上运行。
检查这个链接,它说它只能在一台机器上运行。
祝你好运。。!
brvekthn2#
奇怪的是,对我来说mahout在hdfs的directors中查找文件,为了在本地文件系统中生成mahout,我必须给出一个file:///uri。也许你应该像肖恩建议的那样尝试hdfs://uri。
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