论文部分内容阅读
近年来,随着信息技术、互联网的快速发展,数据采集终端迅猛增加,每天会产生海量数据,逐步进入了信息爆炸的大数据时代。大数据时代的数据具有数量巨大、结构复杂等特点,导致存储和计算难度加大。连接操作是大数据处理中一种常见且十分耗时的操作,MapReduce作为一个并行处理的计算模型,因其高容错性、高易用性和高扩展性,广泛用于大规模数据处理及分析。由于MapReduce自身的局限性,使得该模型进行表连接运算时面临挑战。MapReduce计算模型默认的一次哈希分区机制,在处理大数据量时,容易出现因数据划分不均匀而导致的数据倾斜问题。本文重点研究大数据环境下两表等值连接查询算法的负载均衡优化,从降低非均匀数据分布对算法性能的影响角度出发,分析传统的数据划分方案在执行两表连接操作中存在的不足,提出基于key代价的两表等值连接负载均衡优化算法。优化算法的思想是:在进行连接操作前,将分区向Reducer指派时按照<key,value>键值对中的key的种类进行分区,然后通过分区筛选算法和分配算法确定分区号和Reducer的对应关系,使key/value能够通过改进分区传送到多个Reduce节点,将传统分区的分区号与Reducer任务号一对一的关系转换为多对一的关系。算法改进了传统的数据划分方案,给出了数据划分的具体方法和流程,将不均匀的数据均分到所有的Reduce节点进行处理,实现Reduce任务的负载均衡,一定程度提高了MapReduce作业的执行效率。实验结果表明,本文提出的基于key代价的两表等值连接负载均衡优化算法,能够有效缓解MapReduce连接操作中数据分布不均匀导致的Reduce端负载不均衡的问题。提高了MapReduce计算框架下连接查询算法的效率,具有很好的时间性能和可扩展性。