我们身处在一个网络的时代,人们生活的方方面面已经与互联网密不可分,人们在网上交友、购物,在网上搜索一切自己想要的信息。大量的网络生活往往意味着越来越多的网络数据:Facebook在其服务器上存储着多达百亿的用户照片;Google和百度的爬虫每天收集着T级别的网页信息。在这海量信息面前,传统的技术难以满足需求,在此背景下,“云计算”的概念悄然而生。
Hadoop是在云计算与大数据的背景下诞生的开源分布式计算平台,它借鉴了Google的GFS和MapReduce技术,使开发者可以轻松开发和运行处理海量数据的应用程序。由于Hadoop是开源的,而且有很强的易用性和高效的分布式处理能力,在短短几年里它就成为主流的分布式数据处理平台。
本文针对Hadoop这一年轻的开源分布式计算平台进行了研究。首先通过海量数据的背景引出“云计算”技术,研究了其概念及技术架构;然后,讨论了当前应用最为广泛的Hadoop分布式计算平台,重点针对其HDFS(Hadoop Distributed File System)和MapReduce关键技术展开研究,分析了其架构模型、工作机制和可靠性;最后,本文研究了Hadoop的作业调度机制,分析了系统自有的作业调度算法即FIFO算法、计算能力调度算法和公平份额调度算法的调度原理,针对以上算法中存在的不足之处提出了基于匹配原则的、基于作业组合的和基于优先级策略的改进思路,并根据以上改进思路提出了改进的作业调度算法,即基于动态优先级的组合调度(Dynamic Priority Based Compose Scheduler, DPBCScheduler)算法。新的算法通过采用作业匹配的原则实现调度性能的提升,在进行作业匹配度分析时,利用动态优先级的策略实现匹配程度的的实时更新,同时,加入了作业组合的策略,使得优先级应用在局部而不是整个作业队列,降低调度的负担。经过最终编码实现和测试,改进的算法成功地达到了预期的目标,提高了系统的性能。