map reduce takeaways

首先是数据的partition,  share nothing parallel architecture,  执行task的machine独立,各自处理自己的partition,不需要通信

暴露给用户的控制点只有2个 map function 和 reduce function,但是整个流程包含更多的步骤,(其他的步骤是infrastructure做的)

1)load/partition: 文件写到 hdfs 就完成了,hdfs会分chunck。

2)map:对chunk中的每条记录(key value pairs)执行map function 输出到本地磁盘。

3)combine: optional, 和reducer function 一样,一个chunk/partition中的 map 结果局部reduce。并不是所有的reduce都可以先局部reduce,(需要满足交换律和结合律),combine和reduce一样,是要先排序的。

4)shuffle:把mapper 输出的结果,按key hash到 reduce。reducer知道某个key是否属于自己,会到所有的mapper node的本地磁盘pull自己的key。

5)sort: 排序是为了聚合,把相同的key聚合到一起,便于iterate,这就是为什么reduce function是参数是( key,list of values)

6)reduce: 执行reduce function,输出到hdfs。


分布式系统就是一堆分布式的process,从这个view去看:

有一个master process 负责协调 - JobTracker

map task process:读chunk,parse record,call map function

reduce task process:shuffle(pull from map machine's local disk), sort, and call reducer function


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值