论文部分内容阅读
云计算是随着大规模计算机、个人计算机、互联网的发展而产生的第四次IT产业革命,谷歌首先定义并发展了云计算。而云计算的开源模型Hadoop是一种基于Java的通过运行可分布式的密集型应用来分析和处理大数据的开源分布式计算平台,其中的单点问题造成了Hadoop的性能瓶颈。针对存储模型架构HDFS中的namenode节点的单节点优化,Hadoop2.0提出了多节点高可用性方案,但是针对JobTracker节点的单节点优化并没有给出相应的解决办法。本文期望通过建立分布式JobTracker节点模型来改善传统的计算模型架构中的单JobTracker节点故障,从而能够自动避免单JobTracker节点故障导致的作业运行失败。本文的主要工作内容及贡献如下:在充分分析了前人对单JobTracker节点模型的改进和对调度算法与负载均衡算法的调优。首先通过对最短路径算法Dijkstra算法、网页权值判断算法PageRank算法和网页去重算法Bloom Fliter算法的研究,建立了分布式JobTracker节点模型,并通过Dijkstra算法对分布式JobTracker节点模型中多对多节点间的通信方式进行了优化,以期望多节点模型下的多个JobTracker节点和任务节点间能够均衡的进行通信;其次基于PageRank算法对作业的调度方式进行了优化;最后进一步通过Counting Bloom Filter算法改进各个节点上任务的复本数,从而对分布式Job Tracker模型中节点的负载进行了优化。本文在分析完分布式JobTracker节点模型的通信方式及其相关的调度优化后,搭建了小型Hadoop实验集群对结果进行了实验验证。由实验结果可以看出,单JobTracker节点模型与分布式JobTracker节点模型相比,在集群发生宕机时,分布式JobTrackder节点模型具有更高的可靠性,基于Dijkstra算法的通信方式能够更快速的选出JobTracker节点;对于改进的作业调度算法,在提交的作业具有依赖关系时,基于PageRank的改进算法能够更进一步的提高作业的整体处理时间;对于改进的负载均衡算法,从副本的存储负载角度对集群的负载进行了优化,从而提高了重复数据副本存储空间利用率。实验最后对集群的综合性能进行了对比,由实验结果可以看出,分布式JobTracker节点模型下的优化由于主要是针对特定作业的优化与改进,处理作业的综合性能并不如原有集群高,但是当集群发生JobTracker节点宕机时,提高了集群的安全可靠性,并针对特殊场景的作业处理具有很好的意义。