大规模数据处理平台的构建方法与流程

文档序号:11519426阅读:216来源:国知局

本发明涉及数据计算,特别涉及一种大规模数据处理平台的构建方法。



背景技术:

云计算技术拥有分布式计算,超大规模,虚拟化,高可靠性,高弹性,可扩展,按需服务等特点,能够为大数据处理提供更为高效的分析以及更好的计算能力。针对大数据处理中的数以亿计的小文件处理,需要分布式存储系统和索引系统来为网页和邮件等文件提供存储支持。随着大量小文本文件处理的应用需求,不同信息系统中存在着大量异构数据源;数据缺乏统一的规范化组织方法;在某些领域,大量小文本文件难以有效分析和高效存储与检索。



技术实现要素:

为解决上述现有技术所存在的问题,本发明提出了一种大规模数据处理平台的构建方法,包括:

在mapreduce模型增加多个预处理负载节点;

通过xml标记数据的信息及map过程中的多值处理,实现数据处理的操作;

在云存储资源中采用状态转移和动态规划机制对负载平衡进行优化。

优选地,所述这些负载节点执行的任务是由主节点在执行map任务以前所派发的任务中的子任务,然后把用户约束关系进行预处理;用户将具有约束关系的处理请求提交给主节点,主节点根据任务请求动态生成描述该约束关系的xml文件,任务分割后,读取xml文件中的多值映射关系,当单个map任务开始时,分析输入的文件并产生一对多关系的键值对,用户对键值对进行任意的操作;完成后则重新收集自定义的键值对,将数据处理的约束关系处理完毕,然后再开始mapreduce调度的map过程和reduce过程。

优选地,所述在云存储资源中采用动态规划机制对负载平衡进行优化,进一步包括:

用cdata={1,2,...m}表示云存储中所有存储数据块的集合;、k∈cdata表示第k组存储数据,m为需分配的云存储中存储数据的总组数;记云存储平台中第i个存储节点获得组存储资源的存储效率为l(u(i),i);将云存储资源优化分配问题表达为求解的最大值;

(1)初始化过程中,将cdata中的数据按照一致性散列分布策略,分为m组数据,存储节点虚拟化为n个存储节点,初始化存储节点的存储效率值e和负载能力c;设置阶段计数器i;

(2)根据虚拟化的存储节点个数,把此资源分配过程分为n个阶段;确定状态变量x(i+1),表示分配1至i个存储节点后剩余的数据;

(3)x(i)以一定的步长遍历其取值区间[u(i)min,u(i)max],计算将剩余资源x(i)分配给第i个存储节点之后的n-i个存储节点的最大存储效率v(x(i),i),同时将相关数据记录在数据集合notedata[i]{x(i),u(i),v(x(i),i)}中;

(4)当i=n时,根据第n个存储节点的负载能力c和存储效率e进行数据分配,u(n)<=cn;

利用状态转移方程:x(i+1)=x(i)-u(i)

和动态规划方程v(x(i),i)=maxu(i)∈u(x(i)){l(u(i),i),+v(x(i+1),i+1)},i=n-1,2,…,1

v(x(n),n)=l(x(n),n)

推出各个阶段的最优值,分配过程中根据每个阶段的存储节点的负载能力ci确定决策变量u(i)的边界值;

(5)递归计算求得最优决策序列notedata(u(1),u(2),...,u(n)),若即数据资源没有被全部分配;则重复递归,依次取每阶段的次优值,直至

本发明相比现有技术,具有以下优点:

本发明提出了一种大规模数据处理平台的构建方法,基于改进的分布式处理架构将来自不同异构源的多种小文件进行统一规范组织,便于高效存储、分析与检索。

附图说明

图1是根据本发明实施例的大规模数据处理平台的构建方法的流程图。

具体实施方式

下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。

本发明的一方面提供了一种大规模数据处理平台的构建方法。图1是根据本发明实施例的大规模数据处理平台的构建方法流程图。

本发明通过文件分类,建立索引结构,并基于权值相似度文件合并成大文件以在云计算环境下处理。在对小文本文件进行分类时,利用mapreduce描述k近邻分类过程,同时,在k近邻中加入特征向量比较,顺序重新构造两个特征词相同的特征向量。针对文档检索过程中的复杂处理及内容映射关系,基于xml和多值的改进mapreduce模型。通过xml标记数据的内容,坐标,操作等信息,进行数据复杂处理。数据的内容一般具有映射关系,通过xml标记及map过程中的多值处理,实现数据处理的操作。

首先,按文档格式进行初次分类。对于分类后的文本文档,根据基于mapreduce和特征向量减少的改进k近邻分类方法进行分类。然后合并统一类别的小文本文件,生成大文件。。将小文本文件按照时间顺序写入大文件,然后将大文件的名字、副本、位置信息写入名字节点,将内容写入datanode。

在k近邻算法中加入传统的特征向量的比较方法,先找出两个原始特征向量之间相同的词及其权重,按照相同特征词的顺序重新构造两个特征词都相同的特征向量,再利用特征词对应的权重向量来计算这两个特征向量之间的相似度。

方法描述如下:对训练集中的所有文本进行预处理,生成键值对形式的特征向量;

步骤1.归一化输入的文本的特征向量t和训练样本的特征向量集et;并计算出t、et中相同的特征词;

步骤2.把相同的特征词和对应的权值提取出来组成新的向量nt、net;

步骤3.应用mapreduce进行相似度计算。计算两个特征向量的权值组成的一元向量之间的相似度sim(t,x);

步骤4.mapreduce对计算的文本的相似度计算结果进行排序;

步骤5.取出相似度最高的k个文本;把这k个文本的相似度按类别累加;

步骤6.取相似度最大值si以及对应的类别ci;

步骤7.若si大于预定义相似度阈值,则标识该文本属于ci类。

在索引结构方面,以k维空间数据集划分的树构建整个树形结构的主干,判断k维树是否为空,若为空则直接作为根节点。否则比较该点与k维树根节点相应维的值的大小关系,进入其左、右子树进行下一步操作;若该点小于根节点相应维的值,则进入左子树进行查找操作直至某个节点的左子树或右子树为空。则将该点插入作为其叶子节点;若该点大于根节点相应维的值,则进入右子树进行插入操作。然后,在该k维树的叶子节点上加载位置敏感散列结构,即将剩余的点放置入位置敏感散列中。将数据集x转化为空间中的二进制串;预先选取参数r>0,c>1,随机选取k个散列函数;利用这些散列函数将数据点存入相应的散列表中。

以上述文件索引规则为基础,对小文本文件进行了合并,设有多个文件a1,a2…an,其中ai=ai1,ai2,…,aik…,且aik为文件名的第k个字符。具体步骤为:

步骤1,对输入的字符串ai(i=l,2,...n),找到aik=‘.’,截取aik后面的所有字符。统计这个块中具有此类文件的个数,记为mij。依次计算同一节点中每一块所包含的此类文件的个数,得到序列mi1,mi2,...min,求mi=∑mij(j=0,1,…,n)表示这个节点中包含的扩展名的类别。

步骤2.计算这个节点中存放的所有小文本文件的数目m,获取小文本文件在分类过程中设置的权值。

步骤3.求解每个类型文件所占的比例mi/m,按比例从大到小排序。形成的扩展名列表在datanode中维护。

步骤4.统计这个节点上的mi中的根节点,形成根节点列表。在每个扩展名中都有一个根节点列表。此列表在datanode中维护。

步骤5.根据待放置的块所在的reduce任务,得到此块的扩展名。

步骤6.读取待放置的块的根节点。设置根节点列表,按照权值相似度最大原则对根进行排序。

步骤7.选择此块中排在第一位的根。

步骤8.在集群中找到扩展名所占比例最大的节点。在其中查找此根,如果存在,放置此块。

步骤9.将此节点从候选列表中排除,然后判断列表是否为空。不为空,转步骤8。

步骤10.将此根从根的列表中排除,判断根的列表是否为空。不为空,转步骤7;为空,随机存放在有此扩展名的节点上。

针对文档检索过程中的复杂处理及内容映射关系,在原有的mapreduce模型增加多个预处理负载节点,这些负载节点它们执行的任务是由主节点在执行map任务以前所派发的任务中的子任务,然后把用户约束关系进行预处理。用户将具有约束关系的处理请求提交给主节点,主节点根据任务请求动态生成描述该约束关系的xml文件,任务分割后,读取xml文件中的多值映射关系,当单个map任务开始时,分析输入的文件并产生一对多关系的键值对,用户对键值对进行任意的操作。完成后则重新收集自定义的键值对,将数据处理的约束关系处理完毕,然后再开始mapreduce调度的map过程和reduce过程。

为进一步实现云存储负载均衡,用cdata={1,2,...m}表示云存储中所有存储数据块的集合。k∈cdata表示第k组存储数据,m为需分配的云存储中存储数据的总组数。记云存储平台中第i个存储节点获得组存储资源的存储效率为l(u(i),i);将云存储资源优化分配问题表达为求解的最大值。

(1)初始化过程中,将cdata中的数据按照一致性散列分布策略,分为m组数据,存储节点虚拟化为n个存储节点,初始化存储节点的存储效率值e和负载能力c。设置阶段计数器i。

(2)根据虚拟化的存储节点个数,把此资源分配过程分为n个阶段。确定状态变量x(i+1),表示分配1至i个存储节点后剩余的数据;

(3)x(i)以一定的步长遍历其取值区间[u(i)min,u(i)max],计算将剩余资源x(i)分配给第i个存储节点之后的n-i个存储节点的最大存储效率v(x(i),i),同时将相关数据记录在数据集合notedata[i]{x(i),u(i),v(x(i),i)}中。

(4)当i=n时,根据第n个存储节点的负载能力c和存储效率e进行数据分配,u(n)<=cn。

利用状态转移方程:x(i+1)=x(i)-u(i)

和动态规划方程v(x(i),i)=maxu(i)∈u(x(i)){l(u(i),i),+v(x(i+1),i+1)},i=n-1,2,…,1

v(x(n),n)=l(x(n),n)

推出各个阶段的最优值,分配过程中根据每个阶段的存储节点的负载能力ci确定决策变量u(i)的边界值。

(5)递归计算求得最优决策序列notedata(u(1),u(2),...,u(n)),若即数据资源没有被全部分配。则重复递归,依次取每阶段的次优值,直至

基于上述改进的mapreduce框架,在多检索并发环境下,本发明设置共享检索架构并采用两级共享,第一级共享使用公共样本管理机制实现共享采样,减少冗余i/o开销;第二级共享将在线聚集的计算共享抽象成特殊的acq优化问题。本发明从子任务层面实现多检索作业的合并,即根据各个检索作业子任务的相关性实现任务级合并,并将合并的共享任务发往各个计算节点完成进一步处理。基于hadoop的共享检索系统架构的流程可包括:检索采集器负责收集一组检索请求,并通过对各检索作业map子任务的分析实现任务级合并操作,形成一系列共享map任务;共享map任务被分配到各个计算节点进行相应处理,包括从hdfs采集样本数据以及计算相关统计量;根据统计量相关信息由reduce任务完成近似估计和精度判断,若符合用户精度需求则返回,否则重复执行上述操作。

给定两个检索q1和q2,其相应的map子任务集合为m1={m1,1,m1,2…,m1,m}和m2={m2,1,m2,2…,m2,n},则本发明的共享方案为:若两个map子任务mi,1∈m1,mj,2∈m2具有相同的输入数据即数据块bi=bj,则将这两个map子任务合并为共享map任务进而实现两个独立i/o管道的合并,通过对数据块bi的统一访问完成采样共享;若两个map子任务mi,1∈m1,mj,2∈m2除了具有相同数据块以外,还具有相同的检索谓词和聚集类型语句,包括sum,count,avg时,共享map任务实现对两个map任务统计量计算的合并,通过计算和复用中间统计量完成统计量计算的共享;若两个map子任务不具有相同输入数据即bi≠bj时,则无法合并生成共享map任务。

针对上述不同的共享方式以及共享方案,本发明采用以下共享策略:针对每个数据块bi.构建统一的i/o管道用于样本采集,并将获取的随机样本保存于内存中的样本缓冲区,为后续共享采样提供数据支持;针对第一级共享,根据共享map任务中各个参与合并的map任务在每一轮精度估计所需样本的需求量,从缓冲区中读取相应大小的样本集并分配给中满足共享采样条件的map任务以完成计算任务;若共享map任务中需要进行统计量计算共享,则在第二级共享中从第一级共享结果获取相应样本集,并对其按照底层map任务共享组进行中间统计量的分类计算,各个共享组通过对中间统计量的复用得到各自统计量,从而完成计算任务。

所述统计量的分类计算,具体可由两阶段完成:划分阶段和调整阶段。输入一组样本集合k={k1i,k2i,…kni},对样本集合k进行升序排序,划分阶段利用贪心策略确定初始共享分组方案;而调整阶段的任务是对相邻共享分组内的map任务进行局部调整。

划分阶段采用一组样本量的方差值作为度量其差异大小的标准,通过对方差较大的共享分组进行划分实现差异样本量的分离。首先,计算当前共享分组方案的整体共享开销并记为cmin,其次,从共享分组方案中选取具有最大方差的共享分组作为划分操作的候选共享分组,并根据共享分组内样本量的均值将其划分成两个新的共享分组,随后,计算新产生的共享分组方案'的整体共享开销并记为ccur,若cmin≤ccur则保留该新共享分组方案并重复上述划分执行流程,反之则返回原共享分组方案。

在调整阶段,定义共享分组方案的第i个共享分组sgr表示样本量的迁出分组,而第i-1个共享分组sgl;表示样本量的迁入分组,选取小于分组内样本量均值的样本量形成初始的候选迁移样本量集合cand;对cand中的元素进行进一步优先级判定,选取较优的样本量进行迁移。针对中的每个元素cand[j],分别统计sgr内剩余样本量中与其具有公共边界的样本量个数egr以及sgl内所有样本量中与其具有公共边界的样本量个数egl。定义两个变量cer和cel分别对cand[j]所对应的egr和egl进行排序,在cer中采用升序排列,而在cel中采用降序排列,针对任一cand[j],采用其在cer和cel中的索引位置rind和lind作为优先级归一化参数,并引入权重系数win和wout以调节egr和egl对优先级的影响。综合考虑egr和egl影响的样本量迁移优先级按如下公式计算:

rank=winrind+woutlind

其中权重系数win+wout=1;为每个计算得到其对应的迁移优先级并选取具有最高优先级的样本量进行相邻共享分组间的迁移以获取新的共享分组方案,并通过共享代价的计算和比较可以判定上述迁移实例是否有效,直至共享代价不再降低,并返回最终共享分组方案。

给定一个多表检索,其map函数根据不同的共享需求对相应的map任务或者共享分组进行分别处理,实现输入数据的读取并对样本集进行统计量计算,将每一轮统计计算结果作为reduce函数的输入数据。首先,map函数加载全局变量以支持后续统计量计算,并从变量中读取采样共享map任务集合以及统计量计算共享分组。其次,针对每一个到达的键值对,首先由公共样本缓冲区进行缓存,并根据不同的共享需求对其进行读取和使用。针对采样共享,当中保存了足量样本时,获取每个所需的样本量并更新进而根据变量中的检索类型对:进行统计量计算,并将计算结果以当前检索id为键值以统计量和当前map任务id为组合键值形成键值对作为后续reduce函数的输入数据。

综上所述,本发明提出了一种大规模数据处理平台的构建方法,基于改进的分布式处理架构将来自不同异构源的多种小文件进行统一规范组织,便于高效存储、分析与检索。

显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1