论文部分内容阅读
随着移动互联、云计算、人工智能、社交网络等技术的普及,数据量正以前所未有的速度增长,传统数据库的数据分析能力无法适应大数据时代。与此同时MapReduce计算框架因为其具有良好的扩展性、高容错性以及PB级以上海量数据离线处理的特点,越来越多地被应用在大规模数据的分析处理中。但是MapReduce计算框架自身设计的特点不能有效地支持连接操作,尤其在数据倾斜情况下的连接操作。而连接操作又是数据分析中最常用且最耗时间的操作之一。因此在MapReduce计算框架下实现数据倾斜情况下的连接操作十分迫切且有意义。 本文主要工作如下: (1)归纳和总结了大数据的特征和国内外现有的基于MapReduce计算框架的连接算法,介绍了Hadoop平台中三个核心组成部分:分布式文件系统、资源管理器和MapReduce计算框架。 (2)研究了MapReduce计算框架中的两种倾斜:Map端倾斜和Reduce端倾斜。比较Reduce端输入数据和输出数据的影响,以Reduce端输出数据的负载均衡为主要出发点。 (3)提出了数据倾斜连接算法和基于贪心策略的连接优化算法。数据倾斜连接算法通过对关系表中连接键的统计,分别计算倾斜数据连接结果的数量和非倾斜数据连接结果的数量,并分配对应比例的Reducer个数,使得倾斜数据均衡的发送到多个Reducer节点执行连接操作。在数据倾斜连接算法基础上,提出基于贪心策略的连接优化算法进一步优化倾斜数据的分片和发送规则,使得每一个Reducer的负载接近最优负载量或者不明显超过最优负载量。实验结果验证了算法能够有效的解决MapReduce计算框架中连接算法因数据倾斜导致的Reduce端的负载失衡问题。