首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ReduceTask工作机制?

ReduceTask工作机制?

提问于 2021-10-04 10:24:16
回答 0关注 0查看 108

回答

成为首答用户。去 写回答
相关文章
大数据-ReduceTask工作机制和ReduceTask并行度
Reduce 大致分为 copy、sort、reduce 三个阶段,重点在前两个阶段。copy 阶段包含一 个 eventFetcher 来获取已完成的 map 列表,由 Fetcher 线程去 copy 数据,在此过程中 会启动两个 merge 线程,分别为 inMemoryMerger 和 onDiskMerger,分别将内存中的 数据 merge 到磁盘和将磁盘中的数据进行 merge。待数据 copy 完成之后,copy 阶段就 完成了,开始进行 sort 阶段,sort 阶段主要是执行 finalMerge 操作,纯粹的 sort 阶段, 完成之后就是 reduce 阶段,调用用户定义的 reduce 函数进行处理
cwl_java
2019/12/26
3850
大数据-ReduceTask工作机制和ReduceTask并行度
MapTask,ReduceTask,MapReduce运行机制详解
在之前的博客中,小菌为大家分享了MapReduce的整体流程。这篇博客,主要针对MapTask与ReduceTask运行机制的一个详解与MapReduce总体运行机制做一个较为详细的介绍!
大数据梦想家
2021/01/22
7020
MapTask,ReduceTask,MapReduce运行机制详解
MapReduce快速入门系列(11) | MapTask,ReduceTask以及MapReduce运行机制详解
  整个Map阶段流程大体如上图所示。简单概述:inputFile通过split被逻辑切分为多个split文件,通过Record按行读取内容给map(用户自己实现的)进行处理,数据被map处理结束之后交给OutputCollector收集器,对其结果key进行分区(默认使用hash分区),然后写入buffer,每个map task都有一个内存缓冲区,存储着map的输出结果,当缓冲区快满的时候需要将缓冲区的数据以一个临时文件的方式存放到磁盘,当整个map task结束后再对磁盘中这个map task产生的所有临时文件做合并,生成最终的正式输出文件,然后等待reduce task来拉数据。 详细步骤: 1、首先,读取数据组件InputFormat(默认TextInputFormat)会通过getSplits方法对输入目录中文件进行逻辑切片规划得到splits,有多少个split就对应启动多少个MapTask。默认情况下split与block的对应关系默认是一对一。 2、将输入文件切分为splits之后,由RecordReader对象(默认LineRecordReader)进行读取,以\n作为分隔符,读取一行数据,返回<key,value>。Key表示每行首字符偏移值,value表示这一行文本内容。 3、读取split返回<key,value>,进入用户自己继承的Mapper类中,执行用户重写的map函数。RecordReader读取一行用户重写的map调用一次,并输出一个<key,value>。 4、Map输出的数据会写入内存,内存中这片区域叫做环形缓冲区,缓冲区的作用是批量收集map结果,减少磁盘IO的影响。key/value对以及Partition的结果都会被写入缓冲区。当然写入之前,key与value值都会被序列化成字节数组。 环形缓冲区其实是一个数组,数组中存放着key、value的序列化数据和key、value的元数据信息,包括partition、key的起始位置、value的起始位置以及value的长度。环形结构是一个抽象概念。 缓冲区是有大小限制,默认是100MB。当map task的输出结果很多时,就可能会撑爆内存,所以需要在一定条件下将缓冲区中的数据临时写入磁盘,然后重新利用这块缓冲区。这个从内存往磁盘写数据的过程被称为Spill,中文可译为溢写。这个溢写是由单独线程来完成,不影响往缓冲区写map结果的线程。溢写线程启动时不应该阻止map的结果输出,所以整个缓冲区有个溢写的比例spill.percent。这个比例默认是0.8,也就是当缓冲区的数据已经达到阈值(buffer size * spill percent = 100MB * 0.8 = 80MB),溢写线程启动,锁定这80MB的内存,执行溢写过程。Map task的输出结果还可以往剩下的20MB内存中写,互不影响。 5、合并溢写文件:每次溢写会在磁盘上生成一个临时文件(写之前判断是否有combiner),如果map的输出结果真的很大,有多次这样的溢写发生,磁盘上相应的就会有多个临时文件存在。当整个数据处理结束之后开始对磁盘中的临时文件进行merge合并,因为最终的文件只有一个,写入磁盘,并且为这个文件提供了一个索引文件,以记录每个reduce对应数据的偏移量。 至此map整个阶段结束。
不温卜火
2020/10/28
1.2K0
MapReduce快速入门系列(11) | MapTask,ReduceTask以及MapReduce运行机制详解
SpringBoot工作机制
SpringBoot工作机制 (原创内容,转载请注明来源,谢谢) 一、概述 Spring Boot是对于Spring框架“约定优于配置”理念的实践产物。 一个最简单的Spring Boot的启动类如下(): import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public cl
用户1327360
2018/03/07
7810
SpringBoot工作机制
Kafka 工作机制
Kafka 是 Apache 的子项目,是一个高性能跨语言的分布式发布/订阅消息队列系统(没有严格实现 JMS 规范的点对点模型,但可以实现其效果),在企业开发中有广泛的应用。高性能是其最大优势,劣势是消息的可靠性(丢失或重复),这个劣势是为了换取高性能,开发者可以以稍降低性能,来换取消息的可靠性。
IT技术小咖
2019/06/26
1.2K0
Kafka 工作机制
ClassLoader工作机制
classLoader顾名思义就是类加载器。 负责将类加载到JVM中,它就好比开会时门口的接待员,负责给进入会场的嘉宾发放入证明,入会的嘉宾分为VIP会员,黄金会员,白金会员,和普通会员等。都赢的接待室也会分为VIP会员接待室,黄金会员接待室,白金会员接待室和普通会员接待室,不同等级的会员会被分到不同的接待室接待,所有的会员都想进入会场得有入会证明才行,一旦会员进入会场就会根据接待室的等级表示它们,也就是会员的身份由接待室决定。如果你是一位大佬但是你不是VIP接待室接待的,那么对不起,你仍然不是VIP会员。当然对你是不是VIP会有会有严格的审查规定,如果你是也不会冤枉你,但是如果你想还能进来那就另当别论了。 事实上,ClassLoader除了能将Class加载到JVM中之外,还有一个重要的作用就是审查每个类应该由谁加载,它是一种父优先的等级加载机制。ClassLoader除了上述两个作用外还有一个任务就是将Class字节码重新解析成JVM统一要求的对象格式。 所以,
MickyInvQ
2020/09/27
4170
ClassLoader工作机制
HDFS DN工作机制
HDFS(Hadoop Distributed File System)是一种分布式文件系统,可以存储和处理大规模数据集。在HDFS中,DN(DataNode)是一个工作节点,负责存储和管理数据块。
堕落飞鸟
2023/05/12
3400
ClassLoader的工作机制
本文中主要介绍类加载器的工作机制 一:首先什么是类加载器?   类加载器就是用来加载java类到java虚拟机中。java源程序经过编译之后形成字节码文件,类加载器将字节码文件加载到内存中,并转换成java.lang.Class的一个实例对象。   JVM是基于栈操作的:所有的操作都要经过进栈和出栈操作。基于栈操作的优点:将运行时的优化工作和执行编译时优化的执行引擎相结合,从而起到优化Java字节码的目的。 二: 类加载器的作用: 将编译后的class字节码文件加载到JVM中。会在加载的过程进行审查每个类有
用户2146856
2018/05/18
8490
kubeadm工作机制分析
更多关于kubernetes的深入文章,请看我csdn或者oschina的博客主页。 介绍 kubeadm一共提供了5个子命令: kubeadm init kubeadm join kubeadm token kubeadm reset kubeadm version 这个可以在k8s v1.5.0 代码中cmd/kubeadm/app/cmd/cmd.go:29看到: func NewKubeadmCommand(f cmdutil.Factory, in io.Reader, out, err io.W
Walton
2018/04/13
1.4K0
kubeadm工作机制分析
ClassLoader的工作机制
本文中主要介绍类加载器的工作机制 一:首先什么是类加载器?   类加载器就是用来加载java类到java虚拟机中。java源程序经过编译之后形成字节码文件,类加载器将字节码文件加载到内存中,并转换成java.lang.Class的一个实例对象。   JVM是基于栈操作的:所有的操作都要经过进栈和出栈操作。基于栈操作的优点:将运行时的优化工作和执行编译时优化的执行引擎相结合,从而起到优化Java字节码的目的。 二: 类加载器的作用: 将编译后的class字节码文件加载到JVM中。会在加载的过程进行审查每个类有
用户2146856
2018/06/26
4050
ElasticSearch的工作机制
ElasticSearch,和Solr一样,是底层基于Apache Lucene,且具备高可靠性的企业级搜索引擎。
星哥玩云
2022/07/03
3010
ElasticSearch的工作机制
Activiti工作流杂谈-工作机制详解
以下内容为博主在公司内部分享的一个小文档,谈到了activiti的各方面内容,有需要的可留言要word原文件 
kl博主
2018/04/13
3.7K2
Activiti工作流杂谈-工作机制详解
Istio架构及其工作机制
Istio 服务网格从逻辑上分为数据平面和控制平面,因为Istio是Envoy的控制平面。
Yuou
2022/09/26
9670
Istio架构及其工作机制
Docker registry工作机制简介
龚军
2017/05/09
5.8K0
Docker registry工作机制简介
详解wordcount(TextInputFormat工作机制)
而百度上大部分教程都是用的hadoop0.x版本的api,容易误导新人,所以在看参考资料时要留意版本,学习合适的部分
平凡的学生族
2019/05/25
1.1K0
NameNode和SecondaryNameNode工作机制
(1)首次启动需要格式化NameNode,创建Fsimage和Edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
江帅帅
2020/07/28
5420
MapReduce之MapTask工作机制
MapTask:map----->sort map:Mapper.map()中将输出的key-value写出之前 sort:Mapper.map()中将输出的key-value写出之后
孙晨c
2020/07/21
3900
HDFS工作机制和原理
HDFS是一种分部式的文件系统,在他出现以前就已经存在了很多中分布式文件系统,但是他们都是部署在服务器上,需要高的POSIX接口,同时他们默认服务器是稳定的可以提供大量资源。
Tim在路上
2020/08/04
1.2K0
Java NIO工作机制简介
I/O 以流的方式处理数据,而 NIO 以缓冲区的方式处理数据;IO是阻塞的,NIO是非阻塞的,直到有数据被读取或者数据完全写入时,IO线程才开始执行操作,而NIO在如何情况都是非阻塞的
SmileNicky
2019/01/17
9480
电子邮件工作机制
相关的几个协议 -SMTP(Simple Mail Transfer Protocol) -POP(Post Office Protocol) -IMAP(在不同智能终端上管理邮件) 早期的电子邮件是
互联网金融打杂
2018/04/03
1.9K0
电子邮件工作机制

相似问题

MapTask工作机制?

1186

SecondaryNameNode 工作机制?

0123

HDFS的存储机制(读写流程)?

1205

cdn 0 缓存是什么机制?

1234

TBase支持哪些事务隔离机制啊?

1280
相关问答用户
腾讯云TDP | TDP会员擅长3个领域
平安资管 | 架构师擅长4个领域
擅长3个领域
擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档