CN107967172B - 一种面向异构存储的Spark任务动态迁移方法和系统 - Google Patents
一种面向异构存储的Spark任务动态迁移方法和系统 Download PDFInfo
- Publication number
- CN107967172B CN107967172B CN201711388866.4A CN201711388866A CN107967172B CN 107967172 B CN107967172 B CN 107967172B CN 201711388866 A CN201711388866 A CN 201711388866A CN 107967172 B CN107967172 B CN 107967172B
- Authority
- CN
- China
- Prior art keywords
- task
- migrated
- node
- target
- tasks
- 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
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Abstract
本发明属于计算机技术领域,尤其涉及一种面向异构存储的Spark任务动态迁移方法和系统。该方法,在任务的执行过程中,当存储有其操作数据的固态硬盘节点存在空闲的计算资源时,将该任务动态地迁移至该固态硬盘节点上,利用固态硬盘节点高速读写的特性,仍可加速任务的执行,提升Spark应用程序的执行效率。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种面向异构存储的Spark任务动态迁移方法和系统。
背景技术
Spark是目前产业界广泛使用的高效的大数据计算框架,将Spark部署到高性能计算集群中可有效地提升Spark的大数据处理效率。高性能计算集群(High PerformanceComputing Cluster,HPC Cluster)是通过对不同的计算节点配置不同的存储设备,搭建了基于固态硬盘(Solid State Drives,SSD)和机械硬盘(Hard Disk Drive,HDD)混合的分布式文件系统和计算集群。高性能计算集群综合利用SSD的高速读、写和高吞吐率的特性以及HDD的大容量、廉价的特性,在保证存储和计算成本的前提下,实现了集群存储和计算能力的有效提升。为了实现系统的容错功能,集群通常采用一块数据存储多个副本的策略,即集群的管理系统通常会合理地搭配SSD和HDD的使用,其中典型的使用策略是将数据的一个副本存储在SSD节点,其它副本存储在HDD节点。如图6所示,其展示了现有的基于SSD和HDD混合存储的高性能计算集群的拓扑结构。
当前Spark的任务分配策略是基于操作数据的位置,将任务分配到存储有该任务操作数据的计算节点,将任务和数据部署到同一计算节点,从而避免了数据的远程读取,实现了数据的本地处理。任务操作的数据可能同时存储在SSD节点和HDD节点,由于存储有该任务操作数据的SSD节点计算资源忙碌等原因,往往会导致该任务无法被分配到理想的SSD节点上,只能被分配到存储有操作数据的HDD节点或没有存储器操作数据的其他节点;同时,在任务的执行过程中,其理想的SSD节点可能已经存在空闲的计算资源,但是现有的任务迁移方法并没有针对理想的SSD节点的空闲资源执行任务迁移操作。因此,现有的Spark任务迁移方法,由于需要进行数据的远程或本地磁盘读取操作一直在HDD节点执行,会带来巨大的网络和I/O延迟,从而严重影响Spark应用程序的执行效率。
发明内容
本发明所要解决的技术问题为提供一种面向异构存储的Spark任务动态迁移方法和系统,旨在解决优化现有的Spark应用程序的执行效率低的问题。
为解决上述技术问题,本发明是这样实现的,本发明提供了一种面向异构存储的Spark任务迁移方法,所述方法包括:
按照存储设备的存储特征将集群中所包含的节点分别保存至固态硬盘节点变量和机械硬盘节点变量;
监测集群中正在执行的任务中是否存在满足预设条件的目标任务,所述预设条件是指需要远程访问数据、任务完成进度小于预设阈值、且操作数据存储在已配置的非本地节点中;
若监测到目标任务,则从已存储所述目标任务的操作数据的节点中,确定空闲资源满足对应任务的需求,且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并确定所述目标任务中与所述待迁移的目标节点对应的任务作为待迁移的任务;
将所述待迁移的任务迁移至对应的所述待迁移的目标节点。
进一步地,所述监测集群中正在执行的任务中是否存在满足预设条件的目标任务,所述预设条件是指需要远程访问数据、任务完成进度小于预设阈值、且操作数据存储在已配置的非本地节点中具体包括:
监测集群中正在执行的任务完成进度和任务的操作数据是否存储在本地节点;
提取任务的操作数据存储在非本地节点、且任务完成进度小于预设阈值的任务保存至可迁移任务变量;
提取所述可迁移任务变量中,任务的操作数据存储在非本地节点、且所述非本地节点已配置的任务,将提取的所述任务作为计划迁移的任务保存至计划迁移任务变量;
将存储有所述计划迁移的任务的操作数据的节点作为计划迁移的目标节点保存至计划迁移目标节点变量。
进一步地,所述若监测到目标任务,则从已存储所述目标任务的操作数据的节点中,确定空闲资源满足对应任务的需求,且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并确定所述目标任务中与所述待迁移的目标节点对应的任务作为待迁移的任务具体包括:
提取所述计划迁移的目标节点中,空闲资源满足对应任务需求、且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并保存至待迁移目标节点变量;
提取所述计划迁移的任务中与所述待迁移的目标节点对应的任务作为待迁移的任务,并保存至待迁移任务变量。
进一步地,所述将所述待迁移的任务迁移至对应的所述待迁移的目标节点具体包括:
循环提取所述待迁移任务变量中的任务、及所述待迁移目标节点变量中与所述任务对应的目标节点;
向正在执行所述任务的节点发送任务迁移指令及所述任务对应的目标节点信息;
所述正在执行所述任务的节点挂起所述任务,并将所述任务发送至所述对应的目标节点。
进一步地,在所述若监测到目标任务,则从已存储所述目标任务的操作数据的节点中,确定空闲资源满足对应任务的需求,且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并确定所述目标任务中与所述待迁移的目标节点对应的任务作为待迁移的任务之前,所述方法还包括:动态监测各节点的空闲资源信息。
为了解决上述技术问题,本发明还提供了一种面向异构存储的Spark任务迁移系统,所述系统包括:
存储特性统计模块,用于按照存储设备的存储特征将集群中所包含的节点分别保存至固态硬盘节点变量和机械硬盘节点变量;
资源过滤模块,用于监测集群中正在执行的任务中是否存在满足预设条件的目标任务,所述预设条件是指需要远程访问数据、任务完成进度小于预设阈值、且操作数据存储在已配置的非本地节点中;
所述资源过滤模块,还用于若监测到目标任务,则从已存储所述目标任务的操作数据的节点中,确定空闲资源满足对应任务的需求,且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并确定所述目标任务中与所述待迁移的目标节点对应的任务作为待迁移的任务;
调度模块,用于将所述待迁移的任务迁移至对应的所述待迁移的目标节点。
进一步地,所述资源过滤模块具体用于:
监测集群中正在执行的任务完成进度和任务的操作数据是否存储在本地节点;
提取任务的操作数据存储在非本地节点、且任务完成进度小于预设阈值的任务保存至可迁移任务变量;
提取所述可迁移任务变量中,任务的操作数据存储在非本地节点、且所述非本地节点已配置的任务,将提取的所述任务作为计划迁移的任务保存至计划迁移任务变量;
将存储有所述计划迁移的任务的操作数据的节点作为计划迁移的目标节点保存至计划迁移目标节点变量。
进一步地,所述资源过滤模块具体还用于:
提取所述计划迁移的目标节点中,空闲资源满足对应任务需求、且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并保存至待迁移目标节点变量;
提取所述计划迁移的任务中与所述待迁移的目标节点对应的任务作为待迁移的任务,并保存至待迁移任务变量。
进一步地,所述调度模块具体用于:
循环提取所述待迁移任务变量中的任务、及所述待迁移目标节点变量中与所述任务对应的目标节点;
向正在执行所述任务的节点发送任务迁移指令及所述任务对应的目标节点信息;
所述正在执行所述任务的节点挂起所述任务,并将所述任务发送至所述对应的目标节点。
进一步地,所述资源过滤模块还用于动态监测各节点的空闲资源信息。
本发明与现有技术相比,有益效果在于:
本发明提供的面向异构存储的Spark任务动态迁移方法,在任务的执行过程中,当存储有其操作数据的固态硬盘节点存在空闲的计算资源时,将该任务动态地迁移至该固态硬盘节点上,利用固态硬盘节点高速读写的特性,仍可加速任务的执行,提升Spark应用程序的执行效率。
附图说明
图1是本发明第一个实施例提供的一种面向异构存储的Spark任务迁移方法流程图;
图2是本发明第一个实施例提供的一种面向异构存储的Spark任务迁移方法中步骤S102的细化流程图;
图3是本发明第一个实施例提供的一种面向异构存储的Spark任务迁移方法中步骤S103的细化流程图;
图4是本发明第二个实施例提供的一种面向异构存储的Spark任务迁移系统示意图;
图5是本发明实施例提供的一种Spark任务迁移框架示意图;
图6是本发明实施例提供的现有的基于SSD和HDD混合存储的高性能计算集群的拓扑结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
作为本发明的第一个实施例,如图1和图5所示,本发明提供的一种面向异构存储的Spark任务迁移方法,该方法包括:
步骤S101:按照存储设备的存储特征将集群中所包含的节点分别保存至固态硬盘节点变量和机械硬盘节点变量。在本实施例中,首先获取集群中各节点所配置的存储设备的存储特征标识,按存储特征标识是SSD还是HDD将集群中所包含的节点分别保存至固态硬盘节点变量DNssd和机械硬盘节点变量DNhdd。其中,DNssd={…,dni,…},DNhdd={…,dnj,…},DNssd包含了集群中存储设备标识为SSD的节点,DNhdd包含了集群中存储设备标识为HDD的节点。
步骤S102:监测集群中正在执行的任务中是否存在满足预设条件的目标任务,所述预设条件是指需要远程访问数据、任务完成进度小于预设阈值、且操作数据存储在已配置的非本地节点中。具体地,如图2所示,步骤S102包括如下步骤S201-S204:
步骤S201:监测集群中正在执行的任务完成进度和任务的操作数据是否存储在本地节点(即任务是否需要远程读取数据)。在本实施例中,步骤S201具体实现过程如下:获取当前正在的任务的运行状态信息,包括任务的完成进度和该任务是否需要进行远程数据的访问。任务进度的获取:向Driver端获取任务的完成进度,定义变量TASKs={t1,t2,t3,…,tm},用于保存和管理当前执行的任务。定义变量STATUSt={s1,s2,s3,…,sm},用于记录当前执行的任务完成进度。例如,s1=0.75,表示任务t1已经完成75%。任务读取数据的特征获取:向Worker端获取任务是否需要进行远程数据的访问,定义变量IFLOCALt={l1,l2,l3,…,lm},用于记录当前运行的任务的数据访问特征。例如l1=1,表示任务t1需要远程访问数据,l2=0则表示任务t2操作的数据存储在本地。
步骤S202:提取任务的操作数据存储在非本地节点、且任务完成进度小于预设阈值的任务保存至可迁移任务变量。本实施例中,首先判断并提取哪些任务需要进行远程读取数据、且任务完成进度小于预设阈值(该预设阈值根据实际需要进行设定)的任务,将这些任务信息保存至可迁移任务变量TASKremote中,从而通过步骤S202可确认这些任务是有必要做任务迁移操作的。
需要说明的是,任务完成进度小于预设阈值,说明该任务完成进度有限,可以考虑对其进行迁移。如果任务完成进度大于预设阈值,说明该任务已经快执行完成,则此时没有必要再对该任务进行迁移。
步骤S203:提取所述可迁移任务变量中,任务的操作数据存储在非本地节点、且所述非本地节点已配置的任务,将提取的所述任务作为计划迁移的任务保存至计划迁移任务变量。本实施例中,从可迁移任务变量TASKremote中判断并提取哪些任务的操作数据虽然不是存储在本地节点,但存储在其它已配置的节点中,将这些任务信息保存至迁移任务变量TASKtrue。
步骤S204:将存储有所述计划迁移的任务的操作数据的节点作为计划迁移的目标节点保存至计划迁移目标节点变量。本实施例中,计划迁移目标节点变量为DNtrue。
步骤S103:若监测到目标任务,则从已存储所述目标任务的操作数据的节点中,确定空闲资源满足对应任务的需求,且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并确定所述目标任务中与所述待迁移的目标节点对应的任务作为待迁移的任务。具体地,如图3所示,步骤S103包括如下步骤S301-S302:
步骤S301:提取所述计划迁移的目标节点中,空闲资源满足对应任务需求、且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并保存至待迁移目标节点变量。在本实施例中,判断并提取DNtrue中空闲资源满足对应任务需求(利用变量DNavail进行判断)、且配置有SSD(利用固态硬盘节点变量DNssd进行判断)的节点,将这些节点作为待迁移的目标节点保存至待迁移目标节点变量DNneed。
步骤S302:提取所述计划迁移的任务中与所述待迁移的目标节点对应的任务作为待迁移的任务,并保存至待迁移任务变量。在本实施例中,提取TASKtrue中,与DNneed中的节点所对应的任务,将这些任务作为待迁移的任务,并保存至待迁移任务变量TASKnedd。
步骤S104:将所述待迁移的任务迁移至对应的所述待迁移的目标节点。步骤S104具体包括:循环提取所述待迁移任务变量中的任务、及所述待迁移目标节点变量中与所述任务对应的目标节点;向正在执行所述任务的节点发送任务迁移指令及所述任务对应的目标节点信息;所述正在执行所述任务的节点挂起所述任务,并将所述任务发送至所述对应的目标节点。
在本实施例中,步骤S104的具体实现过程为:调度模块获取资源过滤模块模块的待迁移任务变量TASKnedd和待迁移目标节点变量DNneed。循环提取TASKnedd中的任务及其对应的DNneed中保存的目标节点,定义变量ttrans和dntgt,分别用于保存前述的任务及对应的目标节点;向正在执行任务ttrans的节点发送对任务ttrans的迁移指令,同时指定其应迁移的目标节点dntgt;正在执行任务ttrans的节点在接收到任务ttrans的迁移指令后,挂起该任务ttrans并保存任务运行环境,然后将执行该任务的虚拟机进行压缩打包,最后将虚拟机包发送至目标节点dntgt。目标节点dntgt接收到虚拟机包后,将其解压,继续执行该任务。
在步骤S103之前,本方法还包括步骤S105:动态监测各节点的空闲资源信息。在本实施例中,资源过滤模块读取集群中的计算资源信息,定义变量DNavail={{c1,m1},{c2,m2},…,{cn,mn}},用于保存和管理当前所有节点中的空闲资源,其中,ci=(c1,c2,…,cn),mi=(m1,m2,…,mn),ci表示第i个节点的空闲CPU数,mi表示第i个节点的空闲内存大小。
综上所述,本发明第一个实施例所提供的一种面向异构存储的Spark任务动态迁移方法,将正在运行的任务动态地迁移至存储有操作数据的SSD节点,最大限度地将任务迁移到配置有SSD的计算节点上,从而可以充分利用SSD高速读写的特性,加快任务的执行速度,提升集群的服务质量,提升Spark应用程序的执行效率。
作为本发明的第二个实施例,如图4所示,本发明提供的一种面向异构存储的Spark任务迁移系统,该系统包括:
存储特性统计模块101:用于按照存储设备的存储特征将集群中所包含的节点分别保存至固态硬盘节点变量和机械硬盘节点变量。在本实施例中,首先获取集群中各节点所配置的存储设备的存储特征标识,按存储特征标识是SSD还是HDD将集群中所包含的节点分别保存至固态硬盘节点变量DNssd和机械硬盘节点变量DNhdd。其中,DNssd={…,dni,…},DNhdd={…,dnj,…},DNssd包含了集群中存储设备标识为SSD的节点,DNhdd包含了集群中存储设备标识为HDD的节点。
资源过滤模块102:用于监测集群中正在执行的任务中是否存在满足预设条件的目标任务,所述预设条件是指需要远程访问数据、任务完成进度小于预设阈值、且操作数据存储在已配置的非本地节点中。具体地,此时资源过滤模块102具体执行实现步骤如下S201-S204:
步骤S201:监测集群中正在执行的任务完成进度和任务的操作数据是否存储在本地节点(即任务是否需要远程读取数据)。
步骤S202:提取任务的操作数据存储在非本地节点、且任务完成进度小于预设阈值的任务保存至可迁移任务变量。本实施例中,首先判断并提取哪些任务需要进行远程读取数据、且任务完成进度小于预设阈值(该预设阈值根据实际需要进行设定)的任务,将这些任务信息保存至可迁移任务变量TASKremote中,从而通过步骤S202可确认这些任务是有必要做任务迁移操作的。
需要说明的是,任务完成进度小于预设阈值,说明该任务完成进度有限,可以考虑对其进行迁移。如果任务完成进度大于预设阈值,说明该任务已经快执行完成,则此时没有必要再对该任务进行迁移。
步骤S203:提取所述可迁移任务变量中,任务的操作数据存储在非本地节点、且所述非本地节点已配置的任务,将提取的所述任务作为计划迁移的任务保存至计划迁移任务变量。本实施例中,从可迁移任务变量TASKremote中判断并提取哪些任务的操作数据虽然不是存储在本地节点,但存储在其它已配置的节点中,将这些任务信息保存至迁移任务变量TASKtrue。
步骤S204:将存储有所述计划迁移的任务的操作数据的节点作为计划迁移的目标节点保存至计划迁移目标节点变量。本实施例中,计划迁移目标节点变量为DNtrue。
资源过滤模块102:还用于若监测到目标任务,则从已存储所述目标任务的操作数据的节点中,确定空闲资源满足对应任务的需求,且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并确定所述目标任务中与所述待迁移的目标节点对应的任务作为待迁移的任务。具体地,此时资源过滤模块102具体执行实现步骤如下S301-S302:
步骤S301:提取所述计划迁移的目标节点中,空闲资源满足对应任务需求、且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并保存至待迁移目标节点变量。在本实施例中,判断并提取DNtrue中空闲资源满足对应任务需求(利用变量DNavail进行判断)、且配置有SSD(利用固态硬盘节点变量DNssd进行判断)的节点,将这些节点作为待迁移的目标节点保存至待迁移目标节点变量DNneed。
步骤S302:提取所述计划迁移的任务中与所述待迁移的目标节点对应的任务作为待迁移的任务,并保存至待迁移任务变量。在本实施例中,提取TASKtrue中,与DNneed中的节点所对应的任务,将这些任务作为待迁移的任务,并保存至待迁移任务变量TASKnedd。
调度模块103:用于将所述待迁移的任务迁移至对应的所述待迁移的目标节点。调度模块103具体用于:循环提取所述待迁移任务变量中的任务、及所述待迁移目标节点变量中与所述任务对应的目标节点;向正在执行所述任务的节点发送任务迁移指令及所述任务对应的目标节点信息;所述正在执行所述任务的节点挂起所述任务,并将所述任务发送至所述对应的目标节点。
在本实施例中,调度模块103具体实现过程如下:调度模块获取资源过滤模块模块的待迁移任务变量TASKnedd和待迁移目标节点变量DNneed。循环提取TASKnedd中的任务及其对应的DNneed中保存的目标节点,定义变量ttrans和dntgt,分别用于保存前述的任务及对应的目标节点;向正在执行任务ttrans的节点发送对任务ttrans的迁移指令,同时指定其应迁移的目标节点dntgt;正在执行任务ttrans的节点在接收到任务ttrans的迁移指令后,挂起该任务ttrans并保存任务运行环境,然后将执行该任务的虚拟机进行压缩打包,最后将虚拟机包发送至目标节点dntgt。目标节点dntgt接收到虚拟机包后,将其解压,继续执行该任务。
资源过滤模块102,还用于动态监测各节点的空闲资源信息。在本实施例中,资源过滤模块读取集群中的计算资源信息,定义变量DNavail={{c1,m1},{c2,m2},…,{cn,mn}},用于保存和管理当前所有节点中的空闲资源,其中,ci=(c1,c2,…,cn),mi=(m1,m2,…,mn),ci表示第i个节点的空闲CPU数,mi表示第i个节点的空闲内存大小。
综上所述,本发明第二个实施例所提供的一种面向异构存储的Spark任务动态迁移系统,通过各模块,将正在运行的任务动态地迁移至存储有操作数据的SSD节点,最大限度地将任务迁移到配置有SSD的计算节点上,从而可以充分利用SSD高速读写的特性,加快任务的执行速度,提升集群的服务质量,提升Spark应用程序的执行效率。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
以上所述仅为本发明的较佳实施例而已,并不用以限制发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种面向异构存储的Spark任务迁移方法,其特征在于,所述方法包括:
按照存储设备的存储特征将集群中所包含的节点分别保存至固态硬盘节点变量和机械硬盘节点变量;
监测集群中正在执行的任务中是否存在满足预设条件的目标任务,所述预设条件是指需要远程访问数据、任务完成进度小于预设阈值、且操作数据存储在已配置的非本地节点中;
若监测到目标任务,则从已存储所述目标任务的操作数据的节点中,确定空闲资源满足对应任务的需求,且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并确定所述目标任务中与所述待迁移的目标节点对应的任务作为待迁移的任务;
将所述待迁移的任务迁移至对应的所述待迁移的目标节点;
其中,所述监测集群中正在执行的任务中是否存在满足预设条件的目标任务,所述预设条件是指需要远程访问数据、任务完成进度小于预设阈值、且操作数据存储在已配置的非本地节点中具体包括:
监测集群中正在执行的任务完成进度和任务的操作数据是否存储在本地节点;
提取任务的操作数据存储在非本地节点、且任务完成进度小于预设阈值的任务保存至可迁移任务变量;
提取所述可迁移任务变量中,任务的操作数据存储在非本地节点、且所述非本地节点已配置的任务,将提取的所述任务作为计划迁移的任务保存至计划迁移任务变量;
将存储有所述计划迁移的任务的操作数据的节点作为计划迁移的目标节点保存至计划迁移目标节点变量。
2.如权利要求1所述的方法,其特征在于,所述若监测到目标任务,则从已存储所述目标任务的操作数据的节点中,确定空闲资源满足对应任务的需求,且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并确定所述目标任务中与所述待迁移的目标节点对应的任务作为待迁移的任务具体包括:
提取所述计划迁移的目标节点中,空闲资源满足对应任务需求、且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并保存至待迁移目标节点变量;
提取所述计划迁移的任务中与所述待迁移的目标节点对应的任务作为待迁移的任务,并保存至待迁移任务变量。
3.如权利要求2所述的方法,其特征在于,所述将所述待迁移的任务迁移至对应的所述待迁移的目标节点具体包括:
循环提取所述待迁移任务变量中的任务、及所述待迁移目标节点变量中与所述任务对应的目标节点;
向正在执行所述任务的节点发送任务迁移指令及所述任务对应的目标节点信息;
所述正在执行所述任务的节点挂起所述任务,并将所述任务发送至所述对应的目标节点。
4.如权利要求1所述的方法,其特征在于,在所述若监测到目标任务,则从已存储所述目标任务的操作数据的节点中,确定空闲资源满足对应任务的需求,且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并确定所述目标任务中与所述待迁移的目标节点对应的任务作为待迁移的任务之前,所述方法还包括:
动态监测各节点的空闲资源信息。
5.一种面向异构存储的Spark任务迁移系统,其特征在于,所述系统包括:
存储特性统计模块,用于按照存储设备的存储特征将集群中所包含的节点分别保存至固态硬盘节点变量和机械硬盘节点变量;
资源过滤模块,用于监测集群中正在执行的任务中是否存在满足预设条件的目标任务,所述预设条件是指需要远程访问数据、任务完成进度小于预设阈值、且操作数据存储在已配置的非本地节点中;
所述资源过滤模块,还用于若监测到目标任务,则从已存储所述目标任务的操作数据的节点中,确定空闲资源满足对应任务的需求,且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并确定所述目标任务中与所述待迁移的目标节点对应的任务作为待迁移的任务;
调度模块,用于将所述待迁移的任务迁移至对应的所述待迁移的目标节点;
其中,所述资源过滤模块具体用于:
监测集群中正在执行的任务完成进度和任务的操作数据是否存储在本地节点;
提取任务的操作数据存储在非本地节点、且任务完成进度小于预设阈值的任务保存至可迁移任务变量;
提取所述可迁移任务变量中,任务的操作数据存储在非本地节点、且所述非本地节点已配置的任务,将提取的所述任务作为计划迁移的任务保存至计划迁移任务变量;
将存储有所述计划迁移的任务的操作数据的节点作为计划迁移的目标节点保存至计划迁移目标节点变量。
6.如权利要求5所述的系统,其特征在于,所述资源过滤模块具体还用于:
提取所述计划迁移的目标节点中,空闲资源满足对应任务需求、且属于所述固态硬盘节点变量的节点作为待迁移的目标节点,并保存至待迁移目标节点变量;
提取所述计划迁移的任务中与所述待迁移的目标节点对应的任务作为待迁移的任务,并保存至待迁移任务变量。
7.如权利要求6所述的系统,其特征在于,所述调度模块具体用于:
循环提取所述待迁移任务变量中的任务、及所述待迁移目标节点变量中与所述任务对应的目标节点;
向正在执行所述任务的节点发送任务迁移指令及所述任务对应的目标节点信息;
所述正在执行所述任务的节点挂起所述任务,并将所述任务发送至所述对应的目标节点。
8.如权利要求5所述的系统,其特征在于,所述资源过滤模块还用于动态监测各节点的空闲资源信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711388866.4A CN107967172B (zh) | 2017-12-21 | 2017-12-21 | 一种面向异构存储的Spark任务动态迁移方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711388866.4A CN107967172B (zh) | 2017-12-21 | 2017-12-21 | 一种面向异构存储的Spark任务动态迁移方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107967172A CN107967172A (zh) | 2018-04-27 |
CN107967172B true CN107967172B (zh) | 2022-01-11 |
Family
ID=61995648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711388866.4A Active CN107967172B (zh) | 2017-12-21 | 2017-12-21 | 一种面向异构存储的Spark任务动态迁移方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107967172B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992213B (zh) * | 2019-04-10 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 数据删除方法、系统、装置及计算机可读存储介质 |
CN110032339B (zh) * | 2019-04-12 | 2022-11-04 | 北京旷视科技有限公司 | 数据迁移方法、装置、系统、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521051A (zh) * | 2011-12-05 | 2012-06-27 | 中国联合网络通信集团有限公司 | 应用于图算法的Map Reduce系统中的任务调度方法、装置和系统 |
CN102831088A (zh) * | 2012-07-27 | 2012-12-19 | 国家超级计算深圳中心(深圳云计算中心) | 基于混合存储器的数据迁移方法和装置 |
CN105653524A (zh) * | 2014-11-10 | 2016-06-08 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置和系统 |
CN107391031A (zh) * | 2017-06-27 | 2017-11-24 | 北京邮电大学 | 一种基于混合存储的计算系统中的数据迁移方法及装置 |
CN107480071A (zh) * | 2017-08-25 | 2017-12-15 | 深圳大学 | 缓存数据迁移方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6065642B2 (ja) * | 2013-02-25 | 2017-01-25 | 富士通株式会社 | ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法 |
US9195401B2 (en) * | 2014-02-18 | 2015-11-24 | University Of Florida Research Foundation, Inc. | Method and apparatus for virtual machine live storage migration in heterogeneous storage environment |
-
2017
- 2017-12-21 CN CN201711388866.4A patent/CN107967172B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521051A (zh) * | 2011-12-05 | 2012-06-27 | 中国联合网络通信集团有限公司 | 应用于图算法的Map Reduce系统中的任务调度方法、装置和系统 |
CN102831088A (zh) * | 2012-07-27 | 2012-12-19 | 国家超级计算深圳中心(深圳云计算中心) | 基于混合存储器的数据迁移方法和装置 |
CN105653524A (zh) * | 2014-11-10 | 2016-06-08 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置和系统 |
CN107391031A (zh) * | 2017-06-27 | 2017-11-24 | 北京邮电大学 | 一种基于混合存储的计算系统中的数据迁移方法及装置 |
CN107480071A (zh) * | 2017-08-25 | 2017-12-15 | 深圳大学 | 缓存数据迁移方法及装置 |
Non-Patent Citations (2)
Title |
---|
EDM: an Endurance-aware Data Migration Scheme for Load Balancing in SSD Storage Clusters;Jiaxin Ou等;《2014 IEEE 28th International Parallel & Distributed Processing Symposium》;20140531;第788-796页 * |
面向固态硬盘的Spark数据持久化方法设计;陆克中等;《计算机研究与发展》;20170630;第54卷(第6期);第1381-1390页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107967172A (zh) | 2018-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9697053B2 (en) | System and method for managing excessive distribution of memory | |
US8516492B2 (en) | Soft partitions and load balancing | |
WO2017173927A1 (zh) | 分布式存储系统硬盘挂住故障检测、处理方法及装置 | |
US20140282540A1 (en) | Performant host selection for virtualization centers | |
CN107967172B (zh) | 一种面向异构存储的Spark任务动态迁移方法和系统 | |
CN102929769A (zh) | 一种基于代理服务的虚拟机内部数据采集方法 | |
CN112231098A (zh) | 任务处理方法、装置、设备及存储介质 | |
US20190286582A1 (en) | Method for processing client requests in a cluster system, a method and an apparatus for processing i/o according to the client requests | |
CN103927305A (zh) | 一种对内存溢出进行控制的方法和设备 | |
CN113326097A (zh) | 一种虚拟机限速方法、装置、设备和计算机存储介质 | |
US8543722B2 (en) | Message passing with queues and channels | |
US11150932B2 (en) | Virtual disk management for virtual disks accessed from compute only nodes | |
US10831525B2 (en) | Intelligent assignment of virtual machines to compute only or hyper converged nodes | |
US9177274B2 (en) | Queue with segments for task management | |
US20180196611A1 (en) | Highly scalable computational active ssd storage device | |
CN111562883B (zh) | 固态硬盘的缓存管理系统、方法、装置 | |
US20180004430A1 (en) | Chunk Monitoring | |
US20230325082A1 (en) | Method for setting up and expanding storage capacity of cloud without disruption of cloud services and electronic device employing method | |
US9244736B2 (en) | Thinning operating systems | |
US20230393782A1 (en) | Io request pipeline processing device, method and system, and storage medium | |
CN114610567A (zh) | 容器监控方法、网络设备及存储介质 | |
WO2019119332A1 (zh) | 一种面向异构存储的Spark任务动态迁移方法和系统 | |
CN107590003B (zh) | 一种Spark任务分配方法和系统 | |
CN108255820B (zh) | 分布式系统中数据入库的方法、装置以及电子设备 | |
CN104468701A (zh) | 一种用于异构存储集群系统的i/o服务质量维护方法 |
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 |