一种基于Hadoop的数据分析方法
【技术领域】
[0001] 本发明涉及大数据处理,特别涉及一种基于Hadoop的数据分析方法。
【背景技术】
[0002] 云计算借助互联网平台,提供廉价的分布式动态可扩展的计算能力。云计算可以 使实现物物相连、网网相通的理想效果。多种信息传感设备在中相互通信,产生的数据是海 量的。因此如何生成的海量大数据中快速有效地提取出有用的信息是至关重要的。传统的 数据处理方法存在的缺点就是在执行过程中要多次扫描整个数据库,产生庞大的候选集, 造成时间和空间的浪费。
【发明内容】
[0003] 为解决上述现有技术所存在的问题,本发明提出了一种基于Hadoop的数据分析 方法,用于通过基于云计算的数据分析处理系统进行数据分析,包括:
[0004] 所述数据分析处理系统基于Hadoop平台作为计算环境,该数据分析处理系统由 数据存储模块、数据分析模块和事务处理模块构成,使用Hadoop中的MapReduce插件作为 开发工具,所述MapReduce对数据的操作包括Map操作和Reduce操作,所述Map操作是对 输入的键值对进行指定的操作,生成一组中间键值对,所述Reduce操作对Map操作输出的 中间键值对进行规约合并。
[0005] 优选地,所述待分析的数据由所述数据存储模块存储并转换为数据库文件,保存 到Hadoop平台的HDFS中;所述数据分析模块利用云计算平台的分布式并行计算的属性 将关联规则生成过程交由MapReduce处理,运用于云计算平台,由主程序负责事务的创 建、管理控制,按照用户的请求将数据分析事务传输到相应的节点进行计算;所述事务处 理模块由主程序负责所有数据分析处理事务的调度,并将最终结果返回给用户,其中所述 MapReduce编程模型只提供相关接口给上层模块而将底层的实现细节进行屏蔽。
[0006] 优选地,所述将关联规则生成过程交由MapReduce处理,进一步包括:
[0007] (I)MapReduce将事务数据库D水平地划分成η块,通过参数确定每块的大小,把η 个数据子集发送到m个执行Map事务的节点,由主程序负责调度,将处理事务分配给处于空 闲列表中的工作机;
[0008] (2)格式化η个数据子集,产生ID,Value键值对,其中ID表示D中的事务ID, Value为相应事务ID对应的列表值;
[0009] (3)Map操作对输入的每个ID,Value键值对进行扫描,生成一个局部候选1项目 集到候选k项目集的集合CP,每个候选项目集的cs初始值都设定为1,Map操作输出中间 结果Itemset,1键值对,其中Itemset表示CP中的候选项目集;
[0010] (4)在每个执行Map函数的工作机上增加一个可选的分区函数,将Map操作产生 的中间结果进行合并,输出中间键值对Itemset,s,其中s表示Itemset在数据子集中的cs 的累加值,然后利用散列函数:
【主权项】
1. 一种基于Hadoop的数据分析方法,用于通过基于云计算的数据分析处理系统进行 数据分析,其特征在于,包括: 所述数据分析处理系统基于Hadoop平台作为计算环境,该数据分析处理系统由数据 存储模块、数据分析模块和事务处理模块构成,使用Hadoop中的MapReduce插件作为开发 工具,所述MapReduce对数据的操作包括Map操作和Reduce操作,所述Map操作是对输入 的键值对进行指定的操作,生成一组中间键值对,所述Reduce操作对Map操作输出的中间 键值对进行规约合并。
2. 根据权利要求1所述的方法,其特征在于,所述待分析的数据由所述数据存储模块 存储并转换为数据库文件,保存到Hadoop平台的HDFS中;所述数据分析模块利用云计算 平台的分布式并行计算的属性将关联规则生成过程交由MapReduce处理,运用于云计算平 台,由主程序负责事务的创建、管理控制,按照用户的请求将数据分析事务传输到相应的节 点进行计算;所述事务处理模块由主程序负责所有数据分析处理事务的调度,并将最终结 果返回给用户,其中所述MapReduce编程模型只提供相关接口给上层模块而将底层的实现 细节进行屏蔽。
3. 根据权利要求2所述的方法,其特征在于,所述将关联规则生成过程交由MapReduce 处理,进一步包括: (1) MapReduce将事务数据库D水平地划分成η块,通过参数确定每块的大小,把η个数 据子集发送到m个执行Map事务的节点,由主程序负责调度,将处理事务分配给处于空闲列 表中的工作机; (2) 格式化η个数据子集,产生ID,Value键值对,其中ID表示D中的事务ID,Value 为相应事务ID对应的列表值; (3) Map操作对输入的每个ID,Value键值对进行扫描,生成一个局部候选1项目集到 候选k项目集的集合CP,每个候选项目集的cs初始值都设定为1,Map操作输出中间结果 Itemset,1键值对,其中Itemset表示CP中的候选项目集; (4) 在每个执行Map函数的工作机上增加一个可选的分区函数,将Map操作产生的中间 结果进行合并,输出中间键值对Itemset,s,其中s表示Itemset在数据子集中的cs的累 加值,然后利用散列函数:
其中Hi1, m2, %,…,mk为K项目集中的项在D的项目集中对应的序号,按升序排列,r 为划分的不同分区的数目,将分区函数产生的Itemset,s分成r个分区,主程序负责将各分 区分配到对应的Reduce函数; (5) Reduce节点读取分区函数提交的键值对Itemset,s,对其进行排序及合并后,形成 Itemset,list (s),再进行相应Reduce操作,得到各候选项目集在D中的实际支持数累计 值,保留所有大于等于最小支持数累计值Smin的候选项目集,即是局部项目集的集合L p; 合并r个分区中Reduce函数输出的项目集,得到最终的项目集的集合L ; (6) 当完成全部的Map操作和Reduce操作后,主程序激活用户程序,MapReduce返回到 相应的调用点。
【专利摘要】本发明提供了一种基于Hadoop的数据分析方法,用于通过基于云计算的数据分析处理系统进行数据分析,所述数据分析处理系统基于Hadoop平台作为计算环境,该数据分析处理系统由数据存储模块、数据分析模块和事务处理模块构成,使用Hadoop中的MapReduce插件作为开发工具,所述MapReduce对数据的操作包括Map操作和Reduce操作,所述Map操作是对输入的键值对进行指定的操作,生成一组中间键值对,所述Reduce操作对Map操作输出的中间键值对进行规约合并。本发明的方法在基于云计算的数据分析处理中,能够提高数据分析处理的执行效率,特别是在大数据集的情况下效果尤为明显。
【IPC分类】G06F9-46, G06F17-30
【公开号】CN104834557
【申请号】CN201510252955
【发明人】高爽
【申请人】成都博元科技有限公司
【公开日】2015年8月12日
【申请日】2015年5月18日