ERROR 2997: Unable to recreate exception from backed error

当我们在Hadoop2中使用第三方Jar包来跑MR(使用Pig)时,会抛出以下异常:

ERROR 2997: Unable to recreate exception from backed error: 

Error: com.google.common.collect.Range.closed(Ljava/lang/Comparable;Ljava/lang/Comparable;)

Lcom/google/common/collect/Range;

但是我们在Pig脚本中把Jar包(guava-16.0.1.jar)已经注册了,那么为什么还会报这种错误呢?

这个错误很显然是没有使用最新的版本而找的还是老版本的Jar(以上报错的这个类是guava 1.5以后才出现的),果断看了CLASSPATH,发现果然在CLASSPATH中使用了guava,但是版本较老guava-11.0.2.jar。所以要解决该问题就需要让执行MR时优先找用户的CLASSPATH。

于是在mapred-site.xml中加入


  mapreduce.job.user.classpath.first
  true

重启ResourceManager

问题解决。

你可能感兴趣的:(hadoop,pig,Hadoop,hadoop2,pig,exception)