CN110543367B - 资源处理方法及其装置、电子设备和介质 - Google Patents
资源处理方法及其装置、电子设备和介质 Download PDFInfo
- Publication number
- CN110543367B CN110543367B CN201910821916.6A CN201910821916A CN110543367B CN 110543367 B CN110543367 B CN 110543367B CN 201910821916 A CN201910821916 A CN 201910821916A CN 110543367 B CN110543367 B CN 110543367B
- Authority
- CN
- China
- Prior art keywords
- resource
- execution unit
- memory
- migrated
- released
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供了一种资源处理方法,包括:获取第一执行单元的待释放资源,其中,待释放资源已存储至第一执行单元的内存中;查找与待释放资源对应的多个第一数据分段,其中,各第一数据分段处于第一缓存级别,其中,第一缓存级别允许将待释放资源缓存至第一执行单元的内存中;对待释放资源执行第一迁移操作,以将待释放资源从第一执行单元的内存中迁移至本地磁盘中;修改各第一数据分段处于的第一缓存级别为第二缓存级别,其中,第二缓存级别允许将待释放资源存储至第一执行单元的内存中和本地磁盘中;以及释放第一执行单元的待释放资源。另外,本公开还提供了一种资源处理装置、电子设备和介质。
Description
技术领域
本公开涉及一种资源处理方法及其装置、电子设备和介质。
背景技术
Spark涵盖了大数据领域内的离线批处理、流式计算、机器学习和图计算等不同的场景,已经成为大数据计算领域首选的计算框架。由于spark框架的应用越来越广,针对spark任务的优化成为必不可少的一项技能,其中缓存(Cache)是一种简单而有效的方式。
Spark优先考虑内存,如果内存(Memory)不够,再把数据放在本地磁盘。如果数据被Cache到Memory中,Spark的执行单元(Executor)就无法被释放,导致在一个资源混合使用的集群中(比如Spark ThriftServre与Hive共存),即使在计算任务空闲的情况下也无法释放Spark占用的资源。
现有Spark提供一种动态执行单元(Executor)申请释放的机制,但是受限于Cache,该机制无法正常工作,否则会造成Cache到Memroy的数据丢失,对后续计算的性能有较大影响。
发明内容
本公开的一个方面提供了一种资源处理方法,上述方法包括:获取第一执行单元的待释放资源,其中,上述待释放资源已存储至上述第一执行单元的内存中,查找与上述待释放资源对应的多个第一数据分段,其中,各第一数据分段处于第一缓存级别,上述第一缓存级别允许将上述待释放资源缓存至上述第一执行单元的内存中,对上述待释放资源执行第一迁移操作,以将上述待释放资源从上述第一执行单元的内存中迁移至本地磁盘中,修改上述各第一数据分段处于的上述第一缓存级别为第二缓存级别,其中,上述第二缓存级别允许将上述待释放资源存储至上述第一执行单元的内存中和上述本地磁盘中,以及释放上述第一执行单元的上述待释放资源。
可选地,上述方法还包括:修改针对上述第一执行单元的资源管理信息,以及针对上述第一迁移操作,生成并记录上述第一迁移记录,其中,上述第一迁移记录包括上述各第一数据分段的分段信息和上述第一执行单元的信息。
可选地,上述方法还包括:响应于资源申请请求,获取第二执行单元,获取待迁移资源,其中,上述待迁移资源对应多个第二数据分段,各第二数据分段处于上述第二缓存级别,以及对上述待迁移资源执行第二迁移操作,以将上述待迁移资源从上述本地磁盘中迁移至上述第二执行单元的内存中。
可选地,上述对上述待迁移资源执行第二迁移操作,以将上述待迁移资源从上述本地磁盘中迁移至上述第二执行单元的内存中包括:检测上述第二执行单元的内存提供的资源量是否满足上述待迁移资源所需的资源量,若上述第二执行单元的内存提供的资源量不满足上述待迁移资源所需的资源量,则基于上述第二执行单元的内存提供的资源量和上述待迁移资源所需的资源量,确定能够被迁移至上述第二执行单元的内存中的目标迁移资源,以及对上述目标迁移资源执行第二迁移操作,以将上述待迁移资源从上述本地磁盘中迁移至上述第二执行单元的内存中。
可选地,上述方法还包括:维持上述各第二数据分段处于上述第二缓存级别。
可选地,上述方法还包括:若上述第二执行单元的内存提供的资源量满足上述待迁移资源所需的资源量,则修改上述各第二数据分段处于的上述第二缓存级别为上述第一缓存级别。
本公开的另一个方面提供了一种资源处理装置,上述装置包括:第一获取模块,被配置为获取第一执行单元的待释放资源,其中,上述待释放资源已存储至上述第一执行单元的内存中,查找模块,被配置为查找与上述待释放资源对应的多个第一数据分段,其中,各第一数据分段处于第一缓存级别,上述第一缓存级别允许将上述待释放资源缓存至上述第一执行单元的内存中,第一迁移模块,被配置为对上述待释放资源执行第一迁移操作,以将上述待释放资源从上述第一执行单元的内存中迁移至本地磁盘中,修改模块,被配置为修改上述各第一数据分段处于的上述第一缓存级别为第二缓存级别,其中,上述第二缓存级别允许将上述待释放资源存储至上述第一执行单元的内存中和上述本地磁盘中,以及释放模块,被配置为释放上述第一执行单元的上述待释放资源。
可选地,上述修改模块,还被配置为修改针对上述第一执行单元的资源管理信息,以及上述装置还包括:生成模块,被配置为针对上述第一迁移操作,生成并记录上述第一迁移记录,其中,上述第一迁移记录包括上述各第一数据分段的分段信息和上述第一执行单元的信息。
可选地,上述装置还包括:第二获取模块,被配置为响应于资源申请请求,获取第二执行单元,第三获取模块,被配置为获取待迁移资源,其中,上述待迁移资源对应多个第二数据分段,各第二数据分段处于上述第二缓存级别,以及第二迁移模块,被配置为对上述待迁移资源执行第二迁移操作,以将上述待迁移资源从上述本地磁盘中迁移至上述第二执行单元的内存中。
可选地,上述第二迁移模块包括:检测子模块,被配置为检测上述第二执行单元的内存提供的资源量是否满足上述待迁移资源所需的资源量,确定子模块,被配置为若上述第二执行单元的内存提供的资源量不满足上述待迁移资源所需的资源量,则基于上述第二执行单元的内存提供的资源量和上述待迁移资源所需的资源量,确定能够被迁移至上述第二执行单元的内存中的目标迁移资源,以及迁移子模块,被配置为对上述目标迁移资源执行第二迁移操作,以将上述待迁移资源从上述本地磁盘中迁移至上述第二执行单元的内存中。
可选地,上述装置还包括:维持模块,被配置为维持上述各第二数据分段处于上述第二缓存级别。
可选地,上述修改模块,还被配置为若上述第二执行单元的内存提供的资源量满足上述待迁移资源所需的资源量,则修改上述各第二数据分段处于的上述第二缓存级别为上述第一缓存级别。
本公开的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任一所述的方法。
本公开的另一个方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令被执行时用于实现上述任一所述的方法。
通过本公开的实施例,
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的资源处理方法的应用场景;
图2示意性示出了根据本公开实施例的资源处理方法的流程图;
图3示意性示出了根据本公开另一实施例的资源处理方法的流程图;
图4示意性示出了根据本公开另一实施例的资源处理方法的流程图;
图5示意性示出了根据本公开另一实施例的资源处理方法的流程图;
图6示意性示出了根据本公开实施例的资源处理装置的框图;
图7示意性示出了根据本公开另一实施例的资源处理装置的框图;以及
图8示意性示出了适用于执行本公开实施例的资源处理方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程资源处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
Spark的Cache是一个非常有效的性能提升方法,但如果数据被Cache到Memory中,Spark的Executor就无法被释放,导致在一个资源混合使用的集群中(比如SparkThriftServre与Hive共存),即使在计算任务空闲的情况下也无法释放Spark占用的资源。
现有Spark提供一种动态Executor申请释放的机制,但是受限于Cache,该机制无法正常工作,否则会造成Cache到Memroy的数据丢失,对后续计算的性能有较大影响。
基于此,本公开提供了一种资源处理方法,包括:在获取第一执行单元的已存储至第一执行单元的内存中的待释放资源之后,查找与待释放资源对应的多个第一数据分段,其中,各第一数据分段处于第一缓存级别,第一缓存级别允许将待释放资源缓存至第一执行单元的内存中。然后,对待释放资源执行第一迁移操作,以将待释放资源从第一执行单元的内存中迁移至本地磁盘中,同时修改各第一数据分段处于的第一缓存级别为第二缓存级别,该第二缓存级别允许将待释放资源存储至第一执行单元的内存中和本地磁盘中,以及释放第一执行单元的待释放资源。
图1示意性示出了根据本公开实施例的资源处理方法的应用场景100。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,本公开实施例提供的资源处理方法可以应用在大数据计算平台Spark的应用场景100中。该应用场景100包括运行在Driver101上的主块管理器(BlockManagerMaster)103、弹性分布式数据集(Resilient Distributed Database,简称为RDD)102、执行单元(Executor)104的内存(Memory)105、本地磁盘(Disk)106、运行在执行单元(Executor)104上的从块管理器(BlockManagerSlave)107以及计算任务108。
可以理解的是,RDD可以看作是Spark的一个对象,本身运行于内存中,RDD提供了一种高度受限的共享内存,即RDD是只读的,并且只能通过其他RDD上的批量操作来创建。RDD作为数据结构,本质上是一个只读的分区记录集合。一个RDD可以包含多个分区,每个分区是一个database片段,RDD可以相互依赖。
运行在Driver101上的主块管理器(BlockManagerMaster)103对于运行在执行单元(Executor)104上的从块管理器(BlockManagerSlave)107进行统一管理。例如,执行单元(Executor)104可以向Driver101发送注册块管理器(BlockManager)、更新执行单元(Executor)104上的Block的最新信息,询问所需要的Block目前所在的位置以及当执行单元(Executor)104运行结束时,将该执行单元(Executor)104移除。而块管理器(BlockManager)只负责管理其所在执行单元上的Block。
需要说明的是,数据可以仅缓存到执行单元(Executor)104的内存(Memory)105中,也可以仅存储到本地磁盘(Disk)106中,也可以缓存到执行单元(Executor)104的内存(Memory)105中,同时也存储到本地磁盘(Disk)106中。
应该理解,图1中的RDD、BlockManager和Executor的数目仅仅是示意性的。根据实现需要,可以具有任意数目的RDD、BlockManager和Executor。
由于Spark提供一种动态的执行单元申请释放的机制,因此,在Spark的大数据运算场景中,执行单元的资源将处于动态调度的模式,即在需要调用执行单元来处理执行任务的情况下,可以申请一个或多个执行单元所占用的资源以处理执行任务,而在执行任务处理完成的情况下,可以释放一个或多个执行单元所占用的资源,避免对资源的占用导致其他执行任务无法获得计算资源。
考虑到上述应用场景,本公开提供的资源处理方法可以应用于执行单元的资源释放阶段,也可以应用于执行单元的资源申请阶段,以下将结合图2至图5详细描述在执行单元的资源释放阶段和在执行单元的资源申请阶段的具体实施方式。
首先,结合图2和图3详细描述在执行单元的资源释放阶段的具体实施方式。
图2示意性示出了根据本公开实施例的资源处理方法的流程图。
如图2所示,该资源处理方法可以包括操作S210~操作S250。
在操作S210,获取第一执行单元的待释放资源。
可以在Spark任务空闲时,释放执行单元中的资源。根据本公开的实施例,第一执行单元可以是一个或多个需要释放计算资源的执行单元。由于对每个执行单元的资源处理方法相同。因此,本公开将以一个执行单元的资源处理方法为例。在确定出需要释放计算资源的第一执行单元之后,可以查找以获取已存储至第一执行单元的内存中的资源,即待释放资源。
在操作S220,查找与待释放资源对应的多个第一数据分段。
根据本公开的实施例,在获取待释放资源之后,可以查找与该待释放资源对应的RDD信息,即多个第一数据分段。
根据本公开的实施例,RDD具有三个缓存级别,分别是第一缓存级别:内存级别(MEMORY)、第二缓存级别:内存和磁盘级别(MEMORY_AND_DISK)、第三缓存级别:磁盘级别(DISK)。
在本公开中,多个第一数据分段中的各第一数据分段处于第一缓存级别,即允许将待释放资源缓存至第一执行单元的内存中。
在操作S230,对待释放资源执行第一迁移操作,以将待释放资源从第一执行单元的内存中迁移至本地磁盘中。
在操作S240,修改各第一数据分段处于的第一缓存级别为第二缓存级别。
在将待释放资源从第一执行单元的内存中迁移至本地磁盘之后,根据本公开的实施例,可以将RDD的缓存级别从第一缓存级别修改为第二缓存级别,即允许将待释放资源存储至第一执行单元的内存中和本地磁盘中。
在操作S250,释放第一执行单元的待释放资源。
通过本公开的实施例,可以在执行单元需要释放资源的情况下,将待释放资源迁移至本地磁盘,并修改缓存级别,有效保护待释放资源,可以克服相关技术中待释放资源被缓存到执行单元的内存中,Spark的执行单元就无法被释放的技术问题。
作为一种可选的实施例,方法还包括:修改针对第一执行单元的资源管理信息,以及针对第一迁移操作,生成并记录第一迁移记录,其中,第一迁移记录包括各第一数据分段的分段信息和第一执行单元的信息。
在本公开中,为了使得BlockManager中的管理信息实时更新,在修改各第一数据分段处于的第一缓存级别为第二缓存级别之后,还可以修改BlockManager中记录的管理信息。还可以将缓存的Block指向本地磁盘。
进一步地,可以记录上述第一迁移事件的相关信息,包括但不限于迁移块Block信息、执行单元信息以及RDD信息。
图3示意性示出了根据本公开另一实施例的资源处理方法的流程图。
如图3所示,该方法可以包括操作S310~操作S380。
在操作S310,Executor申请释放。
在操作S320,检测Memory是否有Cache数据。若有,则执行操作S330。若无,则则执行操作S380。
在操作S330,查找对应RDD信息。
在操作S340,迁移Memory数据到磁盘。
在操作S350,修改RDD的Cache级别。
在操作S360,修改BlockManager信息。
在操作S370,记录迁移事件信息。
在操作S380,释放Executor资源。通过本公开的实施例,可以在释放执行单元的资源时,实现缓存数据的有效保存,降低资源释放对计算性能的影响,在保证Spark的大数据的计算性能与集群资源利用之间取得很好的平衡。
接下来,结合图4和图5详细描述在执行单元的资源申请阶段的具体实施方式。
图4示意性示出了根据本公开另一实施例的资源处理方法的流程图。
如图4所示,该方法除了可以包括前述操作S210~操作S250之外,还可以包括操作S410~操作S430。
在操作S410,响应于资源申请请求,获取第二执行单元。
根据本公开的实施例,在需要申请计算资源处理执行任务的情况下,可以申请以获取第二执行单元,将待迁移资源缓存到申请到的第二执行单元中。需要说明的是,第二执行单元可以包含一个或多个执行单元,为了描述简便起见,统称为第二执行单元,并不限定具体数量。
可以理解的是,在动态资源调度的情况下,响应于资源申请请求,申请获得的第二执行单元的数量有限,该数量可以等于资源申请请求中所申请的数量,也可以小于资源申请请求中所申请的数量,还可以大于资源申请请求中所申请的数量。
在操作S420,获取待迁移资源。
根据本公开的实施例,待迁移资源对应多个第二数据分段,各第二数据分段处于第二缓存级别,即允许将待迁移资源存储至第二执行单元的内存中和本地磁盘中。在操作S430,对待迁移资源执行第二迁移操作,以将待迁移资源从本地磁盘中迁移至第二执行单元的内存中。
考虑到申请到的第二执行单元的内存所提供的资源量有限,在待迁移资源所需的资源量一定的情况下,第二执行单元的内存所提供的资源量与待迁移资源所需的资源量存在以下两种情况。
情况一:第二执行单元的内存所提供的资源量可以满足(大于或等于)待迁移资源所需的资源量。
情况二:第二执行单元的内存所提供的资源量无法满足(小于)待迁移资源所需的资源量。
因此,对待迁移资源执行第二迁移操作,以将待迁移资源从本地磁盘中迁移至第二执行单元的内存中包括:检测第二执行单元的内存提供的资源量是否满足待迁移资源所需的资源量。
针对上述情况一,作为一种可选的实施例,若第二执行单元的内存提供的资源量不满足待迁移资源所需的资源量,则基于第二执行单元的内存提供的资源量和待迁移资源所需的资源量,确定能够被迁移至第二执行单元的内存中的目标迁移资源,以及对目标迁移资源执行第二迁移操作,以将待迁移资源从本地磁盘中迁移至第二执行单元的内存中。
可以理解,若第二执行单元的内存所提供的资源量无法满足待迁移资源所需的资源量,表明待迁移资源无法全部被迁移到第二执行单元,即待迁移资源仅部分被迁移到第二执行单元。
作为一种可选的实施例,在只有部分迁移资源被恢复的情况下,上述方法还包括:维持各第二数据分段处于第二缓存级别。具体地,可以不修改RDD的Cache级别,仅修改已恢复数据的迁移记录。
针对上述情况二,作为一种可选的实施例,若第二执行单元的内存提供的资源量满足待迁移资源所需的资源量,表明待迁移资源可以全部被迁移到第二执行单元,即所有数据可以被恢复,则修改各第二数据分段处于的第二缓存级别为第一缓存级别,并删除迁移事件。
图5示意性示出了根据本公开另一实施例的资源处理方法的流程图。
如图5所示,该方法可以包括操作S510~操作S580。
在操作S510,申请Executor资源。
在操作S520,检测节点是否有迁移事件。若有,则执行操作S530。若无,则则执行操作S580。
在操作S530,查找对应RDD信息。
在操作S540,磁盘查找待恢复数据。
在操作S550,恢复数据到Memory
修改RDD的Cache级别。
在操作S560,检测Executor数量是否够。若是,则执行操作S570。若否,则执行操作S590。
在操作S570,恢复RDD的Cache级别。
在操作S580,删除迁移事件信息。
在操作S590,修改迁移事件信息。
在操作S5100,修改BlockManager信息。
通过本公开的实施例,可以在申请执行单元的资源时,在重新分配执行单元后实现缓存数据的有效迁移即恢复,在保证Spark的大数据的计算性能与集群资源利用之间取得很好的平衡。
图6示意性示出了根据本公开实施例的资源处理装置的框图。
如图6所示,该资源处理装置600可以包括第一获取模块610、查找模块620、第一迁移模块630、修改模块640以及释放模块650。
第一获取模块610,被配置为例如执行前述操作S210,获取第一执行单元的待释放资源,其中,待释放资源已存储至第一执行单元的内存中。
查找模块620,被配置为例如执行前述操作S220,查找与待释放资源对应的多个第一数据分段,其中,各第一数据分段处于第一缓存级别,其中,第一缓存级别允许将待释放资源缓存至第一执行单元的内存中。
第一迁移模块630,被配置为例如执行前述操作S230,对待释放资源执行第一迁移操作,以将待释放资源从第一执行单元的内存中迁移至本地磁盘中。
修改模块640,被配置为例如执行前述操作S240,修改各第一数据分段处于的第一缓存级别为第二缓存级别,其中,第二缓存级别允许将待释放资源存储至第一执行单元的内存中和本地磁盘中。
释放模块650,被配置为例如执行前述操作S250,释放第一执行单元的待释放资源。
通过本公开的实施例,可以在执行单元需要释放资源的情况下,将待释放资源迁移至本地磁盘,并修改缓存级别,有效保护待释放资源,可以克服相关技术中待释放资源被缓存到执行单元的内存中,Spark的执行单元就无法被释放的技术问题。
作为一种可选的实施例,前述修改模块640,还被配置为修改针对第一执行单元的资源管理信息,以及装置还包括:生成模块,被配置为针对第一迁移操作,生成并记录第一迁移记录,其中,第一迁移记录包括各第一数据分段的分段信息和第一执行单元的信息。
通过本公开的实施例,可以在释放执行单元的资源时,实现缓存数据的有效保存,降低资源释放对计算性能的影响,在保证Spark的大数据的计算性能与集群资源利用之间取得很好的平衡。
图7示意性示出了根据本公开另一实施例的资源处理装置的框图。
如图7所示,该资源处理装置700除了可以包括前述第一获取模块610、查找模块620、第一迁移模块630、修改模块640以及释放模块650之外,还可以包括第二获取模块710、第三获取模块720以及第二迁移模块730。
第二获取模块710,被配置为例如执行前述操作S410,响应于资源申请请求,获取第二执行单元。
第三获取模块720,被配置为例如执行前述操作S420,获取待迁移资源,其中,待迁移资源对应多个第二数据分段,各第二数据分段处于第二缓存级别。
第二迁移模块730,被配置为例如执行前述操作S430,对待迁移资源执行第二迁移操作,以将待迁移资源从本地磁盘中迁移至第二执行单元的内存中。
作为一种可选的实施例,前述第二迁移模块730包括:检测子模块,被配置为检测第二执行单元的内存提供的资源量是否满足待迁移资源所需的资源量,确定子模块,被配置为若第二执行单元的内存提供的资源量不满足待迁移资源所需的资源量,则基于第二执行单元的内存提供的资源量和待迁移资源所需的资源量,确定能够被迁移至第二执行单元的内存中的目标迁移资源,以及迁移子模块,被配置为对目标迁移资源执行第二迁移操作,以将待迁移资源从本地磁盘中迁移至第二执行单元的内存中。
作为一种可选的实施例,该资源处理装置700还可以包括:维持模块,被配置为维持各第二数据分段处于第二缓存级别。
可选地,前述修改模块640,还被配置为若第二执行单元的内存提供的资源量满足待迁移资源所需的资源量,则修改各第二数据分段处于的第二缓存级别为第一缓存级别。
通过本公开的实施例,可以在申请执行单元的资源时,在重新分配执行单元后实现缓存数据的有效迁移即恢复,在保证Spark的大数据的计算性能与集群资源利用之间取得很好的平衡。
根据本公开的实施例的模块中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一获取模块610、查找模块620、第一迁移模块630、修改模块640、释放模块650、生成模块、第二获取模块710、第三获取模块720、第二迁移模块730、检测子模块、确定子模块、迁移子模块以及维持模块中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一获取模块610、查找模块620、第一迁移模块630、修改模块640、释放模块650、生成模块、第二获取模块710、第三获取模块720、第二迁移模块730、检测子模块、确定子模块、迁移子模块以及维持模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块610、查找模块620、第一迁移模块630、修改模块640、释放模块650、生成模块、第二获取模块710、第三获取模块720、第二迁移模块730、检测子模块、确定子模块、迁移子模块以及维持模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了适用于执行本公开实施例的资源处理方法的电子设备的框图。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括处理器810以及计算机可读存储介质820。该计算机系统800可以执行根据本公开实施例的方法。
具体地,处理器810例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器810还可以包括用于缓存用途的板载存储器。处理器810可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质820,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质820可以包括计算机程序821,该计算机程序821可以包括代码/计算机可执行指令,其在由处理器810执行时使得处理器810执行根据本公开实施例的方法或其任何变形。
计算机程序821可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序821中的代码可以包括一个或多个程序模块,例如包括821A、模块821B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器810执行时,使得处理器810可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,第一获取模块610、查找模块620、第一迁移模块630、修改模块640、释放模块650、生成模块、第二获取模块710、第三获取模块720、第二迁移模块730、检测子模块、确定子模块、迁移子模块以及维持模块中的至少一个可以实现为参考图8描述的计算机程序模块,其在被处理器810执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (6)
1.一种资源处理方法,包括:
在分布式引擎空闲的情况下,获取第一执行单元的待释放资源,其中,所述待释放资源已存储至所述第一执行单元的内存中;
查找与所述待释放资源对应的多个第一数据分段,其中,各第一数据分段处于第一缓存级别,所述第一缓存级别允许将所述待释放资源缓存至所述第一执行单元的内存中;
对所述待释放资源执行第一迁移操作,以将所述待释放资源从所述第一执行单元的内存中迁移至本地磁盘中;
修改所述各第一数据分段处于的所述第一缓存级别为第二缓存级别,其中,所述第二缓存级别允许将所述待释放资源存储至所述第一执行单元的内存中和所述本地磁盘中;
释放所述第一执行单元的所述待释放资源;
在响应于分布式引擎的资源申请请求的情况下,获取第二执行单元;
获取待迁移资源,其中,所述待迁移资源对应多个第二数据分段,各第二数据分段处于所述第二缓存级别;以及
对所述待迁移资源执行第二迁移操作,以将所述待迁移资源从所述本地磁盘中迁移至所述第二执行单元的内存中,其中,所述对所述待迁移资源执行第二迁移操作,以将所述待迁移资源从所述本地磁盘中迁移至所述第二执行单元的内存中包括:检测所述第二执行单元的内存提供的资源量是否满足所述待迁移资源所需的资源量;若所述第二执行单元的内存提供的资源量不满足所述待迁移资源所需的资源量,则基于所述第二执行单元的内存提供的资源量和所述待迁移资源所需的资源量,确定能够被迁移至所述第二执行单元的内存中的目标迁移资源;以及对所述目标迁移资源执行第二迁移操作,以将所述待迁移资源从所述本地磁盘中迁移至所述第二执行单元的内存中;以及在部分迁移被恢复的情况下,维持所述各第二数据分段处于所述第二缓存级别。
2.根据权利要求1所述的方法,其中,所述方法还包括:
修改针对所述第一执行单元的资源管理信息;以及
针对所述第一迁移操作,生成并记录第一迁移记录,其中,所述第一迁移记录包括所述各第一数据分段的分段信息和所述第一执行单元的信息。
3.根据权利要求1所述的方法,其中,所述方法还包括:
若所述第二执行单元的内存提供的资源量满足所述待迁移资源所需的资源量,则修改所述各第二数据分段处于的所述第二缓存级别为所述第一缓存级别。
4.一种资源处理装置,包括:
第一获取模块,被配置为在分布式引擎空闲的情况下,获取第一执行单元的待释放资源,其中,所述待释放资源已存储至所述第一执行单元的内存中;
查找模块,被配置为查找与所述待释放资源对应的多个第一数据分段,其中,各第一数据分段处于第一缓存级别,所述第一缓存级别允许将所述待释放资源缓存至所述第一执行单元的内存中;
第一迁移模块,被配置为对所述待释放资源执行第一迁移操作,以将所述待释放资源从所述第一执行单元的内存中迁移至本地磁盘中;
修改模块,被配置为修改所述各第一数据分段处于的所述第一缓存级别为第二缓存级别,其中,所述第二缓存级别允许将所述待释放资源存储至所述第一执行单元的内存中和所述本地磁盘中;释放模块,被配置为释放所述第一执行单元的所述待释放资源;
第二获取模块,被配置为在响应于分布式引擎的资源申请请求的情况下,获取第二执行单元;
第三获取模块,被配置为获取待迁移资源,其中,所述待迁移资源对应多个第二数据分段,各第二数据分段处于所述第二缓存级别;以及
第二迁移模块,被配置为对所述待迁移资源执行第二迁移操作,以将所述待迁移资源从所述本地磁盘中迁移至所述第二执行单元的内存中,其中,所述对所述待迁移资源执行第二迁移操作,以将所述待迁移资源从所述本地磁盘中迁移至所述第二执行单元的内存中包括:检测所述第二执行单元的内存提供的资源量是否满足所述待迁移资源所需的资源量;若所述第二执行单元的内存提供的资源量不满足所述待迁移资源所需的资源量,则基于所述第二执行单元的内存提供的资源量和所述待迁移资源所需的资源量,确定能够被迁移至所述第二执行单元的内存中的目标迁移资源;以及对所述目标迁移资源执行第二迁移操作,以将所述待迁移资源从所述本地磁盘中迁移至所述第二执行单元的内存中;以及在部分迁移被恢复的情况下,维持所述各第二数据分段处于所述第二缓存级别。
5.一种电子设备,包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至3中任一项所述的方法。
6.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910821916.6A CN110543367B (zh) | 2019-08-30 | 2019-08-30 | 资源处理方法及其装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910821916.6A CN110543367B (zh) | 2019-08-30 | 2019-08-30 | 资源处理方法及其装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110543367A CN110543367A (zh) | 2019-12-06 |
CN110543367B true CN110543367B (zh) | 2022-07-26 |
Family
ID=68712512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910821916.6A Active CN110543367B (zh) | 2019-08-30 | 2019-08-30 | 资源处理方法及其装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110543367B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526546A (zh) * | 2017-08-25 | 2017-12-29 | 深圳大学 | 一种Spark分布式计算数据处理方法及系统 |
CN108268208A (zh) * | 2016-12-30 | 2018-07-10 | 清华大学 | 一种基于rdma的分布式内存文件系统 |
CN108334603A (zh) * | 2018-02-01 | 2018-07-27 | 广东聚晨知识产权代理有限公司 | 一种大数据互动交换系统 |
CN108762921A (zh) * | 2018-05-18 | 2018-11-06 | 电子科技大学 | 一种Spark集群系统的在线优化分区的任务调度方法及装置 |
CN109298931A (zh) * | 2017-07-25 | 2019-02-01 | 迈普通信技术股份有限公司 | 缓冲区按需释放方法及网络设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8359444B2 (en) * | 2008-09-24 | 2013-01-22 | Hitachi, Ltd. | System and method for controlling automated page-based tier management in storage systems |
JP2016207096A (ja) * | 2015-04-27 | 2016-12-08 | 富士通株式会社 | 階層ストレージ装置、階層ストレージシステム、階層ストレージ方法、および階層ストレージプログラム |
US10929417B2 (en) * | 2015-09-11 | 2021-02-23 | International Business Machines Corporation | Transforming and loading data utilizing in-memory processing |
CN107463447B (zh) * | 2017-08-21 | 2019-10-11 | 中国人民解放军国防科技大学 | 一种基于远程直接非易失内存访问的b+树管理方法 |
CN109697120B (zh) * | 2017-10-20 | 2023-06-27 | 伊姆西Ip控股有限责任公司 | 用于应用迁移的方法、电子设备 |
CN108920287A (zh) * | 2018-06-29 | 2018-11-30 | 中用科技有限公司 | 基于人工智能的高速缓存方法 |
CN109857339A (zh) * | 2019-01-10 | 2019-06-07 | 平安科技(深圳)有限公司 | 文件存储方法、装置、计算机设备和存储介质 |
-
2019
- 2019-08-30 CN CN201910821916.6A patent/CN110543367B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268208A (zh) * | 2016-12-30 | 2018-07-10 | 清华大学 | 一种基于rdma的分布式内存文件系统 |
CN109298931A (zh) * | 2017-07-25 | 2019-02-01 | 迈普通信技术股份有限公司 | 缓冲区按需释放方法及网络设备 |
CN107526546A (zh) * | 2017-08-25 | 2017-12-29 | 深圳大学 | 一种Spark分布式计算数据处理方法及系统 |
CN108334603A (zh) * | 2018-02-01 | 2018-07-27 | 广东聚晨知识产权代理有限公司 | 一种大数据互动交换系统 |
CN108762921A (zh) * | 2018-05-18 | 2018-11-06 | 电子科技大学 | 一种Spark集群系统的在线优化分区的任务调度方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110543367A (zh) | 2019-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10242022B1 (en) | Systems and methods for managing delayed allocation on clustered file systems | |
FR3025908B1 (fr) | Mecanisme et procede pour acceder a des donnees dans une memoire partagee | |
CN110554909A (zh) | 任务的调度处理方法、装置及计算机设备 | |
US9659057B2 (en) | Fault tolerant distributed query processing using query operator motion | |
US10082983B2 (en) | Monitoring storage systems | |
US20140310259A1 (en) | Dynamic Load Balancing During Distributed Query Processing Using Query Operator Motion | |
US9400767B2 (en) | Subgraph-based distributed graph processing | |
US20130047164A1 (en) | Method of scheduling jobs and information processing apparatus implementing same | |
US8677360B2 (en) | Thread-related actions based on historical thread behaviors | |
US11074134B2 (en) | Space management for snapshots of execution images | |
US9904470B2 (en) | Tracking ownership of memory in a data processing system through use of a memory monitor | |
US20180129532A1 (en) | Thread interrupt offload re-prioritization | |
US20180113737A1 (en) | Execution of critical tasks based on the number of available processing entities | |
CN110188023B (zh) | 资源健康检查方法和资源健康检查装置 | |
CN110096228B (zh) | 数据存储方法、数据存储装置和数据存储系统 | |
US11481140B1 (en) | Dynamic base disk mirroring for linked clones | |
WO2017113277A1 (zh) | 数据处理方法、装置和系统 | |
CN110543367B (zh) | 资源处理方法及其装置、电子设备和介质 | |
CN109976905B (zh) | 内存管理方法、装置和电子设备 | |
CN110162423B (zh) | 资源检查方法和资源检查装置 | |
CN112631994A (zh) | 数据迁移方法及系统 | |
US20200142995A1 (en) | Intelligently Scheduling Resynchronization Jobs in a Distributed Object-Based Storage System | |
US20110239217A1 (en) | Performing a wait operation to wait for one or more tasks to complete | |
CN110532099B (zh) | 资源隔离方法和装置以及电子设备和介质 | |
US10185587B2 (en) | Wait-free process request execution utilizing a dedicated helper thread |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |