MapReduce原理及运行流程回顾
来源:互联网 发布:英国海军实力知乎 编辑:程序博客网 时间:2024/06/05 20:56
原理
1、对数据进行Split分片,把数据分为512M或者1G每片;
2、每一个数据分片起一个线程对其进行Map操作,将数据转化成Key-Value对;(每个线程相互独立,线程之间无需通信,可以并行操作)
3、Shuffle将hash值相同的Key放到一个桶里面;
4、再起一个线程对每个桶里面Hash值相同的Value进行Reduce(规约)操作;
截一张PPT,能够很好地讲清楚MapReduce的过程:
数据从HDFS上来,InputFormat进行数据切片,Map操作形成Key-value对,Partitioner按照Hash值将数据放到不同的分片中,将数据写到本地磁盘。Shuffle完成数据远程拷贝,将存在各节点的Hash值相同的分片数据拉取到一个Reduce Task中,然后进行Sort排序实现分组,最后进行Reduce操作进行规约,将结果写回到HDFS上。
PS:Combiner可以看做local reducer,数据在本地先规约。有些可用Sum( ),有些不能Average( )。
Partitoner默认实现Hash取模,hash(key) mod R ,默认R是Reduce Task数。
一、MapReduce将整个运行过程分为两个阶段:Map阶段和Reduce阶段(红色是用户可编写)
1、Map阶段由一定数量的Map Task组成
输入数据格式解析:InputFormat(默认TextInputFormat)
输入数据处理:Mapper
数据分组:Partitioner
2、Reduce阶段由一定数量的Reduce Task组成
数据远程拷贝
数据按照key排序
数据处理:Reducer
数据输出格式:OutputFormat(默认TextOutputFormat)
二、MapReduce编程模型的物理结构:
运行流程
1、Client将应用程序提交到ResourceManager上;
2、Yarn负责资源管理,RM会寻找到对应的NM;
3、NM会将MR AppMaster启动起来;
4、MR AppMaster知道需要启动多少个MapTask、ReduceTask,这时候会向RM申请资源。RM会将资源的分配告诉给MR AppMaster;
5、MR AppMaster和申请分配资源对应的NM进行通信,要求启动相应的MapTask和ReduceTask;
6、各个NM就会启动相应的MapTask和ReduceTask完成任务。
- MapReduce原理及运行流程回顾
- 触摸屏-原理及流程回顾
- Mapreduce工作原理及流程
- MapReduce的原理和运行流程
- 走向云计算之MapReduce原理和运行流程详解
- hadoop作业调优参数整理及原理(整个mapreduce运行流程都讲的清楚,一步一步优化)
- hadoop作业调优参数整理及原理(整个mapreduce运行流程都讲的清楚,一步一步优化)
- MapReduce作业运行流程
- MapReduce 运行流程概要
- MapReduce程序运行流程
- MapReduce作业运行流程
- MapReduce的运行流程
- MapReduce的运行流程
- MapReduce运行全流程
- Struts的运行原理及开发流程
- 集群运行mapreduce原理
- MapReduce的运行原理
- MapReduce&Yarn 运行原理
- 【矩阵快速幂】ZOJ 3690 Choosing number
- 如何在android studio中导入外部包
- 预言性的基于事例推理技术
- 打印菱形 字母金字塔和杨辉三角
- ScopeGuard
- MapReduce原理及运行流程回顾
- cmd 连接db2
- php exec python script not working [Solved]
- [异能程序员]第三章 异能初现(第三更)
- Compile FFmpeg on Ubuntu
- LeetCode #7 Reverse Integer
- php:顺序查找和二分查找
- [异能程序员]第四章 偶遇(第四更)
- MySQL Cluster 概述