首页 > 其他分享 >mapreduce流程

mapreduce流程

时间:2024-11-05 21:58:56浏览次数:2  
标签:map 流程 reduce mapreduce 切片 任务 键值 缓冲区

  • 逻辑切片

1、逻辑切片对block块进行切分,切分的结果将影响map任务的数量
2、split切片的大小默认是128M,与block块大小一样,一个block块会有一个切片
3、如果读取到最后一个block块时会与前一个block进行合并,合并后的大小如果大于1281.1将会各自生成一个切片,合并后的大小如果小于1281.1,就会只生成一个切片

  • map任务

1、数据进入到map任务会被封装成<k,v>键值对的格式
2、map任务要做的事,每个需求的处理逻辑是不一样的,所以map任务的逻辑需要自己在程序中编写
3、每读取到的一行数据都会执行一遍map逻辑

  • 环形缓冲区

概述

1、被map任务处理过的数据要写入磁盘中,直接写入磁盘的话,当map任务生成的数据过多时会来不及写入磁盘,环形缓冲区可以解决这个问题
2、环形缓冲区是一个基于内存的数据结构,默认大小是100M

工作内容

1、map任务输出的键值对会先进入到环形缓冲区
2、对map任务的键值对结果根据建进行编号【编号取决于reduce的个数,reduce的个数可以在执行mapreduce作业之前自己设置,默认只提供一个reduce】
3、编号之后对缓冲区的键值对数据进行排序【快速排序】
4、当环形缓冲区的数据内容达到80%的时候开始向磁盘将这80%的数据整个溢写到磁盘,形成一个小文件
小文件写到磁盘后
会把每个map任务产生小文件合并成一个,合并的过程中排序归并排序,【将编号一样的排在一起】

环形缓冲区最终在磁盘上小文件的数量

1、溢写的百分比,百分比越小,生成的小文件越多
2、split切片的大小,切片越大,map任务处理的数据量越多,就会有很多的80%溢写,生成的小文件就越多

  • reduce阶段

1、reduce从每个map结果文件中拉取分区编号相同的数据,形成一个文件
2、拉取的次数多,形成的小文件就多,这时会把分区编号去掉然后把小文件合并,合并的过程中使用归并排序,相同的键为一组,值生成一个迭代器,构成一个新的键值对
3、归并排序后的结果交给reduce任务【reduce任务的逻辑需要自己编写】进行处理
4、每一个分组后的键值对,都会执行一遍reduce方法的逻辑

标签:map,流程,reduce,mapreduce,切片,任务,键值,缓冲区
From: https://www.cnblogs.com/w-ll/p/18526741

相关文章

  • mapreduce案例_词频统计
    统计文件中英文单词出现的次数importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.Job;importorg.apache.hadoop.mapreduce.......
  • 开发中使用UML的流程_01概述
    目录CIM-1:定义业务流程CIM-2:分析业务流程​CIM-3:定义系统范围​PIM-1:分析系统流程PIM-2:分析业务规则PIM-3:定义静态结构PIM-4:定义操作和方法开发中使用UML的流程,主要分为7部分,具体如下:CIM-1:定义业务流程定义及分析业务流程是为了尽快理清系统范围,以便估算开发成本及......
  • 2024/11/4日 日志 关于JavaScript 变量、数据类型、类型转换和流程控制语句的学习
    经过两天的休憩,状态更佳,后面的笔记和学习进度也会加快JavaScript变量、数据类型、类型转换和流程控制语句点击查看代码----变量--JavaScript中用var关键字(variable的缩写)来声明变量--vartest=20;--test="张三":--·JavaScript是一门弱类型语言变量可......
  • 2025浙江省考报名流程详细教程
    2025年浙江省考报名马上就要开始了,有想要参加浙江省考的同学,可以提前看一下报名流程,和报名照要求。报名时间:11月6日9时一11月11日17时南核时间:11月6日9时一11月13日17时缴费时间:11月14日9时一11月18日17时笔试时间:2024年12月8日报名照要求:近期免冠正面证件照,源文件必......
  • flutter 专题四 Flutter渲染流程
    一、Widget- Element -RenderObject关系二、Widget、Element、RenderObject分别表示什么2.1 Widget    Widget描述和配置子树的样子Widget就是一个个描述文件,这些描述文件在我们进行状态改变时会不断的build。但是对于渲染对象来说,只会使用最小的开销来......
  • SpringBoot源码解析(二):启动流程之引导上下文DefaultBootstrapContext
    SpringBoot源码系列文章SpringBoot源码解析(一):启动流程之SpringApplication构造方法SpringBoot源码解析(二):启动流程之引导上下文DefaultBootstrapContext目录前言一、入口二、DefaultBootstrapContext1、BootstrapRegistry接口2、BootstrapContext接口3、DefaultBo......
  • 仓储物流机器人信息流【任务下发到机器人执行的完整流程】
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、业务系统下发任务二、调度系统任务拆解与分配三、机器人控制系统解析指令四、各功能模块执行与传感反馈五、实时数据上报与状态监控六、调度系统反馈与异常处理七、任务完成与电量管理总......
  • matlab学习笔记:第四章程序流程控制(总)
    4.1条件语句 4.1.1if-elseif-else-end语句易错点:elseif关键字中间不能加空格,不能写成elseif,这和C、Java等语言不同。注意:在使用if语句时,if和end这两个关键字是无论如何都不能省略的。而elseif和else可以根据自己的需要来决定是否添加。如果if和elseif后面表达式的计算结......