Hadoop学习之MapReduce运行流程
来源:互联网 发布:win10手写笔记本软件 编辑:程序博客网 时间:2024/05/17 15:19
MapReduce运行流程:
1)MR程序启动后,会先启动MRAppMaster,MRAppMaster会根据job的信息计算需要的maptask数量,向集群申请资源,启动maptask进程;
2)maptask启动后,根据指定的数据切片(逻辑切片)进行数据处理:
a.根据指定的InputFormat获取RecordReader,读取数据,解析成kv对;
b.将kv对传递给用户定义的map方法,做数据处理,映射成另外的kv对形式,并存放在一个环形缓冲区中,默认100M;
c.环形缓冲区中数据达到一定阈值后会不断溢出到磁盘,溢出的过程中,会进行shuffle处理:
1.partitioner进行分区(默认分区方法为:对key进行哈希然后模除reducer个数);
2.根据key排序(快速排序);
3.combiner根据key进行局部合并。
d.将溢出的小文件合并成一个大文件,并进行shuffle处理,此时的排序算法为归并排序。
3)MRAppMaster监测到一定数量的maptask任务完成后,根据用户指定的参数启动相应数量的reducetask进程,并告知reducetask要处理的分区范围;
4)reducetask启动后会根据MRAppMaster告知的待处理数据所在位置,根据自己的分区号,从maptask端fetch自己分区号的数据,并进行合并(归并排序),此时所有的shuffle过程就结束了。然后reducetask会根据key进行分组,调用reduce()方法进行数据处理,收集运算结果kv,调用用户定义的outputformat将结果输出到外部存储。
阅读全文
0 0
- Hadoop学习之MapReduce运行流程
- Hadoop--MapReduce运行处理流程
- hadoop--之mapreduce框架流程
- Hadoop之MapReduce运行理解
- Hadoop之MapReduce运行原理
- Hadoop-MapReduce Job本地运行流程
- Hadoop学习笔记之如何运行一个MapReduce程序
- 【学习笔记】用Hadoop在MapReduce中WordCount简单程序运行详细流程
- Hadoop之MapReduce程序开发流程
- Hadoop入门之Mapreduce部分流程解析
- Hadoop入门之Mapreduce流程Shuffle过程
- Hadoop学习之MapReduce(一)
- Hadoop学习之MapReduce(二)
- Hadoop学习之MapReduce(三)
- Hadoop学习之MapReduce(四)
- Hadoop学习之MapReduce(五)
- Hadoop学习之MapReduce(六)
- Hadoop学习之MapReduce(一)
- python过滤敏感词
- MySQL BTree索引和hash索引的区别
- Oracle分析函数之lead()和lag()函数
- java时区——获得某一时区的某一时刻一天的开始结束时间
- 七种排序算法总结
- Hadoop学习之MapReduce运行流程
- CoordinatorLayout实现的一个小玩意儿
- MyEclipse或Eclipse导入导出项目
- 震惊!看博文之前竟然要...
- tensorflow之mnist进阶
- 使用systemctl enable 命令实现tomcat开机自启动
- P1115 最大子段和
- zookeeper集群搭建1Master、2Slaves
- HDU 补图最短路