嗨,我正在使用pdfbox外部库解析mapreduce中的pdf输入文件,但是我得到以下错误。
错误:java.lang.classnotfoundexception:org.apache.pdfbox.pdmodel.pddocument位于java.net.urlclassloader$1.run(urlclassloader)。java:366)在java.net.urlclassloader$1.run(urlclassloader。java:355)位于java.net.urlclassloader.findclass(urlclassloader)的java.security.accesscontroller.doprivileged(本机方法)。java:354)在java.lang.classloader.loadclass(类加载器。java:425)在sun.misc.launcher$appclassloader.loadclass(launcher。java:308)在java.lang.classloader.loadclass(classloader。java:358)在com.nielsen.grfe.processor.mapreduce.pdfparser$pdflinerecordreader.initialize(pdfparser。java:109)在org.apache.hadoop.mapred.maptask$newtrackingrecordreader.initialize(maptask。java:548)在org.apache.hadoop.mapred.maptask.runnewmapper(maptask。java:786)在org.apache.hadoop.mapred.maptask.run(maptask。java:341)在org.apache.hadoop.mapred.yarnchild$2.run(yarnchild。java:163)位于java.security.accesscontroller.doprivileged(本机方法)javax.security.auth.subject.doas(主题。java:415)在org.apache.hadoop.security.usergroupinformation.doas(usergroupinformation。java:1671)在org.apache.hadoop.mapred.yarnchild.main(yarnchild。java:158)
我正在使用以下依赖项
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>1.8.10</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>1.8.5</version>
</dependency>
1条答案
按热度按时间plicqrtu1#
1) 将pdfbox的jar文件也放在hadoop lib文件夹中(使库jar在运行时对hadoop可用)。
2) 重新启动hadoop集群。
或
1) 通过将pdfbox库放在分布式缓存中,确保它对hadoop可用。