写mapreduce时的注意点

来源:互联网 发布:成都犀牛软件培训 编辑:程序博客网 时间:2024/04/30 11:33


reduce的输出为《LongWriteble,FloatWritable》时会使其得不到执行,可以通过设置job.setCombinerClass(ClassPriorReducer.class);

来使其得以执行。


Hadoop中的数据类型转化为java类型时对于Text调用toString()方法,对于其他类型则调用get()方法,

java类型转化为Hadoop类型调用hadoop类型的构造方法或调用set()方法


jod.setCombinerClass(Reducer.Class)时要注意Combiner可以理解为小的Reducer,为了降低网络传输负载和后续Reducer的计算压力,但其输出还是要被Reducer处理,也就是说当选择自定义的Reducer作为Combine时,要注意Combine的输出为Reducer的输入,所以此时Reducer中的输入的《Key,Vlaue》与输出的《Key,Value》类型要保持一致,否则会报错的!!!  可以理解Combine是对一个Map进行相同的key合并,而reduce是对多个Combine的输出进行合并。


还有要注意的地方就是,用mapreduce处理csv文件时,要把代表列名的第一行删掉才能正确执行,切记!!


遇到map执行而reduce不执行时,可能是数据格式出了问题,换成csv的切把第一行的列名去掉得以解决

0 0
原创粉丝点击