前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据-ReduceTask工作机制和ReduceTask并行度

大数据-ReduceTask工作机制和ReduceTask并行度

作者头像
cwl_java
发布2019-12-26 15:51:33
3480
发布2019-12-26 15:51:33
举报
文章被收录于专栏:cwl_Javacwl_Java

5. ReduceTask 工作机制和 ReduceTask 并行度

在这里插入图片描述
在这里插入图片描述

Reduce 大致分为 copy、sort、reduce 三个阶段,重点在前两个阶段。copy 阶段包含一 个 eventFetcher 来获取已完成的 map 列表,由 Fetcher 线程去 copy 数据,在此过程中 会启动两个 merge 线程,分别为 inMemoryMerger 和 onDiskMerger,分别将内存中的 数据 merge 到磁盘和将磁盘中的数据进行 merge。待数据 copy 完成之后,copy 阶段就 完成了,开始进行 sort 阶段,sort 阶段主要是执行 finalMerge 操作,纯粹的 sort 阶段, 完成之后就是 reduce 阶段,调用用户定义的 reduce 函数进行处理

详细步骤

  1. Copy阶段 ,简单地拉取数据。Reduce进程启动一些数据copy线程(Fetcher),通过 HTTP方式请求maptask获取属于自己的文件。
  2. Merge阶段 。这里的merge如map端的merge动作,只是数组中存放的是不同map端 copy来的数值。Copy过来的数据会先放入内存缓冲区中,这里的缓冲区大小要比map 端的更为灵活。merge有三种形式:内存到内存;内存到磁盘;磁盘到磁盘。默认情 况下第一种形式不启用。当内存中的数据量到达一定阈值,就启动内存到磁盘的 merge。与map 端类似,这也是溢写的过程,这个过程中如果你设置有Combiner, 也是会启用的,然后在磁盘中生成了众多的溢写文件。第二种merge方式一直在运 行,直到没有map端的数据时才结束,然后启动第三种磁盘到磁盘的merge方式生成 最终的文件。
  3. 合并排序 。把分散的数据合并成一个大的数据后,还会再对合并后的数据排序。
  4. 对排序后的键值对调用reduce方法 ,键相等的键值对调用一次reduce方法,每次调用会 产生零个或者多个键值对,最后把这些输出的键值对写入到HDFS文件中。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 5. ReduceTask 工作机制和 ReduceTask 并行度
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档