首页 / 一种并行分布式大数据架构构建方法及系统

一种并行分布式大数据架构构建方法及系统有效专利 发明

技术领域

[0001] 本发明涉及并行数据处理的技术领域,尤其涉及一种并行分布式大数据架构构建方法及系统。

相关背景技术

[0002] 大数据是由分布存储在集群节点中多个单节点的磁盘空间中能被进行分布式处理的数据构成的一个数据总体。大数据的规模可以随着节点数量的不断增加而不断扩大。
[0003] 在当代,我们已经被海量的数据包围,要从这些数据中提取出有价值的信息,就需要提供底层细节透明的分布式基础设施。常见的并行分布式架构有HDFS系统、HBase系统、MapReduce分布式计算框架等;HDFS系统具有高容错性、高伸缩性等优点,但难以保障数据的一致性;HBase系统虽能支持海量数据的写入,但不适合于大范围数据查询;MapReduce分布式计算框架可以在不了解分布式系统底层细节的情况下开发并行、分布的应用程序,重复利用大规模的计算资源,但过于低层化,对于一个简单的查询,需要写Map和reduce函数,复杂且耗费时间。

具体实施方式

[0023] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
[0024] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0025] 其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
[0026] 本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
[0027] 同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0028] 本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0029] 实施例1
[0030] 参照图1~2,为本发明的第一个实施例,该实施例提供了一种并行分布式大数据架构构建方法,包括:
[0031] S1:通过网格单元100建立网格,将数据按照时间戳依次存入网格。
[0032] (1)建立网格。
[0033] 定义共有n*m个数据,计算每层数据节点的平均密度ρ;
[0034] 根据平均密度ρ对每层数据区域进行网格划分,并判断该网格中数据节点的密度ρi是否接近于平均密度ρ,定义|ρi‑ρ|≥0.01为不接近,若不接近,则根据数据节点面积划分网格;
[0035] 若接近,则继续根据平均密度ρ对每层数据区域进行网格划分。
[0036] 其中,n为数据层数,m为每层数据的节点数,ρi表示第i个数据节点。
[0037] (2)将数据按照时间戳依次存入网格。
[0038] S2:利用计算单元200计算网格数据相关性和数据节点采样时间间隔。
[0039] 网格数据相关性包括网格空间相关性CN、数据采集时间相关性DT和数据采集位置相关性DL;
[0040] (1)计算网格空间相关性CN
[0041] 结合布尔值函数和网格数据获得该网格空间相关性:
[0042]
[0043] 其中,Fq表示第q个数据节点采样时间间隔内网格F采集的数据,Gq表示第q个数据节点采样时间间隔内网格G采集的数据,l为数据节点采样时间间隔总数。
[0044] 需要说明的是,Bool为布尔函数,当 时,Bool(Fq,Gq)=1;
[0045] 当 时,Bool(Fq,Gq)=0;其中SV为值相似度,本实施例将其设置为0.8。
[0046] (2)数据采集时间相关性DT
[0047] 根据数据节点采样时间间隔,结合顺序变量计算数据采集时间相关性DT;
[0048]
[0049] 其中,TF为网格数据X的采样时间,TG为网格Y的采样时间,tF为网格数据X与其前一个数据间的采样时间间隔,tG为网格数据Y与其前一个数据间的采样时间间隔。
[0050] (3)数据采集位置相关性DL
[0051] 根据采集地点编号对数据进行Hash映射,结合设置的相关系数获得数据采集位置相关性DL。
[0052] 相关系数α为:
[0053]
[0054] 其中,σX、σY为X、Y的标准差;α的范围为(0,1)。
[0055] S3:根据网格数据相关性将数据通过传输单元300将网格数据分配给数据存储单元400。
[0056] 传输单元300包括传输接口和传输路径,其中传输接口由多个Mapper接口组成。
[0057] (1)根据网格数据相关性将网格数据划分为父节点和子节点;
[0058] 设置网格空间相关性CN>0的网格数据为父节点,其余数据为子节点。
[0059] (2)计算父节点与子节点间的距离和相对角度,规划传输路径,如图2所示;
[0060] 相对角度θ为:
[0061]
[0062] 其中,Dp、Hp为不同数据父节点与子节点间的距离。
[0063] (3)根据传输路径,并通过Mapper接口将网格数据传输至mapper节点中的缓存区;
[0064] 当任务数量过多时,本实施例对任务进行编号,以更高效地处理数据。
[0065] 由于并行分布式产生的结果并不能直接将数据写入数据存储单元400,需要先将2
数据写入缓存区,当缓存区中的任务数x大于10 时,通过类HashPartitioner进行任务编号,利用spark微批处理形式将不同任务编号对应的网格数据写入数据存储单元400。
[0066] 类HashPartitioner根据下式进行任务编号:
[0067] H(key)=Hash(key)/x
[0068] 其中,H(key)为任务编号,key为map输出的key值。
[0069] (4)搭建数据存储单元400
[0070] 数据存储单元400包括RAC数据库和Teradata数据库;
[0071] 其中,RAC数据库由集群节点、RAW设备、网络文件系统、私有网络和对外服务的网络组成。
[0072] Teradata数据库由PE、BYNET和AMP三个组件构成,具体的,
[0073] 1)PE:一个PE也被称为一个vproc(virtual processor),该组件主要包括①Session Control:接受客户端的连接请求,验证用户名和密码;②Parser:接受客户端的SQL请求,校验SQL的语法,通过查询数据字典确保客户端的操作的对象是存在的并且有权限操作对象;③Optimizer:基于成本的优化器,该组件优化SQL生成最优的执行计划;④Dispatcher:接受Optimizer组件的执行计划通过BYNET分布到不同的AMP;
[0074] 2)BYNET:是AMP和PE之间的桥梁,通过BYNET网络互联将所有的AMP连在一起;
[0075] 3)AMP:为一个vproc,用于管理数据;
[0076] AMP处理完由PE通过BYNET接受返回结果并最终呈现给客户端。
[0077] 本实施例将任务编号为1~103,且网格数据相关性均大于1所对应的网格数据存入Teradata数据库,剩余数据存入RAC数据库,以保障数据的一致性,同时通过RAC数据库对剩余数据的并发访问进行全局控制与管理,保证数据存储单元400中各个节点的负载平衡,极大提高数据查询能力。
[0078] 其中,RAC数据库通过K个集群节点进行内部传输。
[0079] 为了对本方法中采用的技术效果加以验证说明,本实施例选择HDFS系统、HBase系统和采用本方法进行对比测试,以科学论证的手段对比试验结果,以验证本方法所具有的真实效果。
[0080] 本实施例中将采用HDFS系统、HBase系统和和本方法分别对数据传输、查询性能进行实时测量对比。
[0081] 系统的运行时间通过Linux time命令获取,主要包括Real Time(RT)、User Time(UT)、Sys Time(ST),其中Real Time指程序的总体运行时间,表示程序开始运行到结束的时间间隔,包括运行过程中的IO等待时间,User Time指程序运行在用户态下消耗的CPU时间,不包括其他进程的调度以及IO阻塞等时间,Sys Time指程序运行在内核态下消耗的CPU时间,表示进程内核调用的运行时间。
[0082] 分别记录HDFS系统、HBase系统和和本方法一次性导入1万、10万、100万条数据至架构系统的运行时间,测试结果如下表所示。
[0083] 表1:数据传输时间对比。
[0084]
[0085] 由表1可见,随着数据量的增大,三种架构的耗时均有增长,但本方法在数据量越大时性能提升越明显。
[0086] 采用loadrunner对数据查询响应时间进行统计,结果如下。
[0087] 表2:数据查询性能对比。
[0088]
[0089] 上表可见本方法在不同的数据量的查询性能均高于HDFS系统和HBase系统,性能优异。
[0090] 实施例2
[0091] 本实施例不同于第一个实施例的是,提供了一种并行分布式大数据架构构建系统,包括,
[0092] 网格单元100,用于建立网格,将数据按照时间戳依次存入网格;
[0093] 计算单元200,与网格单元100连接,用于计算网格数据相关性和数据节点采样时间间隔,其中,网格数据相关性包括网格空间相关性CN、数据采集时间相关性DT和数据采集位置相关性DL。
[0094] 传输单元300,分别与网格单元100、计算单元200连接,用于将网格数据分配至数据存储单元400;
[0095] 数据存储单元400,用于存储网格数据;数据存储单元400包括RAC数据库和Teradata数据库。
[0096] 应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术‑包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
[0097] 此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0098] 进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
[0099] 如在本申请所使用的,术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。
[0100] 应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

当前第1页 第1页 第2页 第3页