掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:35:49


数据处理方法、装置、电子设备及存储介质

技术领域

本公开涉及计算机技术领域,具体涉及一种数据处理方法、装置、电子设备及存储介质。

背景技术

大数据领域通常使用分布式计算来进行大规模并行处理,大数据不仅体现在输入数据量巨大,往往中间数据量也非常庞大。已有技术中,大数据集群系统通常采用普通的商用服务器,每台服务器拥有多块物理磁盘。为了充分使用文件系统内核特性或者受限于所使用的第三方本地库,分布式计算框架的线程或者进程往往直接使用本地磁盘存放中间数据,这些中间数据缺乏统一管理,导致本地磁盘整体使用效率低下,主要表现在以下三个方面:第一、磁盘带宽使用不均匀,不能充分利用;第二、磁盘空间使用不均匀,不能充分利用;第三、不同负载和优先级的作业不能做到I/O隔离。

发明内容

本公开实施例提供一种数据处理方法、装置、电子设备及计算机可读存储介质。

第一方面,本公开实施例中提供了一种数据处理方法。

具体的,所述数据处理方法,包括:

接收分布式计算任务发起的针对本地磁盘的I/O操作;

调用分布式文件系统在目标虚拟磁盘上执行所述I/O操作;其中,所述目标虚拟磁盘创建在执行所述分布式计算任务的所述分布式计算设备上。

进一步地,接收分布式计算任务发起的针对本地磁盘的I/O操作之前,所述方法还包括:

接收分配给所述分布式计算设备的所述分布式计算任务;

在所述分布式计算设备上为所述分布式计算任务创建所述目标虚拟磁盘。

进一步地,还包括:

调用所述分布式文件系统创建对应于所述目标虚拟磁盘的分布式文件。

进一步地,所述方法还包括:

响应于所述分布式计算任务的结束请求,释放所述目标虚拟磁盘。

进一步地,释放所述目标虚拟磁盘,包括:

格式化所述目标虚拟磁盘以及清空所述分布式文件中的内容,并将所述目标虚拟磁盘缓存在预设缓存区中;和/或

删除所述目标虚拟磁盘以及调用所述分布式文件系统删除所述分布式文件。

进一步地,接收分布式计算任务发起的针对本地磁盘的I/O操作之前,所述方法还包括:

接收分配给所述分布式计算设备的所述分布式计算任务;

将预设缓冲区中缓存的所述目标虚拟磁盘分配给所述分布式计算任务。

进一步地,所述目标虚拟磁盘包括云盘。

第二方面,本发明实施例中提供了一种数据处理装置。

具体的,所述数据处理装置,包括:

第一接收模块,被配置为接收分布式计算任务发起的针对本地磁盘的I/O操作;

执行模块,被配置为调用分布式文件系统在目标虚拟磁盘上执行所述I/O操作;其中,所述目标虚拟磁盘创建在执行所述分布式计算任务的分布式计算设备上。

进一步地,所述第一接收模块之前,所述装置还包括:

第二接收模块,被配置为接收分配给所述分布式计算设备的所述分布式计算任务;

第一分配模块,被配置为在所述分布式计算设备上为所述分布式计算任务创建所述目标虚拟磁盘。

进一步地,所述装置还包括:

创建模块,被配置为调用所述分布式文件系统创建对应于所述目标虚拟磁盘的分布式文件。

进一步地,所述装置还包括:

释放模块,被配置为响应于所述分布式计算任务的结束请求,释放所述目标虚拟磁盘。

进一步地,所述释放模块,包括:

缓存子模块,被配置为格式化所述目标虚拟磁盘以及清空所述分布式文件中的内容,并将所述目标虚拟磁盘缓存在预设缓存区中;和/或

删除子模块,被配置为删除所述目标虚拟磁盘以及调用所述分布式文件系统删除所述分布式文件。

进一步地,所述接收模块之前,所述装置还包括:

第三接收模块,被配置为接收分配给所述分布式计算设备的所述分布式计算任务;

第二分配模块,被配置为将预设缓冲区中缓存的所述目标虚拟磁盘分配给所述分布式计算任务。

所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一个可能的设计中,数据处理装置的结构中包括存储器和处理器,所述存储器用于存储一条或多条支持数据处理装置执行上述第一方面中数据处理方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述数据处理装置还可以包括通信接口,用于数据处理装置与其他设备或通信网络通信。

第三方面,本公开实施例提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现第一方面所述的方法。

第四方面,本公开实施例提供了一种计算机可读存储介质,用于存储企业账户的安全认证装置所用的计算机指令,其包含用于执行上述第一方面中数据处理方法所涉及的计算机指令。

本公开实施例提供的技术方案可以包括以下有益效果:

本公开实施例提出了一种数据处理方法,该方法在分布式计算系统的计算节点上执行,包括:接收分布式计算任务发起的针对本地磁盘的I/O操作;调用分布式文件系统在目标虚拟磁盘上执行I/O操作;其中,目标虚拟磁盘创建在执行分布式计算任务的分布式计算设备上。通过本公开这种方式,由于对目标虚拟磁盘的读写等操作采用分布式文件系统进行管理,因此对于分布式计算任务产生的中间数据可以进行统一管理,克服了直接使用分布式计算设备本地的物理磁盘存储中间数据,导致的物理磁盘整体使用效率低下的缺陷。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:

图1示出根据本公开一实施方式的数据处理方法的流程图;

图2示出了一种分布式计算系统的部署框架示意图;

图3示出根据本公开实施例中上述数据处理方法的实现架构示意图;

图4示出根据图1所示实施方式创建目标虚拟磁盘部分的流程图;

图5示出根据图1所示实施方式的步骤S102的流程图;

图6示出了本公开实施例中数据处理过程的一种示意性流程图;

图7示出根据本公开一实施方式的数据处理装置的结构框图;

图8是适于用来实现根据本公开一实施方式的数据处理方法的电子设备的结构示意图。

具体实施方式

下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。

在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。

另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。

Hadoop是由Apache基金会所开发的分布式系统基础架构,也是目前使用最广泛的大数据分布式处理框架之一,其主要有两个功能:分布式存储和分布式计算。Hadoop主要包括两个核心部分:分布式文件系统HDFS(Hadoop Distributed File System)和分布式计算框架如Spark、Flink、Tez、MapReduce等。Spark是UC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark拥有HadoopMapReduce所具有的优点;但不同于MapReduce的是任务的中间输出结果可以保存在内存中,从而不再需要读写HDFS。Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java语言和Scala语言编写的分布式流数据流引擎。Tez也是Apache基金会所开发针对Hadoop数据处理应用程序的分布式执行框架。MapReduce是一种编程模型,用于大规模数据集的并行运算。以MapReduce为例,其是并行处理框架,实现任务分解和调度,其原理是将一个大的计算任务分解成多个小的分布式计算任务,这些小的分布式计算任务的最终目的是得到相应的计算结果,但是小的分布式计算任务在执行过程中以及执行完成后会产生一些中间数据,这些中间数据不包括计算结果,这些中间数据会被暂时存储在执行分布式计算任务的计算机节点上,在小的分布式计算任务完成计算后,可以将计算结果通过网络发送到其他节点上,这些节点上执行有专门的分布式计算任务,用于将这些计算结果进行合并,最终得到大的计算任务的最终计算结果,而执行小的分布式计算任务在完成计算后,存储在计算机节点上的这些中间数据会被清空。

Hadoop Yarn是一种Hadoop的资源管理器,可为上层应用提供统一的资源管理和调度Yarn会把本地磁盘的目录信息通过配置的方式传递给分布式计算任务,分布式计算任务在运行时会根据各自实现的算法,比如轮询等方式来使用本地磁盘。而分布式文件系统HDFS一般只负责输入输出数据的管理,并不负责分布式计算任务产生的中间数据的管理。这种方式由于中间数据缺乏统一管理,因此会导致本地磁盘的使用效率低下。

而云盘是虚拟化领域比较成熟的方案,云盘基于分布式文件系统,使用虚拟化技术,实现了本地块设备。用户创建云盘之后,格式化并挂载到本地文件系统上,对于上层使用云盘的应用而言,就可以像普通的本地磁盘一样使用,不需要修改原有的读写逻辑。而底层逻辑则会将云盘的I/O操作分配到分布式文件系统上,而分布式文件系统会对集群中的物理磁盘统一管理。因此,本公开发明人发现,在大数据分布式计算框架中,使用云盘而不是本地磁盘来处理分布式计算任务所产生的中间数据,就可以很好的解决前面提到的本地磁盘使用效率低下的技术问题。

为解决上述技术问题,本公开实施例提出了一种数据处理方法,该方法在分布式计算系统的计算节点上执行,包括:接收分布式计算任务发起的针对本地磁盘的I/O操作;调用分布式文件系统在目标虚拟磁盘上执行I/O操作;其中,目标虚拟磁盘创建在执行分布式计算任务的分布式计算设备上。通过本公开这种方式,由于对目标虚拟磁盘的读写等操作采用分布式文件系统进行管理,因此对于分布式计算任务产生的中间数据可以进行统一管理,克服了直接使用分布式计算设备本地的物理磁盘存储中间数据,导致的物理磁盘整体使用效率低下的缺陷。

图1示出根据本公开一实施方式的数据处理方法的流程图。如图1所示,数据处理方法适用于分布式计算设备,包括以下步骤S101-S102:

在步骤S101中,接收分布式计算任务发起的针对本地物理磁盘的I/O操作。

在步骤S102中,调用分布式文件系统在目标虚拟磁盘上执行I/O操作;其中,目标虚拟磁盘创建在执行分布式计算任务的分布式计算设备上。

本实施例中,针对分布式计算框架涉及的单个计算节点,提出了一种数据处理方案,该数据处理方案适用于单个计算节点上,本公开实施例中将单个的计算节点称为分布式计算设备。分布式计算设备为分布式计算系统中用于执行分布式计算任务的计算节点。

为了更好的理解本公开实施例,图2示出了一种分布式计算系统的部署框架示意图。如图2所示,该框架下可以包括客户端201、部署分布式计算系统的服务器202和多个分布式计算设备203,这些分布式计算设备203分布在不同的物理位置,并且与服务器202通过网络连接,分布式计算系统可以统一管理这些分布式计算设备203。为了提高计算效率,分布式计算系统可以将从客户端201接收到的计算任务(该计算任务通常为计算较为复杂、较为耗费资源的计算任务)划分成多块,每块对应一个小的分布式计算任务,这些小的分布式计算任务可以被分配到不同的分布式计算设备203上执行,执行结果可以返回给分布式计算系统。

本实施例中,在分布式计算设备接收到分布式计算系统分配的分布式计算任务后,可以运行该分布式计算任务,还可以为该分布式计算任务分配目标虚拟磁盘。分布式计算任务在运行过程中会产生一些中间数据,这些中间数据是计算过程中产生的临时数据,无需返回给分布式计算系统,而是存储在本地即可。因此分布式计算任务会调用分布式计算设备的本地文件系统意图将这些中间数据存储在分布式计算设备的本地磁盘上。也就是说,分布式计算任务调用分布式计算系统的本地文件系统发起针对本地物理磁盘的I/O操作时,都可以认为分布式计算任务意图在本地物理磁盘上存储中间数据。

因此,本公开实施例中的分布式计算设备在接收到分布式计算任务发起的针对本地磁盘的I/O操作之后,均可以调用分布式文件系统在为该分布式计算任务分配的目标虚拟磁盘上执行该I/O操作。也即分布式计算任务对分布式计算设备上的I/O操作都会被转移到目标虚拟磁盘上,分布式计算任务所产生的中间数据会被存储在目标虚拟磁盘上,分布式计算任务对中间数据的访问也会被定向到目标虚拟磁盘上存储的数据处。

在一些实施例中,目标虚拟磁盘可以是云盘或者FUSE盘(用户空间文件系统,Filesystem in Userspace)。云盘和FUSE盘都是可以挂载到本地文件系统中的虚拟磁盘。目标虚拟磁盘的实际物理存储空间可以在本地(也即分布式计算设备),也可以是在其他网络设备上的磁盘,具体由分布式文件系统来统一分配管理。

本实施例中,分布式计算任务是分布式计算系统分配给分布式计算设备的计算任务,例如MapReduce这一并行处理框架中,分布式计算任务可以maptask和reducetask这两种任务中的任意一种,其中MapReduce将一大的计算任务进行拆分后得到多个小的分布式计算任务,该小的分布式计算任务称之为maptask,而reducetask则用于合并多个maptask计算得到的结果,该多个maptask为同一大的计算任务拆分得到,其合并后的最终结果作为该大的计算任务返回给分布式计算系统。

本实施例中,分布式计算设备在接收到分布式计算任务发起的针对本地磁盘的本地I/O操作后,可在为该分布式计算任务分配的目标虚拟磁盘上执行该本地I/O操作,以便使用分布式文件系统来统一管理分布式计算任务所产生的中间数据,克服了分布式计算任务直接在分布式计算设备的物理磁盘上存取这些中间数据所导致的缺陷,如物理磁盘带宽使用不均匀、物理磁盘空间使用不均匀等导致的物理空间利用不充分的问题,以及不同负载和优先级的分布式计算任务不能做到I/O操作隔离等缺陷。本地I/O操作可以包括但不限于对分布式计算任务针对分布式计算设备上的物理磁盘发起的读、写等操作。

本公开实施例在大数据分布式计算处理中,通过在执行分布式计算任务的计算节点也即分布式计算设备上创建该分布式计算任务对应的目标虚拟磁盘,并且该分布式计算设备上执行的该分布式计算任务所产生的中间数据的存储和读取都可以在目标虚拟磁盘上执行。通过本公开这种方式,由于对目标虚拟磁盘的读写等操作采用分布式文件系统进行管理,因此对于分布式计算任务产生的中间数据可以进行统一管理,克服了直接使用分布式计算设备本地的物理磁盘存储中间数据,导致的物理磁盘整体使用效率低下的缺陷。

图3示出了根据本公开实施例中上述数据处理方法的实现框架示意图。如图3所示,该实现框架中可以包括节点管理模块301、虚拟磁盘管理模块302和分布式文件系统303;其中,节点管理模块301负责管理分配到单个分布式计算设备上的分布式计算任务3011,虚拟磁盘管理模块302负责管理本地创建的虚拟磁盘3021,分布式文件系统303负责管理整个分布式集群中的物理磁盘3031。可以理解的是,分布式文件系统303可以使用已经创建好且在服务为上运行的分布式文件系统,并且可以理解的是该分布式文件系统管理多个分布在不同物理位置上的物理磁盘,且该分布式文件系统所管理的物理磁盘可以包括该分布式计算系统上的物理磁盘。本公开实施例在创建目标虚拟磁盘的同时,为该目标虚拟磁盘创建对应的分布式文件,对目标虚拟磁盘的操作均可以理解为对该分布式文件的操作。当节点管理模块301被分配了一个分布式计算任务3011(可以是分布式计算设备的管理进程在从分布式计算系统中接收到的)后,节点管理模块301会向虚拟磁盘管理模块302申请一块目标虚拟磁盘,以便分配给该分布式计算任务3011使用;分布式计算任务3011在执行过程中,针对本地磁盘发起的所有本地I/O操作都会在目标虚拟磁盘上执行,而不是在本地的物理磁盘上直接执行。虚拟磁盘管理模块302创建目标虚拟磁盘之后,该目标虚拟磁盘的元数据(描述目标虚拟磁盘信息的数据如磁盘标识、对应的分布式文件等)可以统一存储起来,以方便管理分布式计算设备上所创建的所有目标虚拟磁盘。虚拟磁盘管理模块302还可以监测节点管理模块301的心跳数据,例如周期性的向节点管理模块发送心跳请求,如果在规定的时间内未接收到节点管理模块301的响应数据,则可以认为节点管理模块301已停止心跳,也即停止运行,则可以虚拟磁盘管理模块302可以将创建在分布式计算设备上的所有目标虚拟磁盘给删除,以防止由于节点管理模块意外终止而导致所建立的目标虚拟磁盘无法管控。目标虚拟磁盘在创建之后会被格式化并挂载到本地文件系统中,分布式计算任务3011可以直接使用本地文件系统提供的接口对目标虚拟磁盘进行本地I/O操作,在接收到对目标虚拟磁盘的本地I/O操作之后,会调用分布式文件系统303来执行该I/O请求,分布式文件系统303会根据本地化策略选择该分布式文件系统所管理的物理磁盘进行读写;当分布式计算任务3011执行结束后,节点管理模块301则会向虚拟磁盘管理模块302请求释放该目标虚拟磁盘。目标虚拟磁盘在实际被使用的时候会被格式化并挂载到本地文件系统,因此分布式计算任务3011原有的读写逻辑完全不需要进行修改。

在本实施例的一个可选实现方式中,如图4所示,步骤S101,即接收分布式计算任务发起的针对本地磁盘的I/O操作的步骤之前,方法进一步还包括以下步骤:

在步骤S401中,接收分配给分布式计算设备的分布式计算任务。

在步骤S402中,在分布式计算设备上为分布式计算任务创建目标虚拟磁盘。

该可选的实现方式中,分布式计算设备接收到分布式计算系统所分配的分布式计算任务后,为该分布式计算任务分配创建在分布式计算设备上的目标虚拟磁盘。目标虚拟磁盘可以在接收到所分配的分布式计算任务后专门为该分布式计算任务创建,也可以是预先创建好的,该目标虚拟磁盘在创建之后,被格式化后挂在到本地文件系统中,使得分布式计算任务在使用该目标虚拟磁盘进行本地I/O操作时,与使用本地磁盘一样,无需修改分布式计算任务原有的读写逻辑。

在本实施例的一个可选实现方式中,方法进一步还包括以下步骤:

调用分布式文件系统创建对应于目标虚拟磁盘的分布式文件。

该可选的实现方式中,创建目标虚拟磁盘可以理解为在分布式计算设备创建一个虚拟块设备,该虚拟块设备并不对应于分布式计算设备上的本地物理磁盘,而是对应于分布式文件系统中的一个分布式文件,这样针对目标虚拟磁盘的I/O操作才能通过分布式文件系统来实现分布式存储和/或读取。因此,在创建目标虚拟磁盘后,还可以调用分布式文件系统创建与该目标虚拟磁盘对应的分布式文件,分布式计算任务对于该目标虚拟磁盘的I/O操作都可以看成是对该分布式文件的操作,而该分布式文件的操作都是通过分布式文件系统来完成的。对于分布式计算设备来说,目标虚拟磁盘实际上是一块虚拟的磁盘,其与分布式计算设备上的物理磁盘一样,具有设备标识、设备地址等设备信息,在为分布式计算任务创建了目标虚拟磁盘之后,可以将该目标虚拟磁盘的设备信息返回给分布式计算任务,分布式计算任务之后的所有本地I/O操作都会携带该目标虚拟磁盘的设备信息,以便针对分布式计算任务的所有本地I/O操作都发生在该目标虚拟磁盘上。

在本实施例的一个可选实现方式中,如图5所示,步骤S102,即调用分布式文件系统在目标虚拟磁盘上执行I/O操作的步骤,进一步包括以下步骤:

在步骤S501中,获取I/O操作所针对的目标虚拟磁盘的设备信息。

在步骤S502中,将I/O操作以及设备信息发送给分布式文件系统。

该可选的实现方式中,接收到分布式计算任务的本地I/O操作后,确定为分布式计算任务分配的目标虚拟磁盘,也即对应的目标虚拟磁盘,可以从该本地I/O操作中的信息确定该本地I/O操作所针对的目标虚拟磁盘的设备信息,如设备标识、设备地址等,进而将该本地I/O操作以及设备信息转发给分布式文件系统。例如,分布式计算任务要在目标虚拟磁盘上写一个数据,假如该目标虚拟磁盘的设备标识为“D”盘,则可以调用目标虚拟磁盘的写请求向将该“D”盘写入该数据。由于对目标虚拟磁盘的操作都会由分布式文件系统来响应,因此该写请求会被转发到分布式文件系统,也即通过调用分布式文件系统提供的写接口,向对应于该目标虚拟磁盘D的分布式文件发送写请求的方式来实现,并由分布式文件系统执行向该目标虚拟磁盘对应的分布式文件写入该数据的操作。

在本实施例的一个可选实现方式中,方法进一步还包括以下步骤:

响应于分布式计算任务的结束请求,释放目标虚拟磁盘。

该可选的实现方式中,在分布式计算系统中,分布式计算任务可以为从一个大的计算任务拆分出来的一小部分计算任务,该小部分计算任务完成计算之后,该分布式计算任务将计算结果返回给分布式计算系统,并且该分布式计算任务可以结束执行。此时,分布式计算设备在检测到分布式计算任务结束的事件后,可以释放该目标虚拟磁盘。如图3所示,节点管理模块301可以调用虚拟磁盘管理模块302的虚拟磁盘释放接口来释放该目标虚拟磁盘。

在本实施例的一个可选实现方式中,释放目标虚拟磁盘的步骤,进一步包括以下步骤:

格式化目标虚拟磁盘以及清空分布式文件中的内容,并将目标虚拟磁盘缓存在预设缓存区中;和/或,删除目标虚拟磁盘以及调用分布式文件系统删除分布式文件。

该可选的实现方式中,创建目标虚拟磁盘的过程实际上是在分布式计算设备创建一虚拟块设备,而该虚拟块设备对应分布式文件系统中的一个分布式文件,针对该目标虚拟磁盘的I/O操作相当于针对该分布式文件的I/O操作。

释放目标虚拟磁盘包括但不限于以下两种方式:一、格式化该目标虚拟磁盘,并删除该目标虚拟磁盘的所有信息,使得该目标虚拟磁盘不可复用;二、格式化该目标虚拟磁盘,并缓存该目标虚拟磁盘,在需要时该目标虚拟磁盘还可以被再次使用。格式化目标虚拟磁盘的过程可以理解为其所对应的分布式文件的格式化,也即清空该分布式文件的内容,而删除该目标虚拟磁盘时,该分布式文件也需要从分布式文件系统中删除。

分布式计算任务执行结束后,格式化该分布式计算任务对应的目标虚拟磁盘,并将该目标虚拟磁盘的相关信息缓存在预设缓存区中,以便后续有需要时再次复用该目标虚拟磁盘;同时该目标虚拟磁盘在分布式文件系统中对应的分布式文件中的内容也可以被清空。如图3所示的虚拟磁盘管理模块302中还可以预留一预设缓冲区,用于缓存被释放的目标虚拟磁盘的相关信息。在目标虚拟磁盘被缓存期间如果超过预设周期后,该目标虚拟磁盘则会被彻底删除。这是由于目标虚拟磁盘的创建和格式化会产生一定的开销,为了提高目标虚拟磁盘的创建效率,被释放的目标虚拟磁盘会被虚拟磁盘管理模块302缓存在缓冲区中,在需要为新的分布式计算任务分配目标虚拟磁盘时,如果缓冲区中有可用的目标虚拟磁盘,则可以直接将该可用的目标虚拟磁盘返回,而不需要重新创建。

分布式计算任务执行结束之后,也可以直接将对应的目标虚拟磁盘删除,并将对应的分布式文件也删除,删除之后目标虚拟磁盘就无法再复用。

在本实施例的一个可选实现方式中,步骤S101,即接收分布式计算任务发起的针对本地磁盘的I/O操作的步骤之前,进一步包括以下步骤:

接收分配给分布式计算设备的分布式计算任务。

将预设缓冲区中缓存的目标虚拟磁盘分配给分布式计算任务。

该可选的实现方式中,分布式计算设备接收到分布式计算系统分配的分布式计算任务后,可以先查看预设缓冲区中是否有可用的目标虚拟磁盘,如果有则直接将该目标虚拟磁盘分配给该分布式计算任务,而无需重新创建,在一定程度上节省了资源,提高了执行效率。

在一些实施例中,目标虚拟磁盘可以是云盘。分布式计算系统可以利用云盘的已有机制实现分布式计算任务对目标虚拟磁盘的本地I/O操作,既不影响分布式计算任务依旧按照操作本地磁盘的方式进行I/O操作,又能够利用云盘机制使得底层分布式文件系统统一管理所有物理磁盘。可以理解的是,在一些实施例中,分布式文件系统所管理的物理磁盘中可以包括分布式计算设备上的物理磁盘,而在另一些实施例中,分布式文件系统所管理的物理磁盘中还可以包括其他设备上的物理磁盘。分布式文件系统可以统一管理这些物理磁盘的存储空间和带宽,从整体上保证物理磁盘的存储空间和带宽的使用均衡(分布式文件系统会根据物理磁盘的存储情况将分布式文件中的数据均衡存储在各个物理磁盘上);其次,分布式文件系统还可以使用各种优化技术对物理磁盘的读写性能进行优化,比如RDMA(Remote Direct Memory Access,远程直接数据存取)网络技术、SSD(Solid StateDrive,固态硬盘)缓存技术等,这些优化技术可以直接加速到所有调用分布式文件系统存取中间数据的分布式计算任务,而不需要各个任务单独去优化;最后,对于不同类型的分布式计算任务的负载(例如所要存取的中间数据的大小、存取频率、并发执行的I/O操作数量等)可能不同,分布式文件系统可以提供不同的限流策略(例如限制总并发数、瞬时并发数、限制数据读取速率等),从而实现不同分布式计算任务之间的I/O隔离。

在一些实施例中,由于云盘在普通虚拟机内部,往往是数据存储的核心组件,是不允许出现数据错误,甚至不允许丢数据的。因此,云厂商提供的普通云盘必须要求多备份。而分布式计算系统,比如Spark、Flink、MapReduce等的容错机制往往很强,当中间数据出现错误直接重算即可。因此,本公开实施例中分布式计算任务对目标虚拟磁盘进行本地I/O操作的过程中不需要对目标虚拟磁盘进行备份,也即在本公开实施例中应用云盘时,可以将云盘的备份功能关闭,这样可以减少不必要的存储空间。

在另一些实施例中,分布式文件系统为了防止机器重启导致的缓存数据丢失或者文件系统损坏,往往会开启日志功能,但是日志功能对读写效率影响较大,例如在每次对分布式文件进行写操作时,分布式文件系统先把数据发送到日志设备上,在日志设备上形成日志记录之后,再对分布式文件所存储的物理磁盘进行写操作。同样,由于分布式计算任务可以较容易的故障恢复,并且本公开实施例中分布式计算任务使用管理目标虚拟磁盘的分布式文件系统,因此可以关掉该分布式文件系统的日志功能,从而不针对目标虚拟磁盘对应的分布式文件的I/O操作执行日志记录的过程,因此可以提升对分布式文件的读写效率。图6示出了本公开实施例中数据处理过程的一种示意性流程图。如图6所示,分布式计算系统601向分布式计算设备602发送一分布式计算任务,分布式计算设备602接收到分布式计算任务之后,为该分布式计算任务创建目标虚拟磁盘,并将该目标虚拟磁盘挂载在本地文件系统中,分布式计算设备602还请求在分布式文件系统603上创建对应于目标虚拟磁盘的分布式文件;分布式计算设备602可以从分布式文件系统603获得所创建的分布式文件的信息,如文件标识等;分布式计算设备602还可以启动执行该分布式计算任务,并在检测到分布式计算任务调用本地文件系统的I/O操作接口对本地磁盘进行I/O操作时,可以将该I/O操作以及上述对应于目标虚拟磁盘的分布式文件系统的标识发送给该分布式文件系统,以请求该分布式文件系统针对该分布式文件执行该I/O操作,例如该I/O操作为写操作时,待写数据将被分布式文件系统写入到该分布式文件中。该分布式文件的实际存储空间可以分布在分布式文件系统所管理的一个或者多个物理磁盘上。

下述为本公开装置实施例,可以用于执行本公开方法实施例。

图7示出根据本公开一实施方式的数据处理装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图7所示,数据处理装置适用于分布式计算设备,包括:

第一接收模块701,被配置为接收分布式计算任务发起的针对本地磁盘的I/O操作。

执行模块702,被配置为调用分布式文件系统在目标虚拟磁盘上执行I/O操作;其中,目标虚拟磁盘创建在执行分布式计算任务的分布式计算设备上。

本实施例中的数据处理装置与上述实施例中描述的数据处理方法对应一致,具体细节可参见上述对数据处理方法的描述,在此不再赘述。

在本实施例的一个可选实现方式中,第一接收模块,被配置为接收分布式计算任务发起的针对本地磁盘的I/O操作;

执行模块,被配置为调用分布式文件系统在目标虚拟磁盘上执行I/O操作;其中,目标虚拟磁盘创建在执行分布式计算任务的分布式计算设备上。

在本实施例的一个可选实现方式中,第一接收模块之前,装置还包括:

第二接收模块,被配置为接收分配给分布式计算设备的分布式计算任务。

第一分配模块,被配置为在分布式计算设备上为分布式计算任务创建目标虚拟磁盘。

在本实施例的一个可选实现方式中,装置还包括:

创建模块,被配置为调用分布式文件系统创建对应于目标虚拟磁盘的分布式文件。

在本实施例的一个可选实现方式中,装置还包括:

释放模块,被配置为响应于分布式计算任务的结束请求,释放目标虚拟磁盘。

在本实施例的一个可选实现方式中,释放模块,包括:

缓存子模块,被配置为格式化目标虚拟磁盘以及清空分布式文件中的内容,并将目标虚拟磁盘缓存在预设缓存区中;和/或,删除子模块,被配置为删除目标虚拟磁盘以及调用分布式文件系统删除分布式文件。

在本实施例的一个可选实现方式中,接收模块之前,装置还包括:

第三接收模块,被配置为接收分配给分布式计算设备的分布式计算任务。

第二分配模块,被配置为将预设缓冲区中缓存的目标虚拟磁盘分配给分布式计算任务。

上述本实施例中的各个可选的实现方式中对于数据处理装置的进一步描述也与上述对数据处理方法的描述对应一致,具体细节可参见上述对数据处理方法的描述,在此不再赘述。

图8是适于用来实现根据本公开实施方式的数据处理方法的电子设备的结构示意图。

如图8所示,电子设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行本公开上述数据处理方法的实施方式中的各种处理。在RAM803中,还存储有电子设备800操作所需的各种程序和数据。CPU801、ROM802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。

以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。

特别地,根据本公开的实施方式,上文参考本公开实施方式中的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,计算机程序包含用于执行本公开实施方式中方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。

附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,程序被一个或者一个以上的处理器用来执行描述于本公开的上述数据处理方法。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

相关技术
  • 数据处理方法、装置、电子设备及存储介质
  • 门禁管理的数据处理方法、装置、电子设备与存储介质
技术分类

06120112986877