论文部分内容阅读
随着计算机技术以及互联网高速地运用到人类社会生产生活的各个方面,数据量呈现出爆发性的增长。为满足海量数据应用的处理要求,基于大规模计算机集群的并行计算成为了主要途径,而MapReduce就是一个最初由谷歌设计用来在大型集群上执行并行计算的框架。它能够减少开发人员在进行并发编程时的复杂性,使得开发人员在不了解分布式底层细节的情况下开发分布式程序。Hadoop是一个实现MapReduce的开放源代码的集群平台。目前,Hadoop在很多互联网公司里都已经得到了应用,可以说是应用最为广泛的开源云计算软件平台。但是,Hadoop还是一个发展时间较短的平台,在许多地方还需要提高和改进。本文主要研究工作和贡献如下:1)本文对Hadoop平台的架构及其核心技术进行了深入的研究;阐述了Hadoop平台下现有的调度算法FIFO、计算能力调度算法以及公平调度算法的设计思路、实现过程以及算法优缺点。针对FIFO调度策略单一、容易造成大作业长时间等待、集群CPU利用率低的问题,提出了基于红黑树的分层调度算法(HSBRB),并将其引入Hadoop平台。2) HSBRB调度算法引入了红黑树作为存储作业信息的数据结构。红黑树是一种效率非常高的不完全平衡二叉树,随着结点个数的增加,红黑树会获得高速的数据插入、删除速度,从而提高整个集群的CPU利用率。同时,HSBRB调度算法采用了层次调度模型来调度作业。当多用户共享集群平台时,每个用户对应一个池,每个池里存放多个作业,从而解决了FIFO只针对单用户提交作业的不足导致的集群资源利用率低的问题。3)海量日志数据的处理。本文的海量日志数据均来自于NBER的专利数据集。为获得不同引用频率的专利数目,搭建了一个小型的Hadoop集群平台,并在该平台上开发分布式并行程序,结果保存到指定的目录文件中。4)为验证HSBRB算法的性能,本文设计了两个不同的实验场景对Hadoop现有的调度算法FIFO、Fair Scheduler以及本课题的HSBRB算法进行了实验对比。实验结果验证了HSBRB算法的合理性以及有效性,而且相对于现有的调度算法,HSBRB算法能够更好地减少作业运行时间、提高CPU的利用率,是一种较为理想的任务调度算法。最后我们对论文工作进行了总结,并讨论了对进一步工作的展望。