1

I am a beginner in map reduce program and while running the program I have this error:

    Exception in thread "main" java.lang.VerifyError: (class: com/google/common/collect
/Interners, method: newWeakInterner signature: ()Lcom/google/common/collect/Interner;) Incompatible argument to function

What is the error and which jar file to be included?

4

2 回答 2

2

另一个原因是同时使用 google-collections 和 guava。结果,我看到了以下堆栈跟踪:

[Loaded com.google.common.collect.Interners from file:/var/lib/tomcat6-crm/webapps/ROOT/WEB-INF/lib/**guava**-11.0.2.jar]
[Loaded com.google.common.base.Function from file:/var/lib/tomcat6-crm/webapps/ROOT/WEB-INF/lib/**google-collections**-1.0.jar]
[Loaded com.google.common.collect.GenericMapMaker from file:/var/lib/tomcat6-crm/webapps/ROOT/WEB-INF/lib/guava-11.0.2.jar]
[Loaded com.google.common.collect.MapMaker from file:/var/lib/tomcat6-crm/webapps/ROOT/WEB-INF/lib/google-collections-1.0.jar]

从依赖树中排除 google-collection 以避免冲突;

要查看类加载,请使用 -XX:+TraceClassLoading JVM 选项

于 2014-01-23T10:14:22.570 回答
1

这是一个迟到的回应,但我实际上遇到了同样的问题,所以我想我会提出我的解决方案来避免这种情况:http: //xkcd.com/979/

就我而言,这是因为我在 pom.xml 中有错误的依赖项。我运行 cloudera 并尝试使用标准 jdbc 客户端进行连接。

要连接到 cdh,请使用此处列出的依赖项:http: //www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/4.2.0/CDH4-Installation-Guide/cdh4ig_topic_31.html

或您使用的任何版本的 cloudera

因此,您的客户端的依赖项应如下所示:

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>2.0.0-mr1-cdh4.0.0</version>
    </dependency>

并不是:

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>2.2.0</version>
    </dependency>

另外,注意hadoop 运行的类型,YARN 或mr1。

当然,您的问题可能会有所不同,但我仍然希望这会有所帮助。

于 2014-01-21T11:20:37.143 回答