Hadoop运行流程分析
2013-08-13 11:51
204 查看
1. 概述
Hadoop MapReduce基于“分而治之”的思想,将计算任务抽象成map和reduce两个计算过程,计算流程如下:
map过程包括:
1). 从磁盘读入数据
2). 运行map任务
3). 写结果到磁盘
reduce过程包括:
1). shuffle&sort
2). 运行reduce任务
3). 写结果到磁盘
2. 分析
在map的第三个阶段,map任务的输出会被Partitioner类以指定的方式区分地写出到输出文件里,如果提供了Combiner,在Mapper输出键值时,键值对不会被马上写到输出里,他们会被缓冲在内存中,当达到一定的数据量时,这部分数据会在Combiner中进行合并,然后再输出到Partitioner中。这个阶段通过将数据写入磁盘提高了系统的可靠性,但降低了性能。
在reduce的第一个阶段,Hadoop框架会根据Map结果中的key,将相关的结果传输到某一个Reducer上,这个步骤中的远程传输使用了HTTP协议。
3. 优化
对于map的第三个阶段,HOP(Hadoop Online Prototype)在保留Hadoop的容错性前提下,使数据在各个任务间以管道的方式交互,可增加任务的并发性,缩短响应时间。sphere使用流处理计算模型,在数据由一个SPE流向另一个SPE的过程中,没有写入磁盘。
在reduce的shuffle阶段,数据传输采用HTTP协议,这样降低了系统的传输系统,可以考虑采用UDT协议(sector/sphere采用)。
4. 参考文献
http://code.google.com/p/hop/ http://cloud.csdn.net/a/20100729/277460.html http://dongxicheng.org/mapreduce/hadoop-shuffle-phase/ http://blog.csdn.net/yfkiss/article/details/6901152 http://udt.sourceforge.net/
Hadoop MapReduce基于“分而治之”的思想,将计算任务抽象成map和reduce两个计算过程,计算流程如下:
map过程包括:
1). 从磁盘读入数据
2). 运行map任务
3). 写结果到磁盘
reduce过程包括:
1). shuffle&sort
2). 运行reduce任务
3). 写结果到磁盘
2. 分析
在map的第三个阶段,map任务的输出会被Partitioner类以指定的方式区分地写出到输出文件里,如果提供了Combiner,在Mapper输出键值时,键值对不会被马上写到输出里,他们会被缓冲在内存中,当达到一定的数据量时,这部分数据会在Combiner中进行合并,然后再输出到Partitioner中。这个阶段通过将数据写入磁盘提高了系统的可靠性,但降低了性能。
在reduce的第一个阶段,Hadoop框架会根据Map结果中的key,将相关的结果传输到某一个Reducer上,这个步骤中的远程传输使用了HTTP协议。
3. 优化
对于map的第三个阶段,HOP(Hadoop Online Prototype)在保留Hadoop的容错性前提下,使数据在各个任务间以管道的方式交互,可增加任务的并发性,缩短响应时间。sphere使用流处理计算模型,在数据由一个SPE流向另一个SPE的过程中,没有写入磁盘。
在reduce的shuffle阶段,数据传输采用HTTP协议,这样降低了系统的传输系统,可以考虑采用UDT协议(sector/sphere采用)。
4. 参考文献
http://code.google.com/p/hop/ http://cloud.csdn.net/a/20100729/277460.html http://dongxicheng.org/mapreduce/hadoop-shuffle-phase/ http://blog.csdn.net/yfkiss/article/details/6901152 http://udt.sourceforge.net/
相关文章推荐
- Hadoop运行流程分析
- Hadoop-2.4.1源码分析--HDFS HeartBeat(心跳检测)之BPServiceActor工作线程运行流程(下)
- Hadoop-2.4.1源码分析--HDFS HeartBeat(心跳检测)之BPServiceActor工作线程运行流程(上)
- HDFS源码分析心跳汇报之BPServiceActor工作线程运行流程
- hadoop工作流程分析
- ffplay程序运行流程分析
- hadoop 2.7.3 源码分析(四):namenode启动流程
- Struts2运行流程分析
- Spark源码分析之一:Job提交运行总流程概述
- MVC封装框架 第一步 (分析mvc框架运行流程)
- Hadoop0.21.0源码流程分析(3)-Task节点管理启动任务
- Hadoop源码分析笔记(八):HDFS主要流程
- Hadoop中shuffle阶段流程分析
- Nutch爬虫运行流程分析
- Hadoop源码分析13: IPC流程(8) Server的wait、notify
- Hadoop源码分析24 JobTracker启动和心跳处理流程
- Volley运行流程及缓存分析
- hadoop2之HDFS分析:Client与DataNode流程分析
- Apache Shiro的运行流程和权限控制方式分析
- Play之Scala-Web项目运行流程-简单分析(2)