Elastic MapReduce libjars参数引用s3 jar文件

时间:2012-08-24 23:11:00

标签: java hadoop amazon-s3 mapreduce amazon-emr

我正在尝试在亚马逊上运行自定义jar EMR作业,我在jar文件中引用了lucene jar文件。我在s3上的lib目录中有jar文件,我的Jar参数如下所示:

MyMainClass -libjars s3n://mybucket/lib/lucene-core-3.6.1.jar s3n://mybucket/myinput s3n://mybucket/myoutput

作业失败,我不断收到这些错误:

  

java.lang.NoClassDefFoundError:org / apache / lucene / analysis / Analyzer     at java.lang.Class.forName0(Native Method)at   java.lang.Class.forName(Class.java:247)at   org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:861)     在   org.apache.hadoop.conf.Configuration.getClass(Configuration.java:906)     在   org.apache.hadoop.conf.Configuration.getClass(Configuration.java:932)     在org.apache.hadoop.mapred.JobConf.getMapperClass(JobConf.java:959)     at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:34)     ... 14更多引起:java.lang.ClassNotFoundException:   org.apache.lucene.analysis.Analyzer 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:306)at   sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)at at   java.lang.ClassLoader.loadClass(ClassLoader.java:247)... 21更多

它似乎没有找到lucene jar文件......我缺少什么?

1 个答案:

答案 0 :(得分:1)

如果您的跑步者类实现了工具界面,那么Hadoop将在后台调用GenericOptionsParser,这将自动获取您的-libjars参数。