java - 用于引用 s3 jar 文件的 Elastic MapReduce libjars 参数

标签 java hadoop amazon-s3 mapreduce amazon-emr

我正在尝试在 Amazon 上运行自定义 jar EMR 作业,并且我的 jar 文件中引用了 lucene jar 文件。我的 jar 文件位于 s3 上的 lib 目录中,我的 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) at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:906) at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:932) at org.apache.hadoop.mapred.JobConf.getMapperClass(JobConf.java:959) at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:34) ... 14 more Caused by: 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 java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 21 more

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

最佳答案

如果您的运行程序类实现了 Tool 接口(interface),那么 Hadoop 将在后台调用 GenericOptionsParser,它将自动获取您的 -libjars 参数。

关于java - 用于引用 s3 jar 文件的 Elastic MapReduce libjars 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12117765/

相关文章:

ruby-on-rails - Rails action_text切换到亚马逊主动存储后没有上传

python - AWS Chalice 从 S3 返回图像文件

java - GWT 代码 - 如何强制工具提示带有换行符?

java - Spring 事务,EntityManager 生命周期

java - 如何在 Cucumber 测试中部署 Localstack

bash - 想要在 unix 中执行 tail 命令后退出

hadoop - Hadoop的JobClient中的submitJob方法抛出空指针

amazon-s3 - AWS S3 提供的 CORS header 不一致

java - 2D 平铺相机?

java - 鉴于我正在将 DataBag 溢出到磁盘,为什么这个 Pig UDF 会导致 "Error: Java heap space"?