- 0
- 0
- 约2.49千字
- 约 3页
- 2026-01-23 发布于北京
- 举报
MapReduce的执行过程
步骤:
①首先对输入数据源进行切片;
②Master调度worker执行map任务;
③Worker输入源片段;
④Worker执行map任务,将任务输出保存在本地;
⑤Master调度worker执行reduce任务,reduceworkermap任务的输出
文件;
⑥执行reduce任务,将任务输出保存到HDFS.
合并到磁盘
内存缓冲区
Map端的情况
整个流程分为四步:每个maptask都有一个内存缓冲区,着map的输出结果;当缓冲
区快满的时候需要将缓冲区的数据已一个临时文件的方式存放到磁盘,当整个maptask结束
后再对磁盘中的这个maptask产生的所有临时文件做合并,生成最终的正式输出文件,然后
等待reducetask来处理。
1)经过mapper的运行后,我们得到的mapper输出是一个key/value对,那
对于输出的结果应该交给哪个reduce去做呢????然而MapReduce
Partition接口,它的作用就是根据key或value及reduce的数量来决定当
前的这对输出数据最终应该交给哪个reducetask处理。默认对keyhash
以后再以reducetask数量取模,默认的取模方式就是为了平均reduce的
处理能力。将数据交给reduce处理后,接下来就需要将数据写入内存缓冲
区中,缓冲区的作用就是批量收集map结果,减少磁盘的IO的影响。我
们的key/value对以及partition的结果都会被写入内存缓冲区,这个内存
缓冲区的大小是有限制的,默认是100MB。当maptask的输出结果很多
时,就有肯能内存,所以一定条件下将缓冲区的数据临时写入磁盘,
然后重新利用这块缓冲区。这个从内存写入磁盘的过程被称为spill,也就
是溢出。这个溢写是有单独线程来完成,不影响往缓冲区写map结果的线
程。溢写线程启动时不应该map的结果输出,所以整个缓冲区有一个
溢写的比例spill.percent。这个比例默认是0.8,也就是当缓冲区的数据达
到阀值时,溢写线程开始启动,锁定这80MB的内存,执行溢写过程。Map
task的输出结果可以往剩下的20MB内存中写,互不影响。
2)每次溢写在磁盘上生成溢写文件,如果map的输出结果真的很大,就会有
多次这样的溢写发生,磁盘上相应就会有很多个溢写的文件存在。当map
task真正完成时,内存缓冲区中的数据也会全部溢写到磁盘中形成一个溢
写文件。最终磁盘中至少有一个这样的溢写文件存在(如果map的输出结
果很少,map执行完成时,只会产生一个溢写文件),因为最终的文件只
有一个,所以需要将这些溢出的文件归并到一起,这个过程叫做merge。
您可能关注的文档
- 共点力平衡及其应用同步精练.pdf
- 输血反应急预案演练脚本:发热与溶血反应处理.pdf
- 页面间值传递方式及C#中重载与重写区别.pdf
- 荒岛生存启示录——读<鲁滨逊漂流记>有感.pdf
- 九年级下册题型小卷一试题.pdf
- 摄像机TC VQ1080产品说明.pdf
- 2014年上半年信息系统项目管理师下午案例分析试题.pdf
- 高考物理:静电力演示仪中乒乓球受力分析及静电感应现象探讨.pdf
- 初中数学第六章数据收集与综合练习.pdf
- 1-4网络市场分析:生眼镜市场需求与策略研究.pdf
- 全过程工程管理造价咨询工程监理项目服务方案投标方案(技术部分).doc
- 招标代理服务投标技术服务方案(技术方案).doc
- AI大模型与AIGC技术在公安领域的应用解决方案(99页 PPT).pptx
- 工业4.0智能制造数字工厂规划方案.pptx
- 树立社会主义核心价值观.docx
- 三年(2023-2025)中考历史真题分类汇编(全国)专题21 科技文化与社会生活(解析版).docx
- 2025年中考道德与法治真题完全解读(吉林卷).pdf
- 2025年中考道德与法治真题完全解读(安徽卷).pdf
- 三年(2023-2025)中考历史真题分类汇编(全国)专题14 人民解放战争(解析版).pdf
- 三年(2023-2025)广东中考历史真题分类汇编:专题03 中国近代史(八年级上册)(解析版).docx
原创力文档

文档评论(0)