论文部分内容阅读
云计算和大数据一直是最近几年来最热门的话题之一,随着信息技术的不断发展,云计算和大数据为社会各个领域带来了一场技术革命,同时加上互联网的普及和国家对“互联网+”的推动,人们都加入到对云计算大数据的技术研究中来。在这样的背景下,每天都伴随有大量的信息产生,使得数据呈指数增长,而如此大规模数据背后蕴藏的无限价值也值得人们去挖掘,国内外的很多著名IT企业也都将其纳入为首要战略。Map Reduce作为一种大数据环境下的并行计算编程模型,其高效可靠的特性被应用于各个领域,但是Map Reduce本身也存在一定的局限,当它处理分布不均匀的数据时,经过Map阶段后Reducer节点所分配到的任务负载不均衡,导致出现“木桶效应”,某些节点负载轻完成后即进入空闲状态,而负载重的节点仍在计算状态而完成时间长,从而影响整体作业的工作效率,降低集群工作性能。本文针对上述问题做出研究并提出相应策略,策略第一阶段使用一种水塘抽样算法对原数据进行抽样,通过开启一个抽样预处理作业来统计样本数据中key值频次分布并估算出整体数据的分布,同时使用一致性Hash算法代替默认的Hash分区算法进行分区,使得抽样预处理作业的Reducer达到一定的均衡。策略第二阶段使用一种改进的Partitioner算法根据预处理计算的中间结果制定出合理的分区方案,并在最后的实验中用作业的总体运行时间和Reducer节点负载均衡情况两种指标进行验证,并与传统的抽样方法及默认的Hash分区函数进行对比,实验表明本文方案在处理具有倾斜属性的数据时具有更好的均衡效果。