Hadoop之MapTask工作机制
Hadoop之MapTask工作机制
目录
- 并行度决定机制
- MapTask工作机制
1. 并行度决定机制
- 问题引出
maptask的并行度决定map阶段的任务处理并发度,进而影响到整个job的处理速度。那么,mapTask并行任务是否越多越好呢? - MapTask并行度决定机制
一个job的map阶段MapTask并行度(个数),由客户端提交job时的切片个数决定
,如下图所示。
2. MapTask工作机制
MapTask工作机制如下图
Read阶段:Map Task通过用户编写的RecordReader,从输入InputSplit中解析出一个个key/value。
Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。
Collect收集阶段:在用户编写map()函数中,当数据处理完成后,一般会调用OutputCollector.collect()输出结果。在该函数内部,它会将生成的key/value分区(调用Partitioner),并写入一个环形内存缓冲区中。
Spill阶段:即“溢写”,当环形缓冲区满后,MapReduce会将数据写到本地磁盘上,生成一个临时文件。需要注意的是,将数据写入本地磁盘之前,先要对数据进行一次本地排序,并在必要时对数据进行合并、压缩等操作。
溢写阶段详情:- 利用快速排序算法对缓存区内的数据进行排序,排序方式是,先按照分区编号partition进行排序,然后按照key进行排序。这样,经过排序后,数据以分区为单位聚集在一起,且同一分区内所有数据按照key有序。
- 按照分区编号由小到大依次将每个分区中的数据写入任务工作目录下的临时文件output/spillN.out(N表示当前溢写次数)中。如果用户设置了Combiner,则写入文件之前,对每个分区中的数据进行一次聚集操作。
- 将分区数据的元信息写到内存索引数据结构SpillRecord中,其中每个分区的元信息包括在临时文件中的偏移量、压缩前数据大小和压缩后数据大小。如果当前内存索引大小超过1MB,则将内存索引写到文件output/spillN.out.index中。
Combine阶段:当所有数据处理完成后,MapTask对所有临时文件进行一次合并,以确保最终只会生成一个数据文件。
当所有数据处理完后,MapTask会将所有临时文件合并成一个大文件,并保存到文件output/file.out中,同时生成相应的索引文件output/file.out.index。
在进行文件合并过程中,MapTask以分区为单位进行合并。 对于某个分区,它将采用多轮递归合并的方式。每轮合并io.sort.factor(默认100)个文件,并将产生的文件重新加入待合并列表中,对文件排序后,重复以上过程,直到最终得到一个大文件。
让每个MapTask最终只生成一个数据文件,可避免同时打开大量文件和同时读取大量小文件产生的随机读取带来的开销。
Hadoop之MapTask工作机制相关推荐
- Hadoop之Yarn工作机制详解
Hadoop之Yarn工作机制详解 目录 Yarn概述 Yarn基本架构 Yarn工作机制 作业提交全过程详解 1. Yarn概述 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于 ...
- Hadoop之ReduceTask工作机制
Hadoop之ReduceTask工作机制 目录 设置ReduceTask并行度(个数) 注意 实验:测试reducetask多少合适 ReduceTask工作机制 1. 设置ReduceTask并行 ...
- Hadoop之DataNode工作机制
Hadoop之DataNode工作机制 目录 DataNode工作机制 数据完整性 掉线时限参数设置 1. DataNode工作机制 DataNode工作机制如下图 一个数据块在DataNode上以文 ...
- 【hadoop】HDFS-HA工作机制
一.HA概述 1)所谓HA(High Available),即高可用(7*24小时不中断服务). 2)实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件的HA机制:HDFS的HA和YA ...
- MapTask的工作机制
MapTask工作机制图示 MapTask工作机制流程 1. Read阶段 MapTask通过用户编写的RecordReader,从输入InputSplit中解析出key/value. 2. Map阶 ...
- MapTask运行机制详解以及Map任务的并行度,ReduceTask 工作机制以及reduceTask的并行度,MapReduce总体工作机制
MapTask运行机制详解 整个Map阶段流程大体如图所示 简单概述 inputFile通过split被逻辑切分为多个split文件, 通过Record按行读取内容给map(用户自己实现的)进行处理, ...
- Hadoop大数据分布式文件系统hdfs的工作机制
HDFS集群分为两大角色:NameNode.DataNode NameNode负责管理整个文件系统的元数据 DataNode 负责管理用户的文件数据块 namenode工作机制 namenode职责: ...
- 王家林 云计算分布式大数据Hadoop实战高手之路第七讲Hadoop图文训练课程:通过HDFS的心跳来测试replication具体的工作机制和流程...
这一讲主要深入使用HDFS命令行工具操作Hadoop分布式集群,主要是通过实验的配置hdfs-site.xml文件的心跳来测试replication具体的工作和流程. 通过HDFS的心跳来测试repl ...
- Hadoop之NameNode和SecondaryNameNode工作机制详解
Hadoop之NameNode和SecondaryNameNode工作机制详解 NN和2NN工作机制 NN和2NN工作机制详解 Fsimage和Edits解析 checkpoint时间设置 1. NN ...
最新文章
- 新版IntelliJ IDEA Web项目配置完整流程
- 牵引力教育分析UI设计在市场饱和度如何?
- 统计所有带有null的特征
- GetProcAddress()用法
- 九、Pandas高级处理
- Java Collections singletonMap()方法与示例
- 计算机中专专业是什么意思,计算机专业的中专与大专有什么不同?
- Javascript——入门基础
- java模板设计学习
- MasterPage 变化了的 ClientID ctl00_
- 小技巧:Mac下快速锁屏
- Yahoo!用户体验与设计前副总裁推荐——《设计模式》
- js 效果 大记事-横向-重播
- 80ms 求解世上最难数独 —— DFS的灵活运用
- 【关于c/c++中开平方函数sqrt()的用法】
- 鄂州市网站建设多少钱,鄂州市建设企业网站要多少钱
- python土味情话_GitHub - MMstarry/itchat: 微信机器人 土味情话
- type_traits之 析取 合取 否定
- seekg(0,ios::beg)不起作用的原因和解决方法
- 地图上分成一块一块区域 高德地图_在谷歌地图上绘制行政区域轮廓【结合高德地图的API】...
热门文章
- linux ifconfig route ip 网络相关命令
- 解决appium安装app时某些手机弹出的提示框
- 提高阅读源代码的效率 转
- WCF中的ServiceHost初始化两种方式(宿主)
- UBUNTU804VirtualBox出现常见问题解决(转高手的)我转的CU的
- CodeForces - 1353E K-periodic Garland(思维+dp)
- CodeForces - 1326D2 Prefix-Suffix Palindrome (Hard version)(马拉车/回文自动机)
- python的应用论文_python 论文
- VMware多虚拟机网络配置
- POJ2527(两多项式取余)