[发明专利]基于MapReduce的FP-Growth的负载均衡并行计算方法在审
申请号: | 201510138318.0 | 申请日: | 2015-03-26 |
公开(公告)号: | CN104731925A | 公开(公告)日: | 2015-06-24 |
发明(设计)人: | 杨勇;陈曙东 | 申请(专利权)人: | 江苏物联网研究发展中心 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 无锡市大为专利商标事务所(普通合伙) 32104 | 代理人: | 曹祖良;张涛 |
地址: | 214135 江苏省无锡市新*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 mapreduce fp growth 负载 均衡 并行 计算方法 | ||
技术领域
本发明涉及一种负载均衡的并行计算方法,尤其是一种基于MapReduce的FP-Grwoth的负载均衡并行计算方法,属于数据挖掘的技术领域。
背景技术
关联规则挖掘反映一个事物与其他事物之间的相互依存性和关联性,是数据挖掘技术中一个重要课题。关联规则挖掘需要经历两个步骤,即频繁项集的产生和关联规则的生成,关联规则挖掘的总体性能主要由第一阶段决定。经典的关联规则挖掘算法主要有Apriori算法、FP-Growth算法和Eclat算法,前两者采用水平数据格式进行挖掘,后者采用垂直数据格式进行挖掘。FP-Growth算法较Apriori算法而言,采用分治策略对数据库进行挖掘,不产生候选项集,它采用FP-Tree存放数据库的重要信息,只需扫描两次数据库,然后将关键的信息以FP-Tree的形式存放在内存中,避免了多次扫描数据库带来的巨大开销。
Hadoop是一个开源的、能够并行处理大规模数据的分布式计算平台。MapReduce是Hadoop的核心组件之一,是一个高性能的分布式编程模型和计算框架,用于对海量数据进行并行分析和处理。MapReduce把所有任务都进行统一的操作,即任务的分解与结果的合并,主要包括两个重要的核心操作:Map和Reduce(映射和规约),Map函数将大规模数据拆分为多个小的数据集并发送到多台机器(节点)上进行并行运算,Reduce函数则将各机器(节点)上Map函数的运行结果进行合并得出结果。
随着社会的进步和科学技术的发展,数据呈爆炸式增长,以单机形式进行关联规则挖掘的FP-Growth算法已经远不能满足海量数据的存储以及挖掘等问题,而一些现有的FP-Growth并行算法解决了数据库的划分以及后续的并行计算这两个问题,但是算法在并行计算效率、内存消耗、通信消耗以及FP-Tree稀疏程度差异导致的性能差异等方面存在明显的差异和不足,这些都与数据库事务集划分时欠缺负载均衡考虑有着很大的关系。
发明内容
本发明的目的是克服现有技术中存在的不足,提供一种基于MapReduce的FP-Growth的负载均衡并行计算方法,其具有较好的负载均衡能力以及执行效率。
按照本发明提供的技术方案,一种基于MapReduce的FP-Growth的负载均衡并行计算方法,所述负载均衡并行计算方法包括如下步骤:
步骤1、输入所需的数据库事务集D以及最小支持度计数,并将所述数据库事务集D分成连续不同的分区,且数据库事务集D的子事务集存储在多台节点上;
步骤2、第一次扫描数据库事务集D,并行计算每台节点上的项的支持度计数,且将所有节点计算的项的支持度技术合并,以得到全部频繁1项集FList;
步骤3、将频繁1项集FList的项根据负载均衡的方法划分成M组,以得到长度为M的新列表GList,新列表GList中每一组的组号为gidi(1≤i≤M);
步骤4、第二次扫描数据库事务集D,根据新列表GList将数据库事务集D也划分为M组,划分得到数据库事务集D的组号与新列表GList内的组号相对应,若一条事务包含GListgidi中的项,则将该条事务对应的部分发送到组号为gidi的事务组DB;在数据库事务集D划分结束后,对每一个事务组DB创建其本地FP-Tree,并根据本地FP-Tree挖掘对应的GListgidi,以得到频繁1项集中所有项的频繁模式;
步骤5、将每台节点上得到的频繁1项集中所有项的频繁模式聚合输出。
所述步骤3包括如下步骤:
步骤3.1、计算频繁1项集FList中每项的负载,按照负载降序排列,以得到排列表SList;
步骤3.2、根据指定的组数M,将排列表SList中的前M项初始化为新列表GList中的M组,且新列表GList中的每组与排列表SList中的每项呈一一对应;
步骤3.3、将排列表SList中未被分到新列表GList中组的第一项添加到新列表GList中负载最小的组内,并将添加的项的负载值进行累加,并更新新列表GList中组的负载;
步骤3.4、重复上述步骤3,直至排列表SList中的所有项都完成分组;
步骤3.5、将得到的新列表GList保存在HDFS文件中,以便多台节点共享。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏物联网研究发展中心;,未经江苏物联网研究发展中心;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510138318.0/2.html,转载请声明来源钻瓜专利网。