在运行MapReducer程序时,发现只输出了文件夹但文件夹没有任何文件,错误代码为下:
2022-02-21 08:45:26,069 INFO [org.apache.hadoop.mapreduce.Job] - Job job_local1813968227_0001 running in uber mode : false 2022-02-21 08:45:26,076 INFO [org.apache.hadoop.mapreduce.Job] - map 100% reduce 0% 2022-02-21 08:45:26,080 INFO [org.apache.hadoop.mapreduce.Job] - Job job_local1813968227_0001 failed with state FAILED due to: NA 2022-02-21 08:45:26,099 INFO [org.apache.hadoop.mapreduce.Job] - Counters: 30
显示 Job job_local1813968227_0001 failed with state FAILED due to: NA
Debug后发现程序只进行了map和shuffle阶段,没有进入Reduce,这时候检查Reduce的输入值,没有错误
检查Bean类代码时,发现对Bean序列化时
打开write()的源码看到
这个write方法只是一个写入输出流,它不能被接口 DataInput 的 readInt() 方法读取,
所以在反序列化中
这个readInt方法不能读取amount
解决方法:
将write()改成writeInt()
writeInt()源码为:
(这行代码检查了两个小时。。。。 调用方法需谨慎啊!)



