基于增量式分区策略的 MapReduce 数据均衡方法
MapReduce 以其简洁的编程模型,被广泛应用于大规模和高维度数据集的处理,如日志分析、文档聚类和其他数据分析。开源系统 Hadoop 很好地实现了 MapReduce 模型,但由于自身采用一次分区机制,即通过 Hash/Range 分区函数对数据进行一次划分,导致在处理密集数据时,Reduce 端常会出现数据倾斜的问题。虽然系统为用户提供了自定义分区函数方法,但不幸的是在不清楚输入数据分布的情况下,数据倾斜问题很难被避免。为解决数据划分的不均衡,该文提出一种将分区向 Reducer 指派时按照多轮分配的分区策略。该方法首先在 Map 端产生多于 Reducer 个数的细粒度分区,同时在 Mapper 运行过程中实时统计各细粒度分区的数据量;然后由 JobTracker 根据全局的分区分布信息筛选出部分未分配的细粒度分区,并用代价评估模型将选中的细粒度分区分配到各 Reducer上;依照此方法,经过多轮的筛选、分配,最终在执行 Reduce()函数前,将所有细粒度分区分配到 Reduce 端,以此解决分区后各 Reducer 接收数据总量均衡的问题。最后在 Zipf 分布数据集和真实数据集上与现有的分区切分方法Closer 进行了对比,增量式分区策略更好地解决了数据划分后的均衡问题。
增量分配、细粒度分区、数据倾斜、均衡分区、MapReduce、大数据
TP311(计算技术、计算机技术)
国家“九七三”重点基础研究发展规划项目基金2012CB316203;国家自然科学基金61033007,61332006,61472321;西北工业大学基础研究基金3102014JSJ0005,3102014JSJ0013资助.
2016-03-23(万方平台首次上网日期,不代表论文的发表时间)
共17页
19-35