hadoop map-red的执行过程
hadoop的 map-red就是一个并行计算平台,我们在使用这个平台的时候,要做的事情就是提交自己定制的任务(job,主要定制map类,reduce类,combine类等类),然后设置job的各种参数,比如设置mappe/reducer/combine类, 输入数据路径,输出数据路径,输出格式。然后可以根据日志或者web页面查看任务执行的情况,如果错误,通过web页面查看日志。对于map-red平台,我们可以设置各种参数,来使得我们提交的任务的执行效率得到优化,比如多少个reducer任务,分片大小等。
map-red的执行过程,首先分片由hadoop来完成,hadoop将完成的分片交给一个mapper任务,一个mapper任务可以不只执行一个分片,mapper任务的执行过程是,从data中读入一行,然后用我们自定义的mapper函数处理,每读入一行,调用mapper函数一次。 如果有多个reducer任务,hadoop还要进行分区,默认的分区器是“key.hash(reduce任务的个数)”(注: 可以写自己的分区器),也就是在一个分区中,是具有相同的hash值的key-value, 等到reducer任务运行的时候,会从对应于自身(hash对应)的多个mapper的相应分区中通过网络取过来放在本地,然后在reducer本地进行shuffle操作,shuffle操作是对多个map的输出进行一次重排序,因为单个map的输出已经是有序的啦(map写入磁盘前在内存中执行的),shuffle操作后进行reduc操作,将结果输出到目标地。(为什么要进行排序,为了reduce的输出?)
为了减少map和redu的之间传输的数据数量,在mapper操作完成后,在map处可以对中间数据进行一次combine处理,combine处理实质上是reduce数据的预处理在map本地的运行。combine是在map输出的中间数据写入到磁盘前运行,并且会反复运行,所以combine的另外一个意义也是使得map写入到磁盘的中间数据量更少。
如果没有reduce任务,hadoop会将map结果直接输出到目标地,如果有reduce,map的结果就是reduce的输入,即中间数据,hadoop把这些中间数据放在本地存储(是否是采用oracle的临时表空间的思想)。
hadoop map-red的执行过程的更多相关文章
- hadoop jar x.jar 执行过程
hadoop jar x.jar 执行过程 Yarn框架执行内容 1,job.waitforcompletion() 启动 Runjar 进程 -> Resourcemanage申请一个j ...
- Hadoop学习之Mapreduce执行过程详解
一.MapReduce执行过程 MapReduce运行时,首先通过Map读取HDFS中的数据,然后经过拆分,将每个文件中的每行数据分拆成键值对,最后输出作为Reduce的输入,大体执行流程如下图所示: ...
- Hadoop MapReduce执行过程详解(带hadoop例子)
https://my.oschina.net/itblog/blog/275294 摘要: 本文通过一个例子,详细介绍Hadoop 的 MapReduce过程. 分析MapReduce执行过程 Map ...
- (转载)Hadoop map reduce 过程获取环境变量
来源:http://www.linuxidc.com/Linux/2012-07/66337.htm 作者: lmc_wy Hadoop任务执行过程中,在每一个map节点或者reduce节点能获取 ...
- Hadoop 少量map/reduce任务执行慢问题
最近在做报表统计,跑hadoop任务. 之前也跑过map/reduce但是数据量不大,遇到某些map/reduce执行时间特别长的问题. 执行时间长有几种可能性: 1. 单个map/reduce任务处 ...
- Hadoop MapReduce执行过程实例分析
1.MapReduce是如何执行任务的?2.Mapper任务是怎样的一个过程?3.Reduce是如何执行任务的?4.键值对是如何编号的?5.实例,如何计算没见最高气温? 分析MapReduce执行过程 ...
- Hadoop mapreduce执行过程涉及api
资源的申请,分配过程略过,从开始执行开始. mapper阶段: 首先调用默认的PathFilter进行文件过滤,确定哪些输入文件是需要的哪些是不需要的,然后调用inputFormat的getSplit ...
- Hadoop 执行过程中出现 name node is in safe mode 问题
解决方法: 1.进入hadoop安装根目录 如 :我的hadoop 安装在/usr/local/hadoop 执行 cd /usr/local/hadoop bin/hadoop dfsadmin - ...
- MapReduce剖析笔记之五:Map与Reduce任务分配过程
在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体 ...
随机推荐
- java 中继承,组合,重载,重写的实现原理 (转)
我们知道,继承,组合,重载,重写是java语言的面向对象实现的基本特征. 那么在java内部,究竟是如何实现这些面对对象的基本特征的呢? 继承和组合是面向对象中代码复用的主要实现方式,他们可以达到类似 ...
- python简单实现用户表单登录
实现简单的用户表单验证登录 user="desperado" pwd=" s=0 for i in range(10): if s < 3: username = ...
- mysql 增删改查基本语句
增: insert insert into 表名(字段1,字段2,字段3......字段N) values(值1,值2,值3): 如果不申明插入那些字段,则默认所有字段. 在插入时注意,往哪个表增加, ...
- 深入浅出设计模式——抽象工厂模式(Abstract Factory)
模式动机在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法.但是有时候我们需要一个工厂可 ...
- LTE Module User Documentation(翻译13)——频率复用算法(Frequency Reuse Algorithms)
LTE用户文档 (如有不当的地方,欢迎指正!) 19 Frequency Reuse Algorithms(频率复用算法) 本节我们将描述如何在 LTE 仿真中使用频率复用(FR)算法.共有两 ...
- div 一段时间后自动隐藏
一.div弹出后自动消失 这里并没有删除 setTimeout(function(){$(".alert").hide();},2000); 直接在js文件中需要的地方添加执行这段 ...
- 原!!mybatis如何直接 执行传入的任意sql语句 并按照顺序取出查询的结果集
需求: 1.直接执行前端传来的任何sql语句,parameterType="String", 2.对于任何sql语句,其返回值类型无法用resultMap在xml文件里配置或者返回 ...
- WLAN拓扑介绍-07
学完本课程后,您应该能: 描述802.11基本概念 概括WLAN基本拓扑结构 列举华为WDS组网模式 描述mesh网络模式 802.11基本元素总结 BSS(Basic Service Set):基本 ...
- Java第一个程序
public class HelloWorld{ public static void main(String[] args){ System.out.println("七期项目二部&quo ...
- tiny_cnn 阅读(1)
从今天起, 我会每天把阅读tiny_cnn的阅读心得提交到博客园中希望大家在这个平台上可以多多交流: 关于如果阅读代码? 抓住重点,忽略细节 首先打开从github上下载的文件: 通过csdn和网上搜 ...