摘要
针对MapReduce计算框架不能直接支持连接操作以及在数据倾斜情况下的连接操作会造成某一个或者某几个reducer负载过重降低集群性能的现状,提出了数据倾斜连接算法(DSJA)。该算法首先对关系表中连接键出现的频率进行统计,得到倾斜连接键和非倾斜连接键以及它们各自连接后产生的结果数量;其次按照结果数量的比例分配将集群中的reducer分为处理倾斜连接的reducer和处理非倾斜连接的reducer;最后将倾斜数据平均地发送到处理倾斜数据的reducer以此实现负载均衡。通过与传统的哈希算法进行比较,DSJA的执行时间在数据倾斜度、数据量和集群中reducer个数三个方面都较少,尤其是在数据集中只出现一个属性值的倾斜的时候。
-
单位中国科学院大学; 中国科学院成都计算机应用研究所