0

在某些机器上运行 KMeans 时出现以下错误:

java.io.FileNotFoundException: File file:/home/daniel/Aimee/agent/big-data/mahout-clusters/target/output/clusters-0-final/_policy does not exist.
at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:371) ~[hadoop-core-0.20.204.0.jar:na]
at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:245) ~[hadoop-core-0.20.204.0.jar:na]
at org.apache.hadoop.fs.FileSystem.getLength(FileSystem.java:720) ~[hadoop-core-0.20.204.0.jar:na]
at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1417) ~[hadoop-core-0.20.204.0.jar:na]
at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1412) ~[hadoop-core-0.20.204.0.jar:na]
at org.apache.mahout.clustering.classify.ClusterClassifier.readPolicy(ClusterClassifier.java:223) ~[mahout-core-0.7.jar:0.7]
at org.apache.mahout.clustering.classify.ClusterClassificationMapper.setup(ClusterClassificationMapper.java:75) ~[mahout-core-0.7.jar:0.7]
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142) ~[hadoop-core-0.20.204.0.jar:na]
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764) ~[hadoop-core-0.20.204.0.jar:na]
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370) ~[hadoop-core-0.20.204.0.jar:na]
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212) ~[hadoop-core-0.20.204.0.jar:na]

似乎由于某种原因没有生成某个文件。我试图用谷歌搜索,但网络上没有关于此类问题的任何记录。我使用 mahout-core 0.7,它使用 hadoop-core 0.20.204.0。感谢您提供任何线索,这个问题正在浪费我的时间...... :-(

4

1 回答 1

0

好的,这花了我一些时间来解决这个问题,所以我把这个答案留给任何可能遇到这个问题的人。原因是因为我使用 canopy 来计算 KMeans 的第一个中心,并且 canopy 没有配置 runClustering=true 它没有生成 _policy 文件。但是,这种行为是不一致的。在某些机器上,无论 runClustering 值如何,都会生成文件。

于 2013-02-26T05:20:00.097 回答