Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何克服hadoop中的java.lang.CompatibileClassChangeError_Java_Eclipse_Maven_Hadoop_Jar - Fatal编程技术网

如何克服hadoop中的java.lang.CompatibileClassChangeError

如何克服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

我得到了不兼容的ClassChangeError::找到了接口org.apache.hadoop.mapreduce.TaskAttemptContext,但类是预期的。我使用了着色插件和主类插件,即

  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;现在怎么办?你能告诉我吗