我已經使用mahout編寫了mapreduce程序。地圖輸出值是ClusterWritable
。當我在Eclipse中運行的代碼,將其與沒有錯誤運行,但是當我運行RHE在終端jar文件,它示出了異常:apache Mahout中的錯誤值
java.io.IOException: wrong value class: org.apache.mahout.math.VectorWritable is not class org.apache.mahout.clustering.iterator.ClusterWritable
at org.apache.hadoop.io.SequenceFile$Writer.append(SequenceFile.java:988)
at org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat$1.write(SequenceFileOutputFormat.java:74)
at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.write(MapTask.java:498)
at org.apache.hadoop.mapreduce.TaskInputOutputContext.write(TaskInputOutputContext.java:80)
at org.apache.mahout.clustering.canopy.CanopyMapper.cleanup(CanopyMapper.java:59)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:621)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
at org.apache.hadoop.mapred.Child.main(Child.java:170)
在地圖的輸出代碼是:
context.write(new Text(), new ClusterWritable());
但我不知道它爲什麼說值類型爲VectorWritable
。
Slavic:我已經將mahout 8 jar文件添加到項目的lib文件夾中。mahout 8中的輸出值是ClusterWritable。 –