Hadoop実行jobエラー:java.lang.ClassCastException

1264 ワード

ジョブを実行中に次の異常が発生しました.
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クラスは下位にランクされているので、うっかり誤ったクラスに引き込まれることが多い.