qindongliang1922 阅读(2368) 评论(0)
今天,散仙在Myeclipse构建的Java的Web项目里使用hadoop2.5的jar包,去连接Linux系统上的HDFS,做一个数据展示的工程,发生了一个莫名其妙的异常,信息如下:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.MapMaker.keyEquivalence(Lcom/google/common/base/Equivalence;)Lcom/google/common/collect/MapMaker;
	at com.google.common.collect.Interners$WeakInterner.<init>(Interners.java:68)
	at com.google.common.collect.Interners$WeakInterner.<init>(Interners.java:66)
	at com.google.common.collect.Interners.newWeakInterner(Interners.java:63)
	at org.apache.hadoop.util.StringInterner.<clinit>(StringInterner.java:49)
	at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2303)
	at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2195)
	at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2112)
	at org.apache.hadoop.conf.Configuration.set(Configuration.java:989)
	at org.apache.hadoop.conf.Configuration.set(Configuration.java:961)
	at com.dhgate.hdfs.tools.HDFSTools.<clinit>(HDFSTools.java:22)

开始,散仙以为是guava的包有问题,然后就把guava的包给换了另外一个版本的,然后继续测试,发现依然报这个异常,然后在google上搜索查找,终于发现有个朋友在Hbase的Web项目里,也遇到了类似的异常,而原因大概是因为和项目里的JAVA EE6的Libraries包冲突,具体原因还未查明,后来尝试把JAVA EE6的包给删了,再次运行,则正常运行,或者把JAVA EE6的libraries包换成JAVA EE5的libraries也可正常通过。



如果有什么疑问,欢迎扫码关注微信公众号:我是攻城师(woshigcs)
本公众号的内容是有关大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!