运行 apache mahout quickstartryin 时出现问题

运行 apache mahout quickstartryin 时出现问题

我试图从快速入门中运行 mahout 集群示例: https://cwiki.apache.org/MAHOUT/clustering-of-synthetic-control-data.html

在运行此处指定的任何集群实现时,我收到以下异常:

我不明白的是,我已经从网站下载了 mahout 的最新可用副本并使用 maven 构建了它。怎么会缺少一个类呢?

非常感谢您的帮助。

谢谢。

Error: java.lang.ClassNotFoundException: org.apache.mahout.math.Vector
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:762)
    at org.apache.hadoop.io.WritableName.getClass(WritableName.java:71)
    at org.apache.hadoop.io.SequenceFile$Reader.getValueClass(SequenceFile.java:1613)
    at org.apache.hadoop.io.SequenceFile$Reader.init(SequenceFile.java:1555)
    at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1428)
    at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1417)
    at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1412)
    at org.apache.hadoop.mapreduce.lib.input.SequenceFileRecordReader.initialize(SequenceFileRecordReader.java:50)
    at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.initialize(MapTask.java:418)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:620)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
    at org.apache.hadoop.mapred.Child.main(Child.java:170)

11/06/19 16:15:35 INFO mapred.JobClient: Task Id : attempt_201106191612_0002_m_000000_1, Status : FAILED
Error: java.lang.ClassNotFoundException: org.apache.mahout.math.Vector
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:762)
    at org.apache.hadoop.io.WritableName.getClass(WritableName.java:71)
    at org.apache.hadoop.io.SequenceFile$Reader.getValueClass(SequenceFile.java:1613)
    at org.apache.hadoop.io.SequenceFile$Reader.init(SequenceFile.java:1555)
    at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1428)
    at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1417)
    at org.apache.hadoop.io.SequenceFile$Reader.<init>(SequenceFile.java:1412)
    at org.apache.hadoop.mapreduce.lib.input.SequenceFileRecordReader.initialize(SequenceFileRecordReader.java:50)
    at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.initialize(MapTask.java:418)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:620)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:305)
    at org.apache.hadoop.mapred.Child.main(Child.java:170)

答案1

Mahout 时不时会遇到 Hadoop 管理类路径的问题。此外,有证据表明某些版本的 Hadoop(您没有提到您的版本)或配置不支持 Mahout 作业 jar 所依赖的“嵌入作业 jar 中的 jar”功能。

使用当前版本可能会获得更好的结果(您没有提到您拥有的版本)。您将在 mahout 用户邮件列表中获得更好的帮助。

相关内容