买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种面向滑动窗口数据分析的Spark数据缓存方法_北京工业大学_202110036036.5 

申请/专利权人:北京工业大学

申请日:2021-01-12

公开(公告)日:2024-04-05

公开(公告)号:CN112667170B

主分类号:G06F3/06

分类号:G06F3/06;G06F9/451;G06F9/50

优先权:

专利状态码:有效-授权

法律状态:2024.04.05#授权;2021.05.04#实质审查的生效;2021.04.16#公开

摘要:一种面向滑动窗口数据分析的Spark数据缓存方法.主要分为六个步骤:初始化,选取待预取的滑动窗口,选取数据块的放置位置,判断窗口是否满足时间条件,执行预取操作和周期性执行.本发明利用启发式搜索策略选取待预取窗口和数据块的放置方案,从空间和时间角度保证数据预取的有效性和可靠性,利用预取技术提高滑动窗口数据分析的计算效率。

主权项:1.一种面向滑动窗口数据分析的Spark数据缓存方法,其特征在于,分为六个步骤:初始化,选取待预取的滑动窗口,选取数据块的放置位置,判断窗口是否满足时间条件,执行预取操作和周期性执行;参数包括:窗口权重系数μ,运行时内存规模膨胀系数α,子数据集与窗口输入数据集的规模比例δ;参数μ的取值为1.5,α取值为1.5,δ取值为0.01;上述方法在计算机上按照以下步骤实现:1初始化1.1Spark集群中,计算节点的集合表示为Node={node1,node2,...,nodeN},N表示的是计算节点的数量;任务执行器的集合表示为Exe={exe1,exe2,...,exen},n表示的是任务执行器的数量;1.2滑动窗口应用的输入数据集D={de1,de2,...,deq},其中dei∈D表示编号为i的数据元素,q表示数据元素的个数;每个数据元素包含的数据属性集合表示为DP=dp1,dp2,...,dph,其中h表示数据属性的总数;任意数据元素dei∈D表示为dei=dvi1,dvi2,...,dvih,其中dvij表示数据元素dei在数据项dpj上的取值;存在编号为j的属性dpj∈DP,数据集D在属性dpj上满足偏序关系,即dv1j<dv2j<…<dvqj;1.3滑动窗口数据分析所包含的窗口集合表示为W={w1,w2,...,wM},其中M表示的是窗口的总数;窗口wi∈W处理的数据集合表示为dwi={desi,desi+1,...,deei},其中si和ei分别表示数据元素开始和结束的编号;数据块是Spark存储管理模块中最小的存储单元,由若干连续的数据元素组成;Spark默认分区配置或用户自定义分区设置定义为函数Pdwi,基于此函数规则,窗口wi的数据集被划分为数据块集合dsi={dbi1,dbi2,...,dbim},其中m表示的是数据块的总数;1.4根据运行状态的不同,滑动窗口应用中的窗口分为三类:处于运行态的窗口集合处于待执行态的窗口集合以及其他状态;2选取待预取的滑动窗口2.1创建待预取集合创建候选集合Can=Wpending;2.2判断候选集合Can是否为空,如果为空则跳转步骤5,否则继续执行步骤2.3;2.3根据公式1计算候选集合Can中每个窗口的权值Weight={weight1,weight2,...,weightg},其中weighti∈Weight表示的是窗口wi的权值,g表示的是候选集合中窗口的数量;公式中osi∈dsi表示的是因窗口重叠而缓存的数据块集合,系数μ用于调整|dsi|与|osi|之间权重比例;weighti=|dsi|+μ·|osi|12.4根据每个窗口的权值为集合Weight,从预取候选集合Can中选取权值最大的窗口wp作为待预取窗口,并将wp从候选集合Can中移除;3选取数据块的放置位置3.1窗口wp中所有数据块的放置位置被定义为状态s=dbp1,exe1,dbp2,exe2,...,dbpm,exen,生成窗口wp的所有状态集合S={s1,s2,...,sv},其中v表示的是状态的总数;3.2遍历状态集合中的每一种状态sm∈S,过滤其中窗口数据内存规模需求无法满足的状态;3.2.1基于状态sm∈S,窗口wi∈W的输入数据集缓存在任务执行器上所消耗的内存规模为其中表示任务执行器exej∈Exe上因数据缓存而消耗的内存规模;根据公式2计算窗口wp的数据集在任务执行器上消耗的内存规模为其中sizedbpk用于估计数据块dbpk的缓存大小; 3.2.2令集群中任务执行器的可用内存总量为集合其中代表任务执行器exej∈Exe的可用内存总量;公式3展示了可用内存总量的计算方法,其中代表任务执行器exej∈Exe所申请的最大内存规模,表示的是除了运行态窗口和窗口wp外,其他状态的窗口在任务执行器exej∈Exe缓存的数据规模; 3.2.3根据公式4计算预取后每个任务执行器剩余的内存规模其中表示的是窗口wp缓存在任务执行器exej∈Exe上的输入数据规模,表示的是运行态窗口wr∈Wrunning缓存在任务执行器exej∈Exe上的输入数据规模,膨胀系数α表示的是窗口在运行过程中所消耗的最大内存规模与输入数据缓存规模的比例; 3.2.4根据公式5判断每一个数据块放置方案sm∈S是否满足空间条件,如果不满足空间条件,执行步骤3.2.5; 3.2.5将不满足空间条件的状态从集合S中移除;3.3判断集合S是否为空,如果为空则跳转执行步骤2.2,否则继续执行步骤3.4;3.4根据公式6计算集合S中每种状态的代价值Cost={cost1,cost2,...,costu},其中costm表示状态sm∈S的代价,u表示的过滤后集合S的数量;函数Loc用于表示数据块是否放置于本地的任务执行器;对于状态sm∈S,如果数据块dbk的放置位置是本地任务执行器,那么Locsm,dbk的值为0,否则为1; 3.5基于代价集合Cost,从状态集合S中选取代价最小的数据块放置状态sp用于描述每个数据块的放置位置;4判断窗口是否满足时间条件4.1计算待预取窗口wp的预取时间4.1.1基于数据块放置状态sp,根据公式7计算任务执行器exej∈Exe上数据块dbpk的预取时间其中rk表示预取单位数据量所耗费的时间; 4.1.2每个任务执行器串行载入数据块,根据公式8计算每个任务执行器的载入时间其中代表任务执行器exej∈Exe预取其对应数据块的总时间; 4.1.3根据公式9计算窗口wp的预取时间tp; 4.2计算运行态窗口的剩余执行时间4.2.1对于运行态窗口wr∈Wrunning,如果r>1且窗口wr-1的输入数据已全部载入,根据公式10估计剩余数据的载入时间其中θ表示为窗口wr剩余输入数据的规模与wr-1输入数据规模的比例,表示为窗口wr-1的载入时间;如果r为1或wr-1并未运行完毕,那么从窗口wr的输入数据集中随机抽取规模比例为δ的子数据集,此时系数θ表示为运行并观测子数据集的载入时间利用公式10估计剩余数据的载入时间; 4.2.2对于运行态窗口wr∈Wrunning,如果r>1且窗口wr-1已计算完毕,根据公式11估计剩余计算时间其中γ表示为窗口wr输入数据规模与wr-1输入数据规模的比例,表示为窗口wr已完成的计算时间,表示为窗口wr-1的计算时间;如果r为1或者wr-1并未运行完毕,从窗口wr的输入数据集中抽取规模比例为δ的子数据集,此时系数γ表示为运行并观测子数据集的计算时间此时的值为0,利用公式11估计剩余的计算时间; 4.2.3对于运行态窗口wr∈Wrunning,根据公式12估计其剩余的执行时间rtr; 4.2.4所有运行态窗口的剩余执行时间表示为集合RT={rt1,rt2,...,rtu},其中u表示的是运行态窗口的数量;从所有运行态窗口Wrunning中选取的最短的剩余执行时间rts∈RT;4.3基于数据块放置状态sp,判断待预取窗口的预取时间tp是否小于运行态窗口的剩余执行时间rts,如果预取时间小于剩余执行时间,则执行步骤4.4,否则执行步骤2.2;4.4将二元组wp,sp添加至待预取集合P,跳转执行步骤2.2;5执行预取操作5.1判断待预取窗口集合P是否为空,如果为空则执行步骤6,否则继续执行步骤5.2;5.2从预取窗口集合P中,按照添加的先后顺序,选取二元组wp,sp,并将其从预取窗口集合P中移除;5.3预取窗口wp对应的输入数据集,按照方案sp缓存数据块,预取完毕后执行步骤5.1;6周期性执行6.1等待运行态窗口执行完毕后,更新集合Wrunning和Wpending;6.2判断待执行窗口集合Wpending是否为空,如果不为空则跳转执行步骤2,否则结束本缓存方法。

全文数据:

权利要求:

百度查询: 北京工业大学 一种面向滑动窗口数据分析的Spark数据缓存方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。