[发明专利]基于频繁项集的数据关联性分析和预读取方法有效
申请号: | 201510275426.2 | 申请日: | 2015-05-26 |
公开(公告)号: | CN104881467B | 公开(公告)日: | 2018-08-31 |
发明(设计)人: | 唐飞龙;张健桐;栾志坤;张杨;王玉凤;房新宇;唐灿;过敏意 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 郭国中 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 读取 频繁项集 数据块 数据关联性 集群 资料库 子任务处理 空闲资源 时间利用 关联性 吞吐率 云平台 置信度 分析 挖掘 预测 记录 | ||
本发明提供了一种基于频繁项集的数据关联性分析和预读取方法,包括步骤如下:云平台每处理一个作业,将该次作业中每一个子任务处理的数据块作为一条记录存入资料库中;每隔一定时间利用集群的空闲资源对资料库中的频繁项集进行挖掘,找出数据块之间的关联性;在之后作业的执行过程中,根据预测的置信度,结合数据与任务所在节点的位置关系,提前读取所需要的数据块,从而达到提升整个集群吞吐率的目的。
技术领域
本发明涉及一种分布式系统中数据关联性分析以及数据预读取技术领域,具体的,涉及一种通过挖掘频繁项集找到数据的关联性,提前读取数据,从而提升整个系统的运行速度。
背景技术
在分布式系统中,一个文件通常被分割为多个等大的数据块,分布在集群中的各台机器上,在进行计算时,系统会将一个大的作业拆分为多个子任务,部署到不同的机器上同时运行,每个子任务通常会处理一至多个数据块。在任务执行过程中,需要读取相应的数据块,按照任务所在节点与数据所在节点二者的位置关系,读取方式可以分为三类:
(i)二者在同一节点上,通过本地磁盘I/O读取数据;
(ii)二者不在同一节点但在同一机架上,通过机架内的网络传输数据;
(iii)二者不在同一机架上,通过机架间的网络传输数据。
在数据密集型作业中,数据的读取往往成为系统效率的瓶颈,由于上述三种读取方式的速度依次递减,因此如何降低网络传输所占的比例,将成为提升系统性能的关键所在。
以目前广泛使用的分布式计算平台Hadoop为例,它的文件系统HDFS(HadoopDistributed File System)会将一个文件拆分为多个等大的数据块(Block)分布在集群中的各个节点上,数据块大小通常为64MB。为了保证数据的可用性,在默认情况下每个数据块有三个备份,其中两个在同一机架的不同节点上,第三个在其他机架上,HDFS现有的解决方案是根据磁盘的负载情况选择存放的节点。
然而,这种选择方式并没有考虑到数据之间的关联性,有些数据在逻辑上关系很紧密,在同一个子任务中往往会被一起处理,如果在物理位置上将他们分开存放,在执行过程中需要将数据迁移到子任务所在的节点,从而影响整个系统的吞吐率。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于频繁项集的数据关联性分析和预读取方法。本发明的目的在于克服现有技术中的不足,针对云计算中数据分布的独特性,在频繁项集的基础上,提供一种数据预读取的机制,可以有效解避免数据传输成为计算的瓶颈,从而加快计算的速度。
根据本发明提供的一种基于频繁项集的数据关联性分析和预读取方法,包括如下步骤:
步骤1:对于用户提交到云平台中的第i个作业Jobi,云平台根据作业Jobi中的每个子任务Taskij涉及到的数据块生成一条记录Tij,并将记录Tij存入资料库D中;
其中,Taskij表示作业Jobi的第j个子任务;i为正整数,j为正整数;所述记录Tij,是指作业Jobi中的子任务Taskij涉及到的数据块的集合;
步骤2:每隔时间间隔Interval,对资料库D中的数据进行挖掘,找到频繁项集中所有的关联规则L,关联规则L中大小为m的子规则集合记为Lm,关联子规则集合Lm中的子规则Lmk的支持度定义为Support(Lmk);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510275426.2/2.html,转载请声明来源钻瓜专利网。