Type mismatch in key from map: expected org.apache.hadoop.io.Text, received org.apache.hadoop.io.LongWritable
记录一下在hadoop上面运行mapreduce程序的bug。这个报错是说Reduce要求输入的键是Text类型(由reduce方法参数指定),但是接收到的却是LongWritable类型。
到map类里面去看
没有发现问题,再到创建job的run方法里面去看,也没找到问题。上网搜,可以在run方法里面主动设置输出的键和值的类型,
上传到hadoop集群启动,还是报相同的错误,再检查代码发现原因是没有设置mapper类,设置了两次jar包的主类。
重新设置 一下即可。
说明作业提交之后,由于没有map类,切分后的数据直接交给reduce来处理,导致报了这个错。