- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MapReduceXML编码研究
基于MapReduceXML编码研究
摘 要 XML因其自描述性和可扩展性作为网络中一种主要数据形式得到越来越多的应用,单一XML文档数据量变得越来愈大,如何有效求解满足一定查询语义的结果是XML数据查询技术的一个核心问题,其中基于XML文档对应文档树采用的编码是影响查询效率的关键因素。本文实验过程是通过MapReduce计算框架完成,将前缀流编码作为研究对象,提出了一种新的编码MINDewey码。对比Dewey码,ED码,通过在分布式集群下编码效率提高了至少10%。
【关键词】MINDewey XML MapReduce Dewey ED
1 引言
XML因其自描述性和可扩展性,使得很多数据用XML表示,基于此文档的数据量不断增大。通过关系数据库查询大容量XML文档数据,查询速度很慢,甚至查不出来,而hadoop作为大数据集的并行开发平台,对大型XML数据检索带来了全新的可能。
同时,对XML文档进行编码是在XML查询处理中第一而且至关重要的一步。对于XML数据的查询,是建立在XML对应的文档树上的。
每一个节点的编码都保留了从根节点到当前节点的编码信息,有很多重复的信息,因而编码存在冗余问题。
编码为的“quantity”关键字和1.1.1的“item”关键字,它们的位置关系通过编码只能看出它们对应文档树的位置,并不直观,因为这种编码无法转化为一个绝对的数值。
2 相关知识
2.1 Dewey码
节点编码形式为L(v)=a1.a2....ai,v表示文档树对应的节点,a1.a2..ai对应节点的编码,用“.”隔开。例如当前节点a的编码为k1,那么节点a的第i个孩子节点编码为k1.(i-1)。
2.2 SLCA(最小最低公共祖先)节点定义如下
选取查询的关键字序列为S={k1,k2...ki},其中ki表示欲查询的其中一个关键字,XML文档树经由编码后,包含大量的节点编码,SLCA节点的求解就是在文档树中找到满足下列条件的所有子树的根节点:
2.3 MapReduce
MapReduce将要执行的问题拆分为Map和Reduce两个部分,以达到分散运算的效果。用户指定一个Map函数来拆分数据集,且产生相应的一系列中间Key/Value对,然后使用Reduce函数来合并所有具有相同Key值的中间键值对,并将结果输出到HDFS作为下一轮计算的输入。
3 新的编码--MINDewey码
在XML文档中,按行顺序读取数据的方式与XML对应的文档树的先序排列是一样的,Dewey码和ED码保留了从根节点开始到当前节点的所有节点信息,存在冗余问题。如果仅仅保留当前节点的相对父子关系,编码长度将短很多,因而提出这种新的编码,Xwei码该编码的表示形式为
A.B(i).D
其中A表示在XML文档树中对应的层,B表示的对于当前节点的父亲节点编号,i表示的是当前节点是父亲节点的第几个孩子,D表示当前节点编号,这里的D其实就是节点在文档中的ID,这个ID是根据文档树对应节点的先序来编号的。
由于文档树中节点的顺序性是基于树的先序遍历来说的,这使得在MapReduce框架下,对文档树所有节点,赋予一个全局有序的编号成为一种可能,即按照先序遍历,对节点集进行顺序编码。
4 基于MapReduce实现的分布式并行编码算法
4.1 基于Dewey码和ED码的编码算法
在对节点进行Dewey码的算法中,如果遇到数据格式为“”的数据行时,节点编码执行加“.1”的操作。当连续遇到数据格式为“”的数据行时,编码基本不变,只是将末位加1。当遇到数据格式为“”的数据行时,删除节点编码最后带有“.”的部分。
ED码是在Dewey码的基础上,需要构造了一个有限状态转换机FST。FST是通过XML文档的DTD生成而来的。
假设节点u和v,u是v的父亲,则ED(v)=ED(u).x,这里的x就是根据FST求得的,根据上面的FST,节点a有三个孩子,则n=3,如果当前节点是a的第一个孩子,则x=k,也就是对应FST中mod 3运算后的结果,否则,如果当前节点的左兄弟ED码最后“.”后面的整数是y,则
1)在(y mod n)k时,x=[y/n]*n+k
2)在(y mod n)=k时,x=[y/n]*n+k+n
3)在(y mod n)k时,x=[y/n+1]*n+k
4.2 参照Dewey码编码算法提出MINDewey码的算法思想
这里根据Dewey码,设计出基于MapReduce相应的编码算法。
Dewey Labeling at the Map stage of MapReduce:
该编
原创力文档


文档评论(0)