论文部分内容阅读
“大数据”时代的到来,众多涉及海量数据处理的应用蓬勃涌现,传统的分布式数据库、并行数据库和数据仓库等系统的数据管理和处理技术,由于在可扩展性、高可用性和容错性等方面的限制,已无法适应海量数据的存储和处理。在大规模数据分析和处理中,云计算平台建设都需要数据密集型计算模型的支撑。Map Reduce数据密集型计算模型最早由Google提出,主要用于处理和分析大规模数据集,充分利用分布式计算和存储资源,把数据处理和计算任务分配到数以千计的廉价物理节点上,提供海量存储能力和并行计算能力。然而,Map Reduce计算模型会在任务执行过程中出现不均衡问题,进而影响任务运行效率。Map任务或Reduce任务应尽量避免发生输入数据倾斜,这将导致某些子任务运行缓慢,严重地影响Map Reduce的产能。此外,在数据连接中,当某些数值的出现次数远远髙于其他数值出现的次数时,就会发生数据倾斜问题。针对Map Reduce计算模型Hash分区策略易引发Reduce阶段输入数据倾斜问题,提出基于Hash虚拟平衡重分区的数据倾斜处理算法HVBR-SH(Hash Virtual Balance Repartitioning based Skew Handling)。HVBR-SH在Map阶段采用虚拟分区,使得<Key,Value>键值对分散存储,为后续重分区提供更优分区组合;在Reduce阶段,HVBR-SH利用连续虚拟分区平衡重组的方法将收集到的虚拟分区重新划分成与Reduce任务数相同分区,并确保重分区后最大分区的数据量最小,加快整个Reduce阶段的执行速度。对比实验结果表明,HVBR-SH算法能有效平衡各个Reduce任务的输入规模并控制运行时间,有效改善了Reduce输入倾斜问题,提高了Map Reduce任务的执行效率。针对现有Map Reduce在大规模集群上进行海量数据连接处理操作时的效率问题,提出一种基于预散列和索引技术的Map Reduce数据连接处理机制。该机制对Map结果数据先进行预散列处理,建立对应<Key,Value>对的索引信息,然后根据索引信息计算相同key值数据的连接及处理复杂度,最后基于连接复杂度为Reducer节点分配任务数据量,实现负载均衡。实验结果显示,提出的Map Reduce数据连接处理机制能够有效实现Reducer节点负载均衡,提高数据连接处理操作的效率。