hadoop java hadoop-streaming

通过java编写的hadoop程序与通过hadoop-streaming(c++)在reduce阶段的区别:

对于前者,由map阶段输出的<k,v>会将相同的k哈希到结构<k,list v>,并用一个reduce处理。因此在reduce中,得理完这个<k,list v>就可以输出。

对于后者,map输出也是<k,v>结构,同样也会将相同的k哈希到一起,但是,不是<k,list v>结构,而仍然是<k,v>结构,相同的k会在一起,因此,reduce阶段读入的一条记录仍然是<k,v>,在处理完成相同的记录之后,输出到标准输出即可。

也常这样做,在reduce中,定义一个全局的类,用map来保留统计结果,在while循环读取记录的时候,改写这个map。通常还会设定一个计数器,当读取记录大于20w,且当前读取的记录不等于前一条,则可以说明当前记录和前一条记录属于不同的组,就可以输出了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值