论文部分内容阅读
随着互联网技术的快速发展与普及,人类社会已由信息时代进入了大数据时代,传统的计算模式已经不能满足时代的要求,一种新兴的商业计算模型——云计算应运而生,云计算为计算机行业带来了新的机遇和挑战。云计算是一个大规模的分布式计算系统,为互联网上的外部用户提供抽象的、虚拟的、动态调整以及可管理的计算能力、存储、平台以及服务。云计算最典型的案例是Goolge公司提出的MapReduce并行编程模型,它简单易用、并行化程度高、可靠性高等特点吸引了很多用户。目前,国内外针对MapReduce编程模型各个方面的研究很多,其中关于MapReduce容错机制一直是研究热点之一。针对容错机制的研究可以总结为两种方案:备份和再执行,但是这两种方案有一个基本前提条件——感知到失效节点,如果感知失效情况不及时或者不准确,这两种方案也就不能发挥作用了。本文将从一个新的视角出发,针对如何更快更准确的发现失效节点问题展开研究,主要分为以下几个方面:首先,根据需求分析设计容错方案,简单地将其分为三个步骤:多组监测、请求申请、任务迁移,分析各自的职能,研究多组容错的运行机制。其二,对传统的MapReduce架构进行改进,在同机柜中的各个TaskTracker节点之间搭建多组架构,建立多组心跳机制,分别在TaskTracker和JobTracker上增加多组类multipleTaskTracker、multipleJobTracker,实现多组容错。其三,对任务迁移过程中可能出现的资源竞争问题进行补充,根据公平性原则,针对两类资源竞争现象按照各自的规则进行任务迁移。最后,分别从响应时间、加速比和多组容错的优势三个方面对多组容错性能进行分析,得出在不影响系统扩展性的前提下,多组关系提高了监测失效节点的效率,节约了作业响应时间,降低了带宽使用率,减少网络拥塞,减轻了JobTracker节点的负荷。大量实验数据表明,在不影响MapReduce系统可扩展性的前提下,多组容错要明显优于传统容错方案。在集群中存在失效节点时,多组容错可以将发现失效的时间大幅度地缩短,并且可以游刃有余的解决任务迁移过程中的资源竞争现象。