Mapreduce Hadoop

时间:2015-12-09 13:07:01

标签: maven hadoop mapreduce

您好我使用PDFBOX外部库解析mapreduce中的pdf输入文件,但是我收到以下错误。

  

错误:java.lang.ClassNotFoundException:   org.apache.pdfbox.pdmodel.PDDocument at   java.net.URLClassLoader的$ 1.run(URLClassLoader.java:366)           在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)           at java.security.AccessController.doPrivileged(Native Method)           在java.net.URLClassLoader.findClass(URLClassLoader.java:354)           at java.lang.ClassLoader.loadClass(ClassLoader.java:425)           at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)           at java.lang.ClassLoader.loadClass(ClassLoader.java:358)           在com.nielsen.grfe.processor.mapreduce.Pdfparser $ PdfLineRecordReader.initialize(Pdfparser.java:109)           at 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)           at java.security.AccessController.doPrivileged(Native Method)           在javax.security.auth.Subject.doAs(Subject.java:415)           at 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 个答案:

答案 0 :(得分:0)

1)也将pdfbox的jar文件放在hadoop lib文件夹中。(在运行时将库jar提供给hadoop)。

2)重启hadoop集群。

或者

1)确保您的pdfbox库可以通过将其置于分布式缓存中来使用。