如何克服hadoop中的java.lang.CompatibileClassChangeError
我得到了不兼容的ClassChangeError::找到了接口org.apache.hadoop.mapreduce.TaskAttemptContext,但类是预期的。我使用了着色插件和主类插件,即如何克服hadoop中的java.lang.CompatibileClassChangeError,java,eclipse,maven,hadoop,jar,Java,Eclipse,Maven,Hadoop,Jar,我得到了不兼容的ClassChangeError::找到了接口org.apache.hadoop.mapreduce.TaskAttemptContext,但类是预期的。我使用了着色插件和主类插件,即 Mainclass plugin: ================== <plugin> <groupId>org.apache.maven.plugins</groupId> <arti
Mainclass plugin:
==================
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.calsoftlabs.ndt.PcapMain</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
shaded plugin:
============
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.7.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
signed jars
<excludes>
<exclude>bouncycastle:bcprov-jdk15</exclude>
</excludes>
</artifactSet>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
Main class
<mainClass>com.calsoftlabs.ndt.PcapMain</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
Mainclass插件:
==================
org.apache.maven.plugins
--->我在pom.xml中添加了hadoop pcap lib(来自上面指定的url)依赖项,并尝试使用该PcapInputFormat
--->为了克服这个问题,我现在可以做些什么。有人能就这个问题提出建议吗…TaskAttemptContext
已从Hadoop 1中的类更改为Hadoop 2中的接口。很明显,您正在使用的jar是针对Hadoop 1 API构建的,尽管他们声称与此相反,Hadoop 2对任何应用程序都不向后兼容,但最简单的应用程序除外。我现在如何克服这个问题有没有办法解决这个问题。我现在可以做些什么?请建议我认为jar依赖性在这里是一种误导。还涉及哪些代码?实际上,我正在尝试解析mlab ndt跟踪日志文件。出于解析目的,我使用了PcapInputFormat类。为了包含该类,我从github克隆了hadoop pcap lib项目,并将该github项目的依赖项添加到我当前的项目我使用了job.setInputFormatClass(PcapInputFormat.class);通过导入net.ripe.hadoop.pcap.io.PcapInputFormat;现在怎么办?你能告诉我吗