首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在电子病历上运行mahout

在电子病历上运行mahout
EN

Stack Overflow用户
提问于 2012-07-29 11:00:33
回答 2查看 697关注 0票数 1

我试图在亚马逊电子病历上运行一个RecommenderJob。我有一个名为SmartJukebox.jar (不可运行的)的jar,它包含一个类main.TrackRecommander (仅此而已)。

我用jar创建了一个作业流:

s3n://smartjukebox/SmartJukebox.jar

和args:

输入s3n://smartjukebox/ratings.csv --输出s3n://smartjukebox/ main.TrackRecommander -usersFiles3n://smartjukebox/user.txt。

类TrackRecommander使用类RecommenderJob。

我运行了作业流程,并在错误日志中得到了这个-

线程"main“中的异常: org/apache/mahout/cf/taste/hadoop/item/RecommenderJob at main.TrackRecommander.main(TrackRecommander.java:136) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native方法) 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)由: java.lang.ClassNotFoundException: org.apache.mahout.cf.taste.hadoop.item.RecommenderJob at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method)在java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader引起。loadClass(ClassLoader.java:247) .6

现在我看到JVM找不到RecommenderJob,我也没有把RecommenderJob放进我的jar中。我以为EMR会在里面装马赫奥特罐子,但我什么也找不到。

这里的解决方案是什么?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2012-07-29 11:37:43

你的问题就在于你所说的:“我没有把RecommenderJob放进我的罐子里。”除非你把这些类放在你的罐子里,否则当然找不到。为什么EMR会内置这个呢?首先将Mahout ".job“文件类添加到JAR中。

票数 0
EN

Stack Overflow用户

发布于 2014-03-11 11:50:43

您需要创建一个作业jar,该jar包含运行代码所需的所有类,其中也包括mahout类。看看https://github.com/tdunning/MiA

检查如何使用pom.xml中的maven程序集插件和src/main/ job.xml目录中的job.xml创建作业jar。如果排除hadoop类,那么可以在任何hadoop实例上运行它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11708688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档