论文部分内容阅读
随着大数据时代的到来,爆炸式增长的数据对现有IT架构的处理和计算能力提出了挑战,MapReduce作为一种新型的计算模型应运而生。Hadoop作为MapReduce模型的一种开源实现,被诸多企业广泛地用于大数据的处理。然而,Hadoop平台也存在着不足,比如Reduce任务调度策略没有考虑数据本地性,以及现有分区策略无法处理数据倾斜等问题,都阻碍了Hadoop平台应用的进一步推广,为此学术界和商业界展开了广泛的研究。本文针对以上两个问题,进行了深入的分析和研究,具体工作如下:(1)针对现有Hadoop平台资源管理模型无法管理节点负载以及Reduce任务调度策略没有考虑数据本地性的问题,基于Hadoop平台的网络拓扑结构提出了Reduce任务的本地性模型,将朴素贝叶斯分类方法用于节点负载分类,同时融入延时调度策略,提出了一种本地性感知的多级均衡延时Reduce调度策略MLBDS(Multi Level Balanced Delay Scheduler),并将该调度策略的实现嵌入容量调度器中。(2)分析了Hadoop平台中数据倾斜的现象以及两种产生数据倾斜的原因,在抽样的基础上提出了一种增量多队列分区策略。通过抽样的方式,获取整体key值的分布,并将key值划分为多个较小的子分区,最后使用多队列将子分区均匀地划分到不同的分区中,来达到解决数据倾斜的目的。(3)搭建Hadoop集群,实现本文提出的MLBDS调度策略以及基于抽样的增量多队列分区策略,将MLBDS调度策略与现有Hadoop平台的容量调度器以及延时调度策略DS(Delay Scheduler)进行对比,基于抽样的增量多队列分区策略与Hash分区策略对比,验证了本文提出的MLBDS调度策略以及基于抽样的增量多队列分区策略的正确性和有效性。