Hadoop运行流程分析
来源:互联网 发布:淘宝链接咋发 编辑:程序博客网 时间:2024/04/29 20:46
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两个计算过程,计算流程如下:
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运行流程分析
- Hadoop运行流程分析
- hadoop简单运行流程
- hadoop工作流程分析
- Hadoop--MapReduce运行处理流程
- WordPress 运行流程分析
- SpringMVC运行流程分析
- katch分析-运行流程
- struts2运行流程分析
- Struts2-运行流程分析
- Struts2运行流程分析
- struts2运行流程分析
- springMVC运行流程分析
- structs2 运行流程分析
- Struts2 运行流程分析
- Yii2 分析运行流程
- Struts2运行流程分析
- Multi-View视频序列链接
- jsp的模式对象
- Revit二次开发之ISelectionFilter 接口的用法
- TCP三次握手/四次挥手详解
- tomcat6管理员的配置
- Hadoop运行流程分析
- ACM恺撒密码C++实现
- 给工厂分配公司代码
- out隐式对象
- 验证码与flash图片交换效果的实现
- 野指针
- POJ2125:Destroying The Graph
- ASP.NET系统用户权限在.NET中的设计与实现
- C语言编译全过程剖析