天天看点

class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$Text

运行mapreduce的wordcount时遇到的奇葩的错误:

Caused by: java.lang.ClassCastException: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$Text

    at java.lang.Class.asSubclass(Class.java:3404)

    at org.apache.hadoop.mapred.JobConf.getOutputKeyComparator(JobConf.java:887)

    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.init(MapTask.java:1004)

    at org.apache.hadoop.mapred.MapTask.createSortingCollector(MapTask.java:402)

    ... 10 more

2018-12-03 11:32:11,903 INFO  [main] mapreduce.Job (Job.java:monitorAndPrintJob(1411)) - Job job_local214219855_0001 running in uber mode : false

2018-12-03 11:32:11,905 INFO  [main] mapreduce.Job (Job.java:monitorAndPrintJob(1418)) -  map 0% reduce 0%

2018-12-03 11:32:11,906 INFO  [main] mapreduce.Job (Job.java:monitorAndPrintJob(1431)) - Job job_local214219855_0001 failed with state FAILED due to: NA

2018-12-03 11:32:11,910 INFO  [main] mapreduce.Job (Job.java:monitorAndPrintJob(1436)) - Counters: 0

找了半天结果是Text的包导入错了

不该是:import com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider.Text;

而该是:import org.apache.hadoop.io.Text;

所以希望大家导入包时可以多注意一下,以免一直困扰其中

继续阅读