Hadoop执行job出错:java.lang.ClassCastException

运行job的时候出现以下异常:

java.lang.ClassCastException: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$Text
        at java.lang.Class.asSubclass(Class.java:3116)
        at org.apache.hadoop.mapred.JobConf.getOutputKeyComparator(JobConf.java:795)
        at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:964)
        at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:673)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:756)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:364)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
        at org.apache.hadoop.mapred.Child.main(Child.java:249)

 

 ,该异常是由于本应该引入org.apache.hadoop.io.Text类的时候,却引入了com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider.Text,eclipse的自动提示中,org.apache.hadoop.io.Text类是排在靠下的位置的,所以很多时候一不小心引就入了错误的类。

 

你可能感兴趣的:(Hadoop执行job出错:java.lang.ClassCastException)