【发布时间】:2012-07-27 08:45:17
【问题描述】:
我正在尝试在亚马逊 EMR 上运行 RecommenderJob。我有一个名为 SmartJukebox.jar(不可运行)的 jar,它包含一个 main.TrackRecommander 类(仅此而已)。
我用 jar 创建了一个工作流:
s3n://smartjukebox/SmartJukebox.jar
和参数:
main.TrackRecommander --input s3n://smartjukebox/ratings.csv --output s3n://smartjukebox/output --usersFile s3n://smartjukebox/user.txt。
TrackRecommander 类使用 RecommenderJob 类。
我运行作业流程,我在错误日志中得到了这个 -
线程“主”java.lang.NoClassDefFoundError 中的异常:org/apache/mahout/cf/taste/hadoop/item/RecommenderJob 在 main.TrackRecommander.main(TrackRecommander.java:136) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:156) 引起:java.lang.ClassNotFoundException:org.apache.mahout.cf.taste.hadoop.item.RecommenderJob 在 java.net.URLClassLoader$1.run(URLClassLoader.java:202) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 6 更多
现在我看到 JVM 找不到 RecommenderJob 并且我没有将 RecommenderJob 放入我的 jar 中。我以为 EMR 会内置 mahout 罐子,但我找不到任何相关信息。
这里的解决方案是什么?
谢谢。
【问题讨论】:
标签: jar mahout amazon-emr emr