CN117076404A - 混合大数据计算平台、计算方法、设备及存储介质 - Google Patents

混合大数据计算平台、计算方法、设备及存储介质 Download PDF

Info

Publication number
CN117076404A
CN117076404A CN202310914086.8A CN202310914086A CN117076404A CN 117076404 A CN117076404 A CN 117076404A CN 202310914086 A CN202310914086 A CN 202310914086A CN 117076404 A CN117076404 A CN 117076404A
Authority
CN
China
Prior art keywords
module
data
calculation
task
computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310914086.8A
Other languages
English (en)
Inventor
王洋
李秋彦
蔡铭元
叶可江
须成忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Institute of Advanced Technology of CAS
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Institute of Advanced Technology of CAS filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CN202310914086.8A priority Critical patent/CN117076404A/zh
Publication of CN117076404A publication Critical patent/CN117076404A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种混合大数据计算平台、计算方法、设备以及存储介质。所述计算平台包括计算模块、通信模块和存储模块;计算模块包括Spark计算模块和MP I计算模块,Spark计算模块用于接收双密型应用数据的计算任务,通过通信模块从存储模块中获取计算任务的计算数据,并识别计算任务的任务类型,如果是数据密集型任务,Spark计算模块生成相应的RDD后,调用Spark计算范式进行任务计算;如果是计算密集型任务,Spark计算模块将计算任务的任务代码和计算数据存储到存储模块,并通过通信模块调用MP I计算模块,MP I计算模块进行任务计算。本申请为双密型应用数据的计算任务提供了更好的支持,使得计算具备更高的性能。

Description

混合大数据计算平台、计算方法、设备及存储介质
技术领域
本申请属于大数据处理技术领域,特别涉及一种混合大数据计算平台、计算方法、设备以及存储介质。
背景技术
以机器学习为代表的人工智能大数据应用负载呈现出典型的计算密集型和数据密集型的双密特征,这类双密型应用既涉及对于海量数据的处理,同时又对计算性能提出很高的要求。传统的计算框架面对双密型应用,都展现出了各自的不足之处。例如目前主流的大数据框架Spark,具备完备的大数据处理机制,且相较于其它大数据框架,已经因其基于内存的计算机制和全局优化设计思想取得了较大的性能提升,但是面对计算密集型应用,其性能仍远低于高性能计算主流框架MPI(Message Passing Interface,消息传递窗口)。而MPI虽然在处理计算密集型任务中具有较大性能优势,但是对于数据密集型任务,MPI不能够像Spark那样将用户从复杂的资源管理、调度、并行性和容错等方面解放出来。
为了解决上述不足,现有技术中采用Spark与MPI相融合的处理框架,此类融合方式需解决调用过程中的数据通信问题。例如现有的Alchemist和Spark+MPI,Alchemist融合架构通过网络通信传输数据,在调用MPI库进行高性能计算之前,Alchemist模块中的Driver节点首先与Spark集群的Driver节点建立Socket连接,并通过该连接交换各自集群中Worker节点的相关信息。之后,Alchemist模块中的Worker节点根据获取的信息与Spark集群中的Worker节点建立Socket连接,并通过该连接交换位于各Worker节点上的分布式数据。Spark+MPI融合架构通过共享内存来传输数据。在调用MPI集群进行高性能计算之前,Spark先将MPI计算需要的计算数据保存在共享内存中,MPI计算时,各个节点分别从内存中读数据。Spark+MPI利用共享内存进行消息传递,数据的多次复制产生的多个副本会对内存造成压力。此外,大数据量的多次复制也会对性能产生影响。相比于通过共享内存向MPI集群传输数据,Alchemist通过Socket来进行数据传输速度快,且不需要内存副本,但是Socket通信受到网络带宽等因素的影响,当需要通信的数据量达到一定数量级,网络带宽会成为新的性能瓶颈。
发明内容
本申请提供了一种混合大数据计算平台、计算方法、设备以及存储介质,旨在至少在一定程度上解决现有技术中的上述技术问题之一
为了解决上述问题,本申请提供了如下技术方案:
一种混合大数据计算平台,包括计算模块、通信模块和存储模块;
所述计算模块包括Spark计算模块和MPI计算模块,所述Spark计算模块用于接收用户端提交的双密型应用数据的计算任务,通过所述通信模块从存储模块中获取所述计算任务的计算数据,并识别所述计算任务的任务类型,所述任务类型包括数据密集型任务和计算密集型任务,如果是数据密集型任务,所述Spark计算模块按照任务要求生成相应的RDD后,调用Spark计算范式进行任务计算;如果是计算密集型任务,所述Spark计算模块将所述计算任务的任务代码和计算数据存储到存储模块,并通过所述通信模块调用MPI计算模块,所述MPI计算模块用于从所述存储模块中读取任务代码和计算数据,并调用MPI计算范式进行任务计算。
本申请实施例采取的技术方案还包括:所述存储模块包括源数据存储模块、中间数据存储模块和元数据存储模块,所述源数据存储模块基于HDFS大数据文件系统,用于存储所述双密型应用数据的计算任务所需的原始数据;所述中间数据存储模块用于存储所述Spark计算模块与MPI计算模块在通信过程中的中间数据;所述元数据存储模块用于存储所述计算数据的元数据信息。
本申请实施例采取的技术方案还包括:所述中间数据包括动态数据和静态数据,所述动态数据至少包括所述MPI计算模块所需执行的任务代码,所述静态数据至少包括所述Spark计算模块和MPI计算模块在通信过程中的计算数据;所述中间数据存储模块包括中间代码数据存储子模块和中间计算数据存储子模块,所述中间代码数据存储子模块用于以共享文件的形式存储所述静态数据,中间计算数据存储子模块用于采用分布式内存文件系统的组织结构存储所述动态数据,且所述元数据存储模块采用基于Redis数据库的方式充当所述中间计算数据存储子模块的服务器。
本申请实施例采取的技术方案还包括:所述通信模块包括高吞吐通信模式和低延迟通信模式,所述通信模块的通信过程包括:
Spark计算模块的内部通信:在所述Spark计算模块的启动阶段和执行Spark计算范式阶段,所述通信模块采用高吞吐通信模式从所述源数据存储模块中获取当前任务需要的计算数据;
MPI计算模块的内部通信:在所述MPI计算模块的启动阶段和执行MPI计算范式阶段,所述MPI计算模块通过所述通信模块的低延迟通信模式访问中间数据存储模块读取任务代码,根据所述任务代码从所述元数据存储模块获取所需计算数据的元数据信息,根据所述元数据信息与中间数据存储模块建立低延迟通信连接,并向所述中间数据存储模块请求所需的计算数据;
Spark计算模块与MPI计算模块之间的数据传输:所述Spark计算模块与MPI计算模块之间的传输数据包括分布式数据和非分布式数据,所述非分布式数据是指调用过程中的命令和参数数据,所述通信模块采用Driver间建立Socket的通信方式进行非分布式数据传输;所述分布式数据是指计算数据,所述通信模块采用分布式文件系统结合高吞吐通信模式进行数据传输。
Spark计算模块与存储模块的通信:所述Spark计算模块在执行Spark计算范式前,通过所述通信模块从所述源数据存储模块中读取所述计算任务所需的原始数据;在调用MPI计算模块前,通过所述通讯模块与所述中间数据存储模块通信,存储所述MPI计算模块计算所需的任务代码和计算数据,并与所述元数据存储模块通信,保存所述计算数据的元数据信息;计算完成之后,与所述源数据存储模块通信并保存计算结果;
MPI计算模块与存储模块的通信:所述MPI计算模块启动后,通过所述通信模块访问所述中间数据存储模块获取所需执行的任务代码,根据所述任务代码访问元数据存储模块获取计算数据的元数据信息,根据所述元数据信息与中间数据存储模块建立低延迟通信连接,并向所述中间数据存储模块请求所需的计算数据,所述中间数据存储模块通过低延迟通信连接向MPI计算模块发送计算数据。
本申请实施例采取的另一技术方案为:一种混合大数据计算方法,包括:
通过Spark计算模块接收用户端提交的双密型应用数据的计算任务,并通过通信模块从存储模块中获取所述计算任务的计算数据;
判断所述计算任务属于数据密集型任务还是计算密集型任务,如果是数据密集型任务,所述Spark计算模块按照所述计算任务的任务要求生成相应的RDD后,调用Spark计算范式进行任务计算;
如果是计算密集型任务,通过所述Spark计算模块将所述计算任务的任务代码和计算数据存储到存储模块,并通过所述通信模块调用MPI计算模块,通过所述MPI计算模块从所述存储模块中读取任务代码和计算数据,并调用MPI计算范式进行任务计算。
本申请实施例采取的技术方案还包括:所述通过Spark计算模块接收用户端提交的双密型应用数据的计算任务,并通过通信模块从存储模块中获取所述计算任务的计算数据具体为:
所述用户端通过应用层接口提交双密型应用数据的计算任务;
通过所述Spark计算模块读取计算任务,并根据所述计算任务的任务要求建立Spark计算环境,生成所述计算任务的有向无环图;
根据所述有向无环图将所述计算任务划分为单个的独立任务,并将划分后的任务存储至任务集中;
从所述任务集中取出一个任务,并通过所述通信模块从源数据存储模块中获取当前任务需要的计算数据。
本申请实施例采取的技术方案还包括:所述通过所述Spark计算模块将所述计算任务的任务代码和计算数据存储到存储模块具体为:
通过所述Spark计算模块将获取的计算数据进行分区处理,将每个分区数据存储到不同Spark计算节点的内存文件系统中,将所述分区数据的元数据信息与Spark计算节点的对应关系存储到元数据存储模块,将所述MPI计算模块所需执行的任务代码保存到中间代码数据存储子模块,将任务所需的计算数据存储到中间计算数据存储子模块,向中间数据存储模块申请用于存储计算结果的存储地址,向MPI计算模块返回存储地址,并调用MPI计算模块执行任务计算。
本申请实施例采取的技术方案还包括:所述通过所述MPI计算模块从所述存储模块中读取任务代码和计算数据,并调用MPI计算范式进行任务计算具体为:
所述MPI计算模块通过通信模块访问所述中间数据存储模块读取任务代码,根据所述任务代码从所述元数据存储模块获取所需计算数据的元数据信息,并调用所述通信模块的低延迟通信模式下达读数据命令;
所述通信模块接收命令后,根据所述元数据信息与中间数据存储模块建立低延迟通信连接,并向所述中间数据存储模块请求所需的计算数据;
所述中间数据存储模块通过建立的低延迟通信连接向MPI计算模块发送计算数据,所述MPI计算模块接收计算数据后,向所述通信模块发送断开连接命令,并调用MPI计算范式进行任务计算;
所述任务计算完成后,根据所述Spark计算模块返回的存储地址将所述计算结果保存到中间数据存储模块。
本申请实施例采取的又一技术方案为:一种设备,所述设备包括处理器、与所述处理器耦接的存储器,其中,
所述存储器存储有用于实现所述混合大数据计算方法的程序指令;
所述处理器用于执行所述存储器存储的所述程序指令以控制混合大数据计算平台。
本申请实施例采取的又一技术方案为:一种存储介质,存储有处理器可运行的程序指令,所述程序指令用于执行所述混合大数据计算方法。
相对于现有技术,本申请实施例产生的有益效果在于:本申请实施例的混合大数据计算平台、计算方法、设备以及存储介质通过构建存算一体平台,为双密型应用数据的计算任务提供了更好的支持,使双密型应用数据的计算具备更高的性能。本申请实施例采用分布式内存文件系统结合高性能通信技术的通信方式,解决了传统的基于共享内存的通信方式存在的内存不足问题以及基于Socket通信的性能问题。本申请实施例结合了异构存储系统,为双密型应用数据的计算任务提供了针对其数据特征的存储模式,使得存储性能能够与双范式混合计算相匹配,平衡大数据存储与高性能存储之间的关系。
附图说明
图1是本申请实施例的混合大数据计算平台架构图;
图2是本申请实施例的计算模块结构示意图;
图3是本申请实施例的计算模块与存储模块活动图;
图4是本申请实施例的混合大数据计算方法流程图;
图5为本申请实施例的设备结构示意图;
图6为本申请实施例的存储介质的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
针对双密型应用数据的计算复杂性,本申请实施例的混合大数据计算平台通过融合Spark与MPI两种计算范式,既可以充分利用Spark提供的高可用的用户接口以及成熟的大数据处理机制,又可以获得MPI处理复杂计算的高性能,从而平衡大数据高吞吐计算模式的延时问题,并采用分布式共享内存结合高性能通信技术的数据通信方式,以解决共享内存的容量问题和Socket通信的性能问题,使得融合架构能够更好的支持双密型应用数据的计算。
具体地,请参阅图1,是本申请实施例的混合大数据计算平台架构图。本申请实施例的混合大数据计算平台从上到下依次包括应用层、计算模块、存储模块、通信模块和基础设施层,应用层用于为用户端提供接口,用户端通过接口向混合大数据计算平台提交双密型应用数据的计算任务并获取计算结果;计算模块用于采用Spark与MPI双范式混合计算功能对双密型应用数据的计算任务进行切分和分类,根据任务类型调用Spark计算范式或MPI计算范式执行任务计算,实现计算任务的分型优化调度,最大化Spark与MPI计算范式的计算性能;存储模块用于针对计算任务在计算过程中产生的数据特征集成不同类型的硬件设施构建不同的存储模式,为数据提供异构存储功能;通信模块用于为计算任务的不同计算阶段提供高吞吐和高性能两种数据通信模式,以平衡吞吐量和性能之间的关系;基础设施层用于为应用层、计算模块、存储模块和通信模块提供硬件支持。
具体的,请参阅图2,是本申请实施例的计算模块结构示意图。本申请实施例的计算模块包括Spark计算模块和MPI计算模块,Spark计算模块是为大规模数据密集型任务而设计的基于内存计算模式的计算模块,MPI计算模块是面向高性能计算密集型任务设计的基于消息传递的并行程序设计模块,二者的结合可以达到处理双密型应用数据的计算任务所要求的高性能大数据分析目标。计算模块通过应用层接口接收到用户端提交的双密型应用数据的计算任务后,Spark计算模块通过通信模块的通信接口从存储模块中获取计算数据,并自动识别任务类型,所述任务类型包括数据密集型任务和计算密集型任务,如果是数据密集型任务,则Spark计算模块按照任务要求生成相应的RDD(Resilient DistributedDatasets,弹性分布式数据集)后,调用Spark计算范式进行任务计算;如果是计算密集型任务,则Spark计算模块将任务代码和任务所需的计算数据存储到存储模块,并通过通信模块调用MPI计算模块,MPI计算模块从存储模块中读取任务代码及数据信息后,调用MPI计算范式进行任务计算,实现任务的分型优化调度与资源的合理分配共享,最大化Spark计算范式和MPI计算范式在处理双密型应用数据上的计算性能。具体如图3所示,是本申请实施例的计算模块与存储模块活动图。
进一步地,如图1所示,存储模块包括源数据存储模块、中间数据存储模块以及元数据存储模块,这些模块组成异构的存储系统,分别针对双密型应用数据在计算过程中不同阶段的不同数据提供分层的存储模式,以平衡吞吐量与延时之间的关系,最大化存储模块的存储性能。其中,源数据存储模块基于HDFS大数据文件系统,用于存储用户端提交的双密型应用数据的计算任务所需的原始数据;中间数据存储模块用于存储Spark计算模块与MPI计算模块在通信过程中的中间数据;进一步地,根据不同类型的中间数据的不同特点,本申请实施例将中间数据分为静态数据和动态数据两类,将中间数据存储模块分为中间代码数据存储子模块和中间计算数据存储子模块,中间代码数据存储子模块用于以共享文件的形式存储MPI计算模块所需执行的任务代码等静态数据,中间计算数据存储子模块用于采用分布式内存文件系统的组织结构存储Spark计算模块和MPI计算模块在通信过程中的计算数据等具有临时性和突发访问性特点的动态数据。
基于上述,本申请实施例采用动态数据和静态数据分离存储的这种存储方式,其优点在于:动静数据独立存储能够更好地优化内存空间利用率;内存文件系统构建在内存中,断电消失,符合动态数据临时性的特点;内存相比于磁盘具有更高的IO访问性能,能够更好地适配计算模块的计算速度;采用分布式架构将数据访问分摊在多个节点,利用负载均衡算法优化数据分布,能够更好地应对动态数据突发性访问的特点;以文件的方式存储数据,能够利用文件的树形目录高效地管理分布式数据,避免多余的数据结构的存储和管理数据结构算法的执行,减少数据访问的额外开销。
元数据存储模块是对存储模块的补充,用于存储计算数据的元数据信息,并采用基于Redis数据库的实现方式充当中间计算数据存储子模块的服务器,以提升存储模块的整体性能。具体的,由于中间计算数据存储子模块采用分布式文件系统的组织结构,需要服务器提供数据管理并记录数据与物理节点的对应关系,本申请实施例使用元数据存储模块充当中间计算数据存储子模块的服务器,采用基于Redis数据库的实现方式应对中间计算数据存储子模块的突发式访问和临时性特点。另外,在融合计算过程中,MPI计算模块需要通过与Spark计算模块中的Spark计算节点建立通信连接来获取计算数据,但由于负载均衡的设计,每次任务提交时,执行本次任务的Spark计算节点与MPI计算节点是不固定的,因此,MPI计算节点需要与整个Spark集群中的Spark计算节点建立连接才能获取所需要的计算数据,造成资源浪费的同时,降低了中间数据的存储性能。基于此,本申请实施例采取计算数据与元数据分离的策略,MPI计算模块在获取计算数据之前,首先访问元数据存储模块获取元数据信息,通过元数据信息直接获取计算数据对应的Spark计算节点并针对性地建立连接。
基于上述,本申请实施例的元数据存储模块具有以下优点:Redis数据库是基于内存的数据库,读写性能高,能够匹配中间数据存储模块的IO速度和计算模块的计算速度;通过使用Redis数据库,可以优化对双密型应用数据的计算任务包含的海量小文件的读写性能和内存空间利用率;Redis数据库提供多种持久化机制,有利于建设安全可靠的存储系统;Redis数据库采取IO多路复用模式和事件驱动机制,能够很好地支持并发访问,从而更好地应对中间计算数据存储子模块的突发式访问;Redis数据库可以组织为高可用集群,从而避免服务器单点失败的问题。
本申请实施例中,通信模块包括高吞吐和低延迟(TCP/IP)两种通信模式,Spark计算模块和MPI计算模块在相互调用时,不同模块之间采取不同的通信模式,以平衡吞吐量与高性能两个方面的需求。具体的,通信模块在各个模块之间的通信模式包括:
Spark计算模块的内部通信:Spark计算模块内部的数据通信主要包括Spark计算模块启动阶段和执行Spark计算范式阶段,Spark计算模块的内部通信为批处理计算提供支持,因此通信模块采用高吞吐通信模式从源数据存储模块中获取当前任务需要的计算数据;
MPI计算模块的内部通信:MPI计算模块的内部通信主要包括MPI计算模块启动阶段和执行MPI计算范式阶段,MPI计算模块的内部通信为并行计算提供支持,因此通信模块采用低延迟通信模式;具体为:所述MPI计算模块通过通信模块访问中间数据存储模块读取任务代码,根据任务代码从元数据存储模块获取所需计算数据的元数据信息,并下达读数据命令,通信模块接收命令后,根据元数据信息与中间数据存储模块建立低延迟通信连接,并向中间数据存储模块请求所需的计算数据;中间数据存储模块通过建立的低延迟通信连接向MPI计算模块发送计算数据;
Spark计算模块与MPI计算模块之间的数据传输:Spark计算范式与MPI计算范式进行融合的关键是Spark计算模块与MPI计算模块之间的数据传输,本申请实施例将Spark计算模块与MPI计算模块之间的传输数据分为分布式数据和非分布式数据两类,其中,非分布式数据是指调用过程中的一些命令和参数数据,对于非分布式数据,通信模块采用Driver间建立Socket的通信方式进行数据传输;分布式数据是指计算数据,对于分布式数据,通信模块采用分布式文件系统结合高吞吐通信模式进行数据传输。
Spark计算模块与存储模块的通信:在执行Spark计算范式前,通过通信模块从源数据存储模块中读取计算任务所需的原始数据;在调用MPI计算模块前,通过通信模块与中间数据存储模块通信,存储MPI计算模块计算所需的任务代码和计算数据,同时与元数据存储模块通信,保存计算数据的元数据信息;计算完成之后,重新与源数据存储模块通信并保存计算结果。
MPI计算模块与存储模块的通信:MPI计算模块启动后,需要通过通信模块访问中间数据存储模块以获取所需执行的任务代码,根据任务代码访问元数据存储模块,以获取计算数据的元数据信息,并调用低延迟通信模式下达读数据命令,通信模块接收命令后,根据元数据信息与中间数据存储模块建立低延迟通信连接,并向中间数据存储模块请求所需的计算数据,中间数据存储模块通过建立的低延迟通信连接向MPI计算模块发送计算数据,MPI计算模块接收到计算数据后,向通信模块发送断开连接命令,并在连接断开后,调用MPI计算范式进行任务计算。
基于上述,本申请实施例的混合大数据计算平台通过构建存算一体平台,为双密型应用数据的计算任务提供了更好的支持,使双密型应用数据的计算具备更高的性能。本申请实施例采用分布式内存文件系统结合高性能通信技术的通信方式,解决了传统的基于共享内存的通信方式存在的内存不足问题以及基于Socket通信的性能问题。本申请实施例结合了异构存储系统,为双密型应用数据的计算任务提供了针对其数据特征的存储模式,使得存储性能能够与双范式混合计算相匹配,平衡大数据存储与高性能存储之间的关系。
请参阅图4,是本申请实施例的混合大数据计算方法的流程图。本申请实施例的混合大数据计算方法包括以下步骤:
S1:用户端通过应用层接口提交双密型应用数据的计算任务到计算模块;
S2:通过Spark计算模块读取计算任务,并根据计算任务的任务要求建立Spark计算环境,生成计算任务的有向无环图;
S3:Spark计算模块根据有向无环图将双密型应用数据的计算任务划分为单个的独立任务,并将划分后的任务存储至任务集中;
S4:Spark计算模块从任务集中取出一个任务,通过通信模块从源数据存储模块中获取当前任务需要的计算数据,并判断该任务属于数据密集型任务还是计算密集型任务,如果是数据密集型任务,执行S5;如果是计算密集型任务,执行S6;
S5:Spark计算模块按照任务要求生成相应的RDD(Resilient DistributedDatasets,弹性分布式数据集)后,调用Spark计算范式进行任务计算,并返回计算结果;
S6:Spark计算模块将获取的计算数据进行分区处理,将每个分区数据存储到不同Spark计算节点的内存文件系统中,将分区数据的元数据信息与Spark计算节点的对应关系存储到元数据存储模块,将MPI计算模块所需执行的任务代码保存到中间代码数据存储子模块,将任务所需的计算数据存储到中间计算数据存储子模块,向中间数据存储模块申请用于存储计算结果的存储地址,向MPI计算模块返回存储地址,并调用MPI计算模块执行任务计算;
其中,由于Spark计算范式是运行于JVM(Java Virtual Machine,Java虚拟机)之上,其主要数据结构是RDD,而MPI计算范式则是运行于底层,主要编程语言是C++,因此,Spark计算模块在调用MPI计算模块之前,需要先执行数据序列化操作,即将数据结构转化为MPI计算模块能够识别的数据格式,以解决两个范式数据格式不匹配的问题。在执行数据序列化操作时,本申请实施例采用模板的设计模式对数据进行序列化操作,用户可以针对不同的应用自定义合适的序列化方法,并以参数的方式传递给系统,从而在解决异构多元数据序列化的同时有目的性地优化序列性能,减少因为序列化操作造成的性能损失。同时,本申请实施例将数据序列化操作分为两个阶段,在第一个阶段将Spark数据结构序列化为适配中间数据存储模块的格式,在第二个阶段将中间数据存储模块的数据格式反序列化为MMPI计算模块可以识别的数据格式,从而将Spark数据结构与MPI数据集格式解构,减少需要定义的序列化方法的种类,增加代码的重构,并可以优化存储模块的存储格式,解决多元异构数据与中间数据存储模块的存储格式不完全适配的问题。
S7:MPI计算模块访问中间数据存储模块读取任务代码,根据任务代码从元数据存储模块获取所需计算数据的元数据信息,并调用通信模块的低延迟通信模式下达读数据命令;
S8:通信模块接收命令后,根据元数据信息与中间数据存储模块建立低延迟通信连接,并向中间数据存储模块请求所需的计算数据;
S9:中间数据存储模块通过建立的低延迟通信连接向MPI计算模块发送计算数据;
S10:MPI计算模块接收计算数据后,向通信模块发送断开连接命令,并在连接断开后,调用MPI计算范式进行任务计算;
S11:任务计算完成后,根据Spark计算模块返回的存储地址将计算结果保存到中间数据存储模块;
S12:退出MPI计算环境,并重新执行S4进行下一个任务的类型判断和调度;
其中,Spark计算模块在进行下一个任务的类型判断和调度之前,需要清除中间计算数据存储模块中本次调用涉及的数据,并更新元数据信息。
基于上述,本申请实施例的混合大数据计算平台的计算方法通过融合Spark与MPI两种计算范式,既可以充分利用Spark提供的高可用的用户接口以及成熟的大数据处理机制,又可以获得MPI处理复杂计算的高性能,从而平衡大数据高吞吐计算模式的延时问题,并采用分布式共享内存结合高性能通信技术的数据通信方式,以解决共享内存的容量问题和Socket通信的性能问题,使得融合架构能够更好的支持双密型应用数据的计算。
请参阅图5,为本申请实施例的设备结构示意图。该设备50包括:
存储有可执行程序指令的存储器51;
与存储器51连接的处理器52;
处理器52用于调用存储器51中存储的可执行程序指令并执行以下步骤:通过Spark计算模块接收用户端提交的双密型应用数据的计算任务,并通过通信模块从存储模块中获取所述计算任务的计算数据;判断所述计算任务属于数据密集型任务还是计算密集型任务,如果是数据密集型任务,所述Spark计算模块按照所述计算任务的任务要求生成相应的RDD后,调用Spark计算范式进行任务计算;如果是计算密集型任务,通过所述Spark计算模块将所述计算任务的任务代码和计算数据存储到存储模块,并通过所述通信模块调用MPI计算模块,通过所述MPI计算模块从所述存储模块中读取任务代码和计算数据,并调用MPI计算范式进行任务计算。
其中,处理器52还可以称为CPU(Central Processing Unit,中央处理单元)。处理器52可能是一种集成电路芯片,具有信号的处理能力。处理器52还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
请参阅图6,图6为本申请实施例的存储介质的结构示意图。本申请实施例的存储介质存储有能够实现以下步骤的程序指令61:通过Spark计算模块接收用户端提交的双密型应用数据的计算任务,并通过通信模块从存储模块中获取所述计算任务的计算数据;判断所述计算任务属于数据密集型任务还是计算密集型任务,如果是数据密集型任务,所述Spark计算模块按照所述计算任务的任务要求生成相应的RDD后,调用Spark计算范式进行任务计算;如果是计算密集型任务,通过所述Spark计算模块将所述计算任务的任务代码和计算数据存储到存储模块,并通过所述通信模块调用MPI计算模块,通过所述MPI计算模块从所述存储模块中读取任务代码和计算数据,并调用MPI计算范式进行任务计算。其中,该程序指令61可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序指令的介质,或者是计算机、服务器、手机、平板等终端设备。其中,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种混合大数据计算平台,其特征在于,包括计算模块、通信模块和存储模块;
所述计算模块包括Spark计算模块和MPI计算模块,所述Spark计算模块用于接收用户端提交的双密型应用数据的计算任务,通过所述通信模块从存储模块中获取所述计算任务的计算数据,并识别所述计算任务的任务类型,所述任务类型包括数据密集型任务和计算密集型任务,如果是数据密集型任务,所述Spark计算模块按照任务要求生成相应的RDD后,调用Spark计算范式进行任务计算;如果是计算密集型任务,所述Spark计算模块将所述计算任务的任务代码和计算数据存储到存储模块,并通过所述通信模块调用MPI计算模块,所述MPI计算模块用于从所述存储模块中读取任务代码和计算数据,并调用MPI计算范式进行任务计算。
2.根据权利要求1所述的混合大数据计算平台,其特征在于,所述存储模块包括源数据存储模块、中间数据存储模块和元数据存储模块,所述源数据存储模块基于HDFS大数据文件系统,用于存储所述双密型应用数据的计算任务所需的原始数据;所述中间数据存储模块用于存储所述Spark计算模块与MPI计算模块在通信过程中的中间数据;所述元数据存储模块用于存储所述计算数据的元数据信息。
3.根据权利要求2所述的混合大数据计算平台,其特征在于,所述中间数据包括动态数据和静态数据,所述动态数据至少包括所述MPI计算模块所需执行的任务代码,所述静态数据至少包括所述Spark计算模块和MPI计算模块在通信过程中的计算数据;所述中间数据存储模块包括中间代码数据存储子模块和中间计算数据存储子模块,所述中间代码数据存储子模块用于以共享文件的形式存储所述静态数据,中间计算数据存储子模块用于采用分布式内存文件系统的组织结构存储所述动态数据,且所述元数据存储模块采用基于Redis数据库的方式充当所述中间计算数据存储子模块的服务器。
4.根据权利要求1至3任一项所述的混合大数据计算平台,其特征在于,所述通信模块包括高吞吐通信模式和低延迟通信模式,所述通信模块的通信过程包括:
Spark计算模块的内部通信:在所述Spark计算模块的启动阶段和执行Spark计算范式阶段,所述通信模块采用高吞吐通信模式从所述源数据存储模块中获取当前任务需要的计算数据;
MPI计算模块的内部通信:在所述MPI计算模块的启动阶段和执行MPI计算范式阶段,所述MPI计算模块通过所述通信模块的低延迟通信模式访问中间数据存储模块读取任务代码,根据所述任务代码从所述元数据存储模块获取所需计算数据的元数据信息,根据所述元数据信息与中间数据存储模块建立低延迟通信连接,并向所述中间数据存储模块请求所需的计算数据;
Spark计算模块与MPI计算模块之间的数据传输:所述Spark计算模块与MPI计算模块之间的传输数据包括分布式数据和非分布式数据,所述非分布式数据是指调用过程中的命令和参数数据,所述通信模块采用Driver间建立Socket的通信方式进行非分布式数据传输;所述分布式数据是指计算数据,所述通信模块采用分布式文件系统结合高吞吐通信模式进行数据传输;
Spark计算模块与存储模块的通信:所述Spark计算模块在执行Spark计算范式前,通过所述通信模块从所述源数据存储模块中读取所述计算任务所需的原始数据;在调用MPI计算模块前,通过所述通讯模块与所述中间数据存储模块通信,存储所述MPI计算模块计算所需的任务代码和计算数据,并与所述元数据存储模块通信,保存所述计算数据的元数据信息;计算完成之后,与所述源数据存储模块通信并保存计算结果;
MPI计算模块与存储模块的通信:所述MPI计算模块启动后,通过所述通信模块访问所述中间数据存储模块获取所需执行的任务代码,根据所述任务代码访问元数据存储模块获取计算数据的元数据信息,根据所述元数据信息与中间数据存储模块建立低延迟通信连接,并向所述中间数据存储模块请求所需的计算数据,所述中间数据存储模块通过低延迟通信连接向MPI计算模块发送计算数据。
5.一种混合大数据计算方法,其特征在于,包括:
通过Spark计算模块接收用户端提交的双密型应用数据的计算任务,并通过通信模块从存储模块中获取所述计算任务的计算数据;
判断所述计算任务属于数据密集型任务还是计算密集型任务,如果是数据密集型任务,所述Spark计算模块按照所述计算任务的任务要求生成相应的RDD后,调用Spark计算范式进行任务计算;
如果是计算密集型任务,通过所述Spark计算模块将所述计算任务的任务代码和计算数据存储到存储模块,并通过所述通信模块调用MPI计算模块,通过所述MPI计算模块从所述存储模块中读取任务代码和计算数据,并调用MPI计算范式进行任务计算。
6.根据权利要求5所述的混合大数据计算方法,其特征在于,所述通过Spark计算模块接收用户端提交的双密型应用数据的计算任务,并通过通信模块从存储模块中获取所述计算任务的计算数据具体为:
所述用户端通过应用层接口提交双密型应用数据的计算任务;
通过所述Spark计算模块读取计算任务,并根据所述计算任务的任务要求建立Spark计算环境,生成所述计算任务的有向无环图;
根据所述有向无环图将所述计算任务划分为单个的独立任务,并将划分后的任务存储至任务集中;
从所述任务集中取出一个任务,并通过所述通信模块从源数据存储模块中获取当前任务需要的计算数据。
7.根据权利要求6所述的混合大数据计算方法,其特征在于,所述通过所述Spark计算模块将所述计算任务的任务代码和计算数据存储到存储模块具体为:
通过所述Spark计算模块将获取的计算数据进行分区处理,将每个分区数据存储到不同Spark计算节点的内存文件系统中,将所述分区数据的元数据信息与Spark计算节点的对应关系存储到元数据存储模块,将所述MPI计算模块所需执行的任务代码保存到中间代码数据存储子模块,将任务所需的计算数据存储到中间计算数据存储子模块,向中间数据存储模块申请用于存储计算结果的存储地址,向MPI计算模块返回存储地址,并调用MPI计算模块执行任务计算。
8.根据权利要求7所述的混合大数据计算方法,其特征在于,所述通过所述MPI计算模块从所述存储模块中读取任务代码和计算数据,并调用MPI计算范式进行任务计算具体为:
所述MPI计算模块通过通信模块访问所述中间数据存储模块读取任务代码,根据所述任务代码从所述元数据存储模块获取所需计算数据的元数据信息,并调用所述通信模块的低延迟通信模式下达读数据命令;
所述通信模块接收命令后,根据所述元数据信息与中间数据存储模块建立低延迟通信连接,并向所述中间数据存储模块请求所需的计算数据;
所述中间数据存储模块通过建立的低延迟通信连接向MPI计算模块发送计算数据,所述MPI计算模块接收计算数据后,向所述通信模块发送断开连接命令,并调用MPI计算范式进行任务计算;
所述任务计算完成后,根据所述Spark计算模块返回的存储地址将所述计算结果保存到中间数据存储模块。
9.一种设备,其特征在于,所述设备包括处理器、与所述处理器耦接的存储器,其中,
所述存储器存储有用于实现权利要求5-8任一项所述的混合大数据计算方法的程序指令;
所述处理器用于执行所述存储器存储的所述程序指令以控制混合大数据计算平台。
10.一种存储介质,其特征在于,存储有处理器可运行的程序指令,所述程序指令用于执行权利要求5至8任一项所述的混合大数据计算方法。
CN202310914086.8A 2023-07-24 2023-07-24 混合大数据计算平台、计算方法、设备及存储介质 Pending CN117076404A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310914086.8A CN117076404A (zh) 2023-07-24 2023-07-24 混合大数据计算平台、计算方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310914086.8A CN117076404A (zh) 2023-07-24 2023-07-24 混合大数据计算平台、计算方法、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117076404A true CN117076404A (zh) 2023-11-17

Family

ID=88718484

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310914086.8A Pending CN117076404A (zh) 2023-07-24 2023-07-24 混合大数据计算平台、计算方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117076404A (zh)

Similar Documents

Publication Publication Date Title
CN101901207B (zh) 异构共享存储多处理机系统的操作系统及其工作方法
CN106569896B (zh) 一种数据分发及并行处理方法和系统
CN111538605B (zh) 一种分布式数据访问层中间件及命令执行方法和装置
CN112416908A (zh) 基于Handle标识解析前缀分库存储数据的方法及系统
CN113641413A (zh) 目标模型加载更新方法及装置、可读介质和电子设备
Valvåg et al. Cogset: a high performance MapReduce engine
CN110990154A (zh) 一种大数据应用优化方法、装置及存储介质
CN109829546B (zh) 平台即服务云端服务器及其机器学习数据处理方法
CN115686836A (zh) 一种安装有加速器的卸载卡
CN116795647A (zh) 一种数据库异构资源管理与调度方法、装置、设备及介质
CN106161520A (zh) 大数据应用平台及基于其的交互方法
CN114327880A (zh) 一种轻代码异构分布式系统的计算方法
CN112351106B (zh) 一种含事件网格的服务网格平台及其通信方法
CN111951935A (zh) 面向医疗大数据处理的医疗云系统、方法、系统和介质
CN115878301A (zh) 一种数据库网络负载性能的加速框架、加速方法及设备
CN116302574B (zh) 一种基于MapReduce的并发处理方法
CN112583941A (zh) 一种支持接入多电力终端的方法、单元节点及电力物联网
CN112433812A (zh) 一种虚拟机跨集群迁移方法、系统、设备及计算机介质
CN116800616A (zh) 虚拟化网络设备的管理方法及相关装置
CN111459668A (zh) 用于服务器的轻量级资源虚拟化方法及轻量级资源虚拟化装置
CN117076404A (zh) 混合大数据计算平台、计算方法、设备及存储介质
Yang et al. High-performance docker integration scheme based on OpenStack
CN115167985A (zh) 一种虚拟化的算力提供方法及系统
CN114461358A (zh) 服务处理方法及系统
CN113691465A (zh) 一种数据的传输方法、智能网卡、计算设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination