数据处理方法及服务器集群与流程

文档序号:11216520阅读:405来源:国知局
数据处理方法及服务器集群与流程

本公开涉及一种数据处理方法及服务器集群。



背景技术:

在大规模计算集群中,经常会遇到不同计算框架加载同一张数据表的业务场景,比如集群内同时存在impala、hive、sparksql等多种计算框架,不同的计算任务可能都涉及到某一张表数据的加载,每个计算引擎都是各自加载表,这样处理实际上重复加载了相同的数据,导致大量磁盘读写操作,总体性能效果差。



技术实现要素:

本公开的一个方面提供了一种数据处理方法,应用于包括至少两种计算框架的集群计算过程,所述方法包括,当第一计算框架执行针对第一数据表的操作时,判断分布式内存系统中是否存在所述第一数据表对应的数据信息,若不存在,则执行所述针对第一数据表的操作,并将所述第一数据表对应的数据信息同步到所述分布式内存系统中。

可选地,所述方法包括若分布式内存系统中存在所述第一数据表对应的数据信息,则所述第一计算框架从所述分布式内存系统中加载所述第一数据表对应的数据信息。

可选地,将所述第一数据表对应的数据信息同步到所述分布式内存系统中,包括判断所述第一数据表是否属于可能被不同计算框架共用的数据表,所述可能被不同计算框架共用的数据表是基于数据表查询计划的统计数据确定的,若属于,则将所述第一数据表对应的数据信息同步到所述分布式内存系统中。

可选地,所述执行针对第一数据表的操作包括运行针对第一数据表的查询执行计划。

可选地,所述判断分布式内存系统中是否存在所述第一数据表对应的数据信息包括,所述第一计算框架获取其他计算框架同步到所述分布式内存系统的数据表对应的数据信息,其中,所述至少两个计算框架中的每个计算框架的存储类是经过扩展的,以及判断分布式内存系统中是否存在所述第一数据表对应的数据信息。

本公开的另一方面提供了一种服务器集群,包括至少一个处理器,以及至少一个存储器。存储器上存储有计算机可读程序,当所述程序被所述至少一个处理器执行时,使得所述至少一个处理器在第一计算框架执行针对第一数据表的操作的情况下,判断分布式内存系统中是否存在所述第一数据表对应的数据信息,以及在分布式内存系统中不存在所述第一数据表的情况下,执行所述针对第一数据表的操作,并将所述第一数据表同步到所述分布式内存系统中。

可选地,所述至少一个处理器还执行,在分布式内存系统中存在所述第一数据表对应的数据信息的情况下,使所述第一计算框架从所述分布式内存系统中加载所述第一数据表中的数据对应的数据信息。

可选地,所述至少一个处理器执行将所述第一数据表对应的数据信息同步到所述分布式内存系统中,包括,判断所述第一数据表是否属于可能被不同计算框架共用的数据表,所述可能被不同计算框架共用的数据表是基于数据表查询计划的统计数据确定的,以及若属于可能被不同计算框架共用的数据表,则将所述第一数据表对应的数据信息同步到所述分布式内存系统中。

可选地,所述执行针对第一数据表的操作包括运行针对第一数据表的查询执行计划。

可选地,所述至少一个处理器判断分布式内存系统中是否存在所述第一数据表对应的数据信息包括,所述第一计算框架获取其他计算框架同步到所述分布式内存系统的数据表对应的数据信息,其中,所述至少两个计算框架中的每个计算框架的存储类是经过扩展的,以及判断分布式内存系统中是否存在所述第一数据表对应的数据信息。

本公开的另一个方面提供了一种数据处理系统,所述系统包括判断模块和同步模块。判断模块用于当第一计算框架执行针对第一数据表的操作时,判断分布式内存系统中是否存在所述第一数据表对应的数据信息。同步模块用于在不存在的情况下,执行所述针对第一数据表的操作,并将所述第一数据表对应的数据信息同步到所述分布式内存系统中。

可选地,所述系统还包括加载模块,用于在分布式内存系统中存在所述第一数据表对应的数据信息的情况下,使所述第一计算框架从所述分布式内存系统中加载所述第一数据表对应的数据信息。

可选地,所述同步模块包括第一判断子模块和同步子模块。第一判断子模块,用于判断所述第一数据表是否属于所述可能被不同计算框架共用的数据表,所述可能被不同计算框架共用的数据表是基于数据表查询计划的统计数据确定的。同步子模块,用于在属于所述可能被不同计算框架共用的数据表的情况下,将所述第一数据表对应的数据信息同步到所述分布式内存系统中。

可选地,所述执行针对第一数据表的操作包括运行针对第一数据表的查询执行计划。

可选地,所述判断模块包括获取子模块和第二判断子模块。获取子模块,用于使所述第一计算框架获取其他计算框架同步到所述分布式内存系统的数据表对应的数据信息,其中,所述至少两个计算框架中的每个计算框架的存储类是经过扩展的。第二判断子模块,用于判断分布式内存系统中是否存在所述第一数据表对应的数据信息。

本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开实施例的服务器集群的示意图;

图2示意性示出了根据本公开实施例的数据处理方法的流程图;

图3示意性示出了根据本公开实施例的数据处理方法的流程图;

图4示意性示出了根据本公开实施例将第一数据表对应的数据信息同步到所述分布式内存系统中的流程图;

图5示意性示出了根据本公开实施例的判断分布式内存系统中是否存在所述第一数据表对应的数据信息的流程图;

图6示意性示出了根据本公开实施例的数据处理系统的示意图;

图7示意性示出了根据本公开实施例的数据处理系统的示意图;

图8示意性示出了根据本公开实施例的数据处理系统的示意图;

图9示意性示出了根据本公开实施例的判断模块的示意图;以及

图10示意性示出了根据本公开实施例的服务器集群中的一个计算节点的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。

因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。

由于不同数据处理场景的需要,在服务器集群100中,可能同时存在多个计算框架。例如,对于返回结果集较小的交互式查询场景,优选采用impala计算框架,而对于处理数据吞吐较大的抽取-转换-加载过程(etl,extract-transform-load),则优选采用hive计算框架。不同的计算框架的所处理的数据都存放在分布式文件系统中,因此,不同的计算框架在对数据操作时,需要通过同样的元数据定位数据表,并将其加载到内存中,再进行分布式并行运算。

本公开的实施例提供了一种数据处理方法及能够应用该方法的服务器集群。该方法在第一计算框架执行针对第一数据表的操作时,可将第一数据表对应的数据信息同步到分布式内存系统中,以便于其他计算框架在对该数据表操作时,可以直接从分布式内存系统中加载,减少了磁盘读写操作,提升了跨计算框架同表查询的效率。

分布式内存系统,是分布在多台机器上的内存形成的系统,其上存储的数据定期和磁盘文件进行同步。将数据同步到分布式内存系统,是指将数据从磁盘文件加载到多台机器的内存中,分片存储。

图1示意性示出了根据本公开实施例的服务器集群的示意图。

如图1所示,服务器集群100可以包括至少一个计算节点110以及网络120。网络120用以在计算节点110之间提供通信链路的介质。网络120可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。计算节点110可以是提供各种服务的服务器,例如存放数据表、提供查询功能、修改功能等的服务器,但不限于此。服务器集群100可以通过本公开实施例的方法加速数据表的加载过程。

应该理解,图1中的架构仅仅是示例,具体架构中包含的组件可以根据具体情况调整,根据实现需要,可以具有任意数目的网络和计算节点。

下面参照图2对本公开实施例的数据处理方法进行说明。

图2示意性示出了根据本公开实施例的数据处理方法的流程图。

如图2所示,该方法包括操作s210和操作s220。

在操作s210,当第一计算框架执行针对第一数据表的操作时,判断分布式内存系统中是否存在所述第一数据表对应的数据信息。

在操作s220,若不存在,则执行所述针对第一数据表的操作,并将所述第一数据表对应的数据信息同步到所述分布式内存系统中。

该方法在第一计算框架执行针对第一数据表的操作时,可将所述第一数据表对应的数据信息同步到所述分布式内存系统中,以便于其他计算框架在对该数据表操作时,可以直接从分布式内存系统中加载,减少了磁盘读写操作。

根据本公开实施例,在操作s210中,第一计算框架执行第一数据表的操作,可以是第一计算框架运行针对第一数据表的查询执行计划。查询执行计划在具体的计算之前运行,用于对查询过程进行预测和优化。因此,在运行针对第一数据表的查询执行计划时判断分布式内存系统中是否存在所述第一数据表对应的数据信息,并在不存在的情况下,将第一数据表对应的数据信息同步到所述分布式内存系统中,使得后续对该表数据的操作均可以从分布式内存加载。

根据本公开实施例,第一计算框架执行第一数据表的操作也可以是对第一数据表的其他操作,例如增加、删除或修改数据表中的信息等。

在操作s220,根据本公开实施例,在分布式内存系统中不存在所述第一数据表对应的数据信息的情况下,不仅需要执行第一计算框架执行针对第一数据表的操作,例如运行针对第一数据表的查询执行计划,或者增加、删除或修改数据表中的信息等,还将第一数据表对应的数据信息同步到所述分布式内存系统中,以便于其他计算框架在对该数据表操作时,可以直接从分布式内存系统中加载。

图3示意性示出了根据本公开实施例的数据处理方法的流程图。

如图3所示,该方法包括操作s210、操作s220和操作s230。

在操作s210,当第一计算框架执行针对第一数据表的操作时,判断分布式内存系统中是否存在所述第一数据表对应的数据信息,请参考图2所描述的操作,此处不再赘述。

在操作s220,若不存在,则执行所述针对第一数据表的操作,并将所述第一数据表对应的数据信息同步到所述分布式内存系统中。

在操作s230,若分布式内存系统中存在所述第一数据表对应的数据信息,则所述第一计算框架从所述分布式内存系统中加载所述第一数据表对应的数据信息。第一计算框架对已经存储在分布式内存系统中的数据表,不再从磁盘加载,而是直接通过分布式内存系统加载,减少了磁盘读写操作。

图4示意性示出了根据本公开实施例在操作s220中将所述第一数据表对应的数据信息同步到所述分布式内存系统中的流程图。

如图4所示,将所述第一数据表对应的数据信息同步到所述分布式内存系统中包括操作s221和操作s222。

在操作s221,判断所述第一数据表是否属于可能被不同计算框架共用的数据表。根据本公开的实施例,所述可能被不同计算框架共用的数据表是基于数据表查询计划的统计数据确定的。根据本公开实施例,在多计算框架并行计算前,服务器集群获得数据表查询计划,以便对查询过程进行整体预测和优化。在该计划中,可以获得将要加载的数据表,以及其被共用的情况,进而确定出可能被不同计算框架共同的数据表。

在操作s222,若所述第一数据表属于可能被不同计算框架共用的数据表,则将所述第一数据表对应的数据信息同步到所述分布式内存系统中。

该方法通过识别可能被共用的数据表,避免了仅被操作一次的数据表加载到分布式内存中,节约了系统资源。

图5示意性示出了根据本公开实施例在操作s210中判断分布式内存系统中是否存在所述第一数据表对应的数据信息的流程图。

如图5所示,判断分布式内存系统中是否存在所述第一数据表对应的数据信息包括操作s211和操作s212。

在操作s211,所述第一计算框架获取其他计算框架同步到所述分布式内存系统的数据表对应的数据信息,其中,所述至少两个计算框架中的每个计算框架的存储类是经过扩展的。

在现有的计算框架中,在不修改框架源代码的前提下,每个计算框架需要各自加载数据表。根据本公开实施例,可以对每个计算框架的存储类进行扩展,例如memorystore类和tachyonstore类,同时修改操作算子的执行逻辑,使其支持对特定元数据的重定向查询,例如,对已经存储在分布式内存系统中的数据表,不再从磁盘加载,而是直接通过分布式内存系统加载,从而实现一个计算框架能够获取其他计算框架同步到所述分布式内存系统的数据表对应的数据信息。

在操作s212,判断分布式内存系统中是否存在所述第一数据表对应的数据信息。在实现了获取其他计算框架同步到所述分布式内存系统的数据表对应的数据信息后,第一计算框架可以判断所需要的第一数据表是否已经存在于分布式内存系统中。

该方法通过扩展计算框架的存储类,克服了计算框架难以获得其他计算框架同步过的数据表的问题,达到了不同计算框架能够共用加载后的数据表的技术效果。

图6示意性示出了根据本公开实施例的数据处理系统600的示意图。

如图6所示,数据处理系统600包括判断模块610和同步模块620。

判断模块610,例如执行上文参考图2所述的操作s210,用于当第一计算框架执行针对第一数据表的操作时,判断分布式内存系统中是否存在所述第一数据表对应的数据信息。

同步模块620,例如执行上文参考图2所述的操作s220,用于在不存在的情况下,执行所述针对第一数据表的操作,并将所述第一数据表对应的数据信息同步到所述分布式内存系统中。

图7示意性示出了根据本公开实施例的数据处理系统700的示意图。

如图7所示,数据处理系统700包括判断模块610、同步模块620和加载模块730。

判断模块610,例如执行上文参考图3所述的操作s210,用于当第一计算框架执行针对第一数据表的操作时,判断分布式内存系统中是否存在所述第一数据表对应的数据信息。

同步模块620,例如执行上文参考图3所述的操作s220,用于在不存在的情况下,执行所述针对第一数据表的操作,并将所述第一数据表对应的数据信息同步到所述分布式内存系统中。

加载模块730,例如执行上文参考图3所述的操作s230,用于在分布式内存系统中存在所述第一数据表对应的数据信息的情况下,使所述第一计算框架从所述分布式内存系统中加载所述第一数据表对应的数据信息。

图8示意性示出了根据本公开实施例的同步模块620的示意图。

如图8所示,同步模块620包括第一判断子模块621和同步子模块622。

第一判断子模块621,例如执行上文参考图4所述的操作s221,用于判断所述第一数据表是否属于所述可能被不同计算框架共用的数据表,所述可能被不同计算框架共用的数据表是基于数据表查询计划的统计数据确定的。

同步子模块622,例如执行上文参考图4所述的操作s222,用于在属于所述可能被不同计算框架共用的数据表的情况下,将所述第一数据表对应的数据信息同步到所述分布式内存系统中。

图9示意性示出了根据本公开实施例的判断模块610的示意图。

如图9所示,判断模块610包括获取子模块611和第二判断子模块612。

获取子模块611,例如执行上文参考图5所述的操作s211,用于使所述第一计算框架获取其他计算框架同步到所述分布式内存系统的数据表对应的数据信息。

第二判断子模块612,例如执行上文参考图5所述的操作s212,用于判断分布式内存系统中是否存在所述第一数据表对应的数据信息。

可以理解的是,判断模块610、获取子模块611、第二判断子模块612、同步模块620、第一判断子模块621、同步子模块622、以及加载模块730可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,判断模块610、获取子模块611、第二判断子模块612、同步模块620、第一判断子模块621、同步子模块622、以及加载模块730中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,判断模块610、获取子模块611、第二判断子模块612、同步模块620、第一判断子模块621、同步子模块622、以及加载模块730中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。

图10示意性示出了根据本公开实施例的服务器集群中的一个计算节点的框图。

如图10所示,服务器集群包括至少一个计算节点1000。根据本公开实施例,计算节点1000包括一个处理器1010,以及一个存储器1020。在本公开的另一些实施例中,计算节点1000可以包括任意数量的处理器1010或存储器1020。该计算节点1000例如可以实现上文参考图1描述的计算节点110,并组成服务器集群100。服务器集群100可以执行上面参考图2~图5描述的方法,以实现在第一计算框架执行针对第一数据表的操作时,将数据表对应的数据信息同步到分布式内存系统中,以便于其他计算框架在对该数据表操作时,可以直接从分布式内存系统中加载,减少了磁盘读写操作。

具体地,处理器1010例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器1010还可以包括用于缓存用途的板载存储器。处理器1010可以是用于执行参考图2~图5描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

存储器1020,例如可以是能够包含存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);半导体存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。

存储器1020,可以包括计算机程序1021,该计算机程序1021可以包括代码/计算机可执行指令,其在由处理器1010执行时使得处理器1010执行例如上面结合图2~图5所描述的方法流程及其任何变形。

计算机程序1021可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1021中的代码可以包括一个或多个程序模块,例如包括1021a、模块1021b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1010执行时,使得处理器1010可以执行例如上面结合图2~图5所描述的方法流程及其任何变形。

根据本发明的实施例,判断模块610、获取子模块611、第二判断子模块612、同步模块620、第一判断子模块621、同步子模块622、以及加载模块730中的至少一个可以实现为参考图10描述的计算机程序模块,其在被处理器1010执行时,可以实现上面描述的相应操作。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

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