写mapreduce时的注意点


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的切把第一行的列名去掉得以解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值