[发明专利]一种数据分布方法和管理节点在审
申请号: | 201210351902.0 | 申请日: | 2012-09-20 |
公开(公告)号: | CN103678395A | 公开(公告)日: | 2014-03-26 |
发明(设计)人: | 曲文武 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京派特恩知识产权代理事务所(普通合伙) 11270 | 代理人: | 蒋雅洁;王黎延 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 分布 方法 管理 节点 | ||
技术领域
本发明涉及分布式数据管理技术领域,尤其涉及一种数据分布方法和管理节点。
背景技术
通常,使用一台普通的计算机处理几百GB(吉比特)的数据,例如日志文件,往往需要几个小时或者更长的时间,而处理几十TB(太比特)的数据,可能需要几百个小时,处理用时太长,为此,人们采用数据分布的方法来解决上述问题,所述数据分布是指,全部数据的集合称为表,全部数据中的一部分的集合称为子表,一个表包括若干个子表,把若干个子表分布到若干个计算节点上,例如100个计算节点,每个计算节点只负责全部数据中的一部分数据的计算。这样,这些计算节点可以同时进行计算,可以大大减少处理用时。
数据分布系统通常包括一个管理节点和若干计算节点,参见图5所示,管理节点和计算节点通过网络相互连接。管理节点负责数据的分布、计算任务的调度等,管理节点往往与数据存储管理节点、集群管理节点在物理上是重合的,其中数据管理节点记录表的子表数目以及子表的位置等信息,集群管理节点记录节点的地址、内存大小、CPU能力等信息。计算节点负责在本地的硬盘或内存中存储子表,以及执行管理节点分配的任务,并将执行结果保存在本地的硬盘或内存中。所述管理节点和计算节点可以是计算机,也可以是处理器。
例如,{中国所有人的姓名}就是一个表,这个表包括16亿个名字,由于数据量太大了,需要把它分成一些子表,每个子表的姓名总数不超过1万。这样就形成了子表{{姓张的人1},{姓张的人2},...{姓钱的人1},...},一个表包括16万个子表。把这些子表分布到1000个计算节点上,可以把前160个子表存储在第一个计算节点,依此类推,这个过程就是数据分布。把一个子表放到一个计算节点上需要通过网络传输完成,如果一个计算节点存储160个子表,那么,就需要向这个计算节点传输160个子表的数据量,数据量越大网络传输的负担越大。
交叉连接(cross join)是两个表之间的一个标准操作命令,它的功能与日常算术中的乘法比较相近,但cross join是两个表之间的乘积(笛卡儿积)。例如,表1为(5,4),表2为(3,2,6),表1包括5和4两个元素,表2包括3、2、6三个元素。日常算术中5×5=25,但是,(5,4)cross join(3,2,6)的结果可能是(5×3,4×3,5×2,4×2,5×6,4×6)=(15,12,10,8,30,24),或者是(5+3,4+3,5+2,4+2,5+6,4+6)=(8,7,7,6,11,10)。这些实例得到的结果都是一个表,得到的表都包括2×3=6个元素。
假设有两个计算节点,计算节点N1和计算节点N2,如果把上述表1和表2里的元素当作子表,子表{5}、{3}、{2}分布在N1上,子表{4}、{6}分布在N2上。当需要进行两个表之间的cross join计算时,即({5},{4})cross join({3},{2},{6})时,会出现以下问题:完成cross join计算需要进行{5}和{6}、{4}和{3}和{4}和{2}之间的计算,而这两个子表在不同的计算节点上,导致无法进行计算。目前,为了正常进行cross join计算,通常使每个计算节点都存储其中一个表里的所有子表,另一个表里的子集均匀的分布在各计算节点上,例如N1和N2都存储{3}、{2}、{6},N1存储{5},N2存储{4},或者,N1和N2都存储{5}和{4},N1存储{3}、{2},N2存储{6}等数据分布方式。但是现有这种数据分布方式,会使需要传输到计算节点上的数据量很大,网络传输的负担很重,尤其是数据分布的计算节点数量越多,两个表的子表数目接近时,数据量过大的问题更为明显。目前还没有一种能够减少传输的数据量的技术。
发明内容
有鉴于此,本发明的主要目的在于提供一种数据分布方法和管理节点,能够减少传输的数据量,减轻网络传输负担。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种数据分布方法,应用于节点,所述方法包括:
根据收到的交叉连接请求,获取需要进行交叉连接的表A和表B各自包括的子表的数目、子表的序列号、节点的数目和节点的序列号;
将表A或表B包括的子表的序列号依次设置在横坐标或纵坐标方向,分别作为大矩形的长或宽,生成一个大矩形;
根据构造的方法把所述大矩形分为两个子矩形,分别为第一子矩形和第二子矩形;
对所述第一子矩形和第二子矩形分别进行均匀分割,形成若干小矩形,每个小矩形对应一个计算节点的序列号,并且与子表的序列号对应;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210351902.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种文件系统的创建方法及装置
- 下一篇:一种洗衣机固定装置输送结构
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置