mapreduce工作流程

mapreduce工作流程1

mapreduce工作流程2

mapreduce工作流程

  1. 客户端submit前会获取待处理数据的信息,根据这些参数会生成一个任务分配规划
  2. 客户端提交切片信息,程序jar包,任务配置
  3. yarn计算需要启动的maptask的数量
  4. maptask拿到切片后调用inputformat中的RecordReader将原始数据转换为KV形式
  5. 将kv值交给mapper
  6. mapper逻辑处理完成后将数据交给outputcollector写入到环形缓冲区shuffle(80%后溢写,默认100M)
  7. 从shuffle阶段的数据做一次全排序,按照key有序
  8. 快速排序完成后溢写到文件
  9. 归并排序为一个文件
  10. 所有maptask任务完成后启动对应数量的reducetask任务
  11. maptask产生的文件交给reduce
  12. 所有maptask的文件在发生一次归并排序
  13. 进行reduce逻辑
  14. 交给outputformat的recordWriter写入文件

shuffle的大小影响执行效率,原则上大一点会增加执行效率
环形缓冲区的优势,无头无尾,都可以写,一边存k,一边存v,方便排序,提高效率


文章作者: ajin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ajin !
评论
 上一篇
hadoop小结 hadoop小结
概述 namenode:存储文件元数据,文件名,文件目录结构,文件属性(生成时间,副本数,文件权限等)以及每个文件的块列表和块所在的datanode等 datanode:在本地文件系统存储文件块数据,以及块数据的校验和 secondary
2020-01-22
下一篇 
datanode工作机制 datanode工作机制
原理 datanode首次启动后向namenode注册 namenode返回注册成功应答 每周期向namenode上报所以块信息(每小时) 心跳消息3秒一次,心跳返回结果带有nn给datanode的命令 超过10分钟没有联系会自动任务不可
2020-01-22
  目录