关于MapReduce(一)

Map

  1. 以一条记录为单位做映射。
  2. 映射、变换、过滤。
  3. 1进N出。
  4. map的数量由切片(split,一般情况下split默认等于hdfs中的block)的数量决定的。

Reduce

  1. 以一组为单位做计算。(前置条件:分组 key:value k,v是由map来实现的)
  2. 分解、缩小、归纳。
  3. 一组进N出。
  4. (KEY,VAL):键值对的键划分数据的分组。
  5. reduce的并行度数量由设置来决定。(默认数量为1)

名词关系

  1. block > split
    1:1
    N:1
    1:N
  2. split > map
    1:1
  3. map > reduce
    N:1
    N:N
    1:1
    1:N
  4. group(key) > partition
    1:1
    N:1
    N:N
    1:N

MapReduce

数据以一条记录为单位,通过map方法映射k,v,相同的key为一组,这一组数据调用一次reduce方法,在方法内迭代计算这一组数据。

MapTask

  1. 切片会格式化出记录,以记录为单位调用 map方法。
  2. map的输出要映射成成KV,KV会参与分区计算,拿着K算出P(分区号),K,V,P。
  3. MapTask的输出是一个文件,存储在本地的文件系统中。
  4. 内存缓冲区溢写磁盘时,做一个2次排序:分区有序,且分区内key有序;未来相同的一组key会相邻的排在一起。
  5. reduce的归并排序其实可以和reduce方法同时发生,尽量减少IO。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值