数据开发面经——美团

1.MapReduce的整个的执行流程

1.map

  • read:InputFormat读取待处理文本,然后进入到mapper中
  • map:用户自定义的mapper方法
  • collect:mapper方法输出到环形缓冲区,在进去缓冲区之前,先进行了分区,默认是hash分区,一般用户自定义分区,写到80%的时候,开启反向溢写,相当于又开了一个线程,原先的线程继续往缓冲区读,新的线程将缓冲区数据写到磁盘
  • 溢写:在写入磁盘之前进入了一次快速排序,保证分区内有序
  • merge:所有的文件都溢写完之后,在磁盘上进行了一次归并排序,区内有序

2.mrAPPmaster在观测到map阶段全部完成后,开启reduce task
3.reduce

  • copy:主动的从磁盘上拉取对应分区的数据
  • sort:进行一次归并排序,
  • reduce:相同key的数据进入到同一个reduce,最后,由outformat往出写。

2.yarn执行一个application的流程

首先,jar包main方法里执行了waitforcompletion(),开启yarnrunner,yarnrunner向集群的老大也就是resourcemanager申请运行一个application
resourcemanager返回给yarnrunner一个资源路径,让其提交job资源和application_id
job把split、xml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值