CN107273200A - 一种针对异构存储的任务调度方法 - Google Patents
一种针对异构存储的任务调度方法 Download PDFInfo
- Publication number
- CN107273200A CN107273200A CN201710479197.5A CN201710479197A CN107273200A CN 107273200 A CN107273200 A CN 107273200A CN 201710479197 A CN201710479197 A CN 201710479197A CN 107273200 A CN107273200 A CN 107273200A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- tasks
- ssd
- priority
- 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.)
- Granted
Links
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
-
- 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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/61—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种针对异构存储的任务调度方法,包括:1)根据用户作业确定需要执行的各个任务;2)针对拥有计算资源的每一个节点,根据每一个所述任务的数据的存储介质,判断假使所述任务在所述节点上执行时所述任务的任务类型;3)根据各种任务类型的优先级,为所述拥有计算资源的每一个节点设置执行所述任务的优先顺序。
Description
技术领域
本发明涉及数据处理,尤其涉及数据存取的任务调度。
背景技术
随着计算机、手机、平板电脑等终端设备的普及,在人们对这些终端设备、以及互联网的使用过程中产生了极大量的数据,这些数据的集合作为可利用的信息资产又被称作为大数据(Big Data)。为了应对针对海量增长的大数据进行有效地捕捉、管理、和处理的需求,大数据处理平台应运而生。
大数据处理平台被用于根据当前集群中各个节点上的资源(例如CPU的空闲状况、内存的剩余状况)以及根据各个用户作业的服务质量(Quality of Service,QoS)的需求,在资源和作业之间做出最优的配置。换句话说,大数据处理平台所进行的上述调度由两部分组成:任务调度、以及资源分配。其中,“任务调度”指的是,根据分配给作业的节点集的空闲状况,在其中某节点存在空闲计算资源时,选择该作业中的一个合适的任务放在该节点上运行。而如何减少作业的执行时间是进行任务调度时所需要考虑的关键问题。
目前已存在一些现有技术提出了针对如何减少作业的执行时间的优化方案,其大体上被分为两类:
一类是利用读取本地磁盘的速度通常比读取远端磁盘的速度更快的这一特点,使得数据更多地在本地使用从而降低作业的执行时间。例如2010年,Matei Zaharia等人在Proceedings of the 5th European conference on Computer systems上发表的“Delayscheduling:a simple technique for achieving locality and fairness in clusterscheduling”,该方案在遇到请求任务的节点无法满足节点本地性要求的情况时,先不调度任务而是等待一段时间,若在等待的时间内出现了来自满足该节点本地性的计算节点,则将该任务调度所述计算节点,若没有等到,则为该任务随机地分配一个请求任务的节点。然而,这样的方案仅考虑了数据本地性,而没有考虑不同类型的存储设备对于输入输出密集的任务(I/O-intensive)的执行效率的影响,如本领域所知地,在相同条件下固态硬盘(Solid State Drive,SSD)的存取速度要优于机械硬盘(Hard Disk Drive,HDD),并且一般情况下SSD的价格高于HDD且SSD的使用寿命低于HDD。仅采用一种固定的存储设备,例如仅采用HDD或仅采用SSD往往难以满足实际使用时的存储需求。
另一类是利用将固态硬盘(Solid State Drive,SSD)和机械硬盘(Hard DiskDrive,HDD)结合在一起形成异构的存储环境,在异构环境中进行任务调度。例如,HDFS在Hadoop 2.3.0版本中引入的异构存储方式,根据存储设备的特征用来满足上层应用的不同存储需求,以其中的ONE_SSD为例,其将任务的一份副本存储在SSD上,将相同任务的另外两份副本存储在HDD上。然而,并没有一种针对这样的异构存储方式的专用任务调度方法。发明人发现,在针对上述ONE_SSD采用传统任务调度策略时,尽管已在SSD上存储了全部任务的副本(任务数量为900个),却仅有36.4%的任务数据是从SSD上读取的,剩余63.6%的任务数据均是从HDD上读取的。可见,虽然HDFS已经区分了异构存储资源,但是采用传统的任务调度方式无法完全地发挥异构存储资源所带来的优势。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种针对异构存储的任务调度方法,包括:
1)根据用户作业确定需要执行的各个任务;
2)针对拥有计算资源的每一个节点,根据每一个所述任务的数据的存储介质,判断假使所述任务在所述节点上执行时所述任务的任务类型;
3)根据各种任务类型的优先级,为所述拥有计算资源的每一个节点设置执行所述任务的优先顺序。
优选地,根据所述方法,其中步骤2)还包括:
2-1)判断所述拥有计算资源的节点上是否存储有所述任务的数据,以根据所述任务在所述节点上执行时是否为本地任务,判断假使所述任务在所述节点上执行时所述任务的任务类型。
优选地,根据所述方法,其中步骤3)包括:
3-1)针对所述拥有计算资源的节点,对所述各个任务中尚未被执行的任务进行以下判断:
根据确定的各种任务类型的优先级,判断出优先顺序最高的任务,以将所述任务作为所述节点的待执行任务;
3-2)执行所确定的待执行任务。
优选地,根据所述方法,其中步骤3)包括:
3-3)针对所述拥有计算资源的每一个节点,根据确定的各种任务类型的优先级,分别判断所述节点执行每一个所述任务的优先顺序;
3-4)由各个所述节点依据所述优先顺序执行所述各个任务。
优选地,根据所述方法,其中步骤2)包括:
2-2a)判断所述任务的数据存储在异构存储中的何种存储介质上,所述异构存储的存储介质包括:SSD、和HDD,以根据所述存储介质,判断假使所述任务在所述节点上执行时所述任务被划分为何种任务类型。
优选地,根据所述方法,其中所述各种任务类型的优先级包括:本地的SSD任务>本地的HDD任务>远端的HDD任务>远端的SSD任务。
优选地,根据所述方法,其中步骤2)包括:
2-2b)判断所述任务的数据存储在异构存储中的何种存储介质上,所述异构存储的存储介质包括:SSD、HDD、RAM_DISK、ARCHIVE,以根据所述存储介质,判断假使所述任务在所述节点上执行时所述任务被划分为何种任务类型。
优选地,根据所述方法,其中所述各种任务类型的优先级包括:本地RAM_DISK任务>本地的SSD任务>本地的HDD任务>远端的HDD任务>远端的SSD任务>远端RAM_DISK任务>ARCHIVE任务。
以及,一种计算机可读存储介质,其中存储有计算机程序,所述计算机程序在被执行时用于实现如前述任意一项所述的方法。
以及,一种用于针对异构存储的任务调度的***,包括:
处理器、和存储装置,
其中,所述存储装置用于存储计算机程序,所述计算机程序在被所述处理器执行时用于实现如前述任意一项所述的方法。
与现有技术相比,本发明的优点在于:
将数据所对应的存储介质特征添加到任务调度中,综合地考虑数据的本地性和其存储介质特征以对任务进行分类,并重新定义了不同类型任务的调度优先级,充分发挥了异构存储资源的优势,从而减少作业执行时间。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1(a)为本地任务以及远端任务在HDD上的执行时间的对比图;
图1(b)为本地任务以及远端任务在SSD上的执行时间的对比图;
图2(a)为采用Grep负载时其数据在HDFS中所使用的存储策略分别为Hot、ONE_SSD、ALL_SSD的执行时间的对比图;
图2(b)为为采用Grep负载时其数据在HDFS中所使用的存储策略分别为Hot、ONE_SSD、ALL_SSD的单个任务的平均执行时间,其中一个Grep负载由多个任务组成;
图3是现有的针对SSD+HDD异构存储的进行任务调度的示意图;
图4是根据本发明的一个实施例针对SSD+HDD异构存储的进行任务调度的示意图;
图5是根据本发明的一个实施例针对异构存储的任务调度方法的流程图;
图6是HDD任务的执行并行度对于任务执行效率的影响的仿真测试结果;
图7是根据本发明的方法与传统任务调度方式应用在异构存储上的性能对比测试图。
具体实施方式
下面结合附图和具体实施方式对本发明作详细说明。
发明人在研究了现有技术的基础上进行了以下实验。
首先,测试了本地任务以及远端任务在HDD和SSD上的执行时间。
图1(a)示出了在万兆网中本地任务以及远端任务在HDD上的执行时间。可以看到当数据存储在HDD上时,网络延迟对于远端数据读取的影响较小,本地执行的任务和远端执行的任务的平均时间基本上相同。相比之下,图1(b)示出了在万兆网中本地任务以及远端任务在SSD上的执行时间。可以看出,当数据存储在SSD上时,本地执行的任务所平均消耗时间要小于远端执行的任务所平均消耗的时间。
并且,发明人还通过测试比较了当全部采用HDD进行存储的“Hot”方案、采用将一份任务副本存储在SSD上并将两份任务副本存储在HDD上的“ONE_SSD”方案、全部采用SSD进行存储的“ALL_SSD”方案时任务的平均执行时间。图2(a)示出了采用Grep负载时“Hot”、“ONE_SSD”、和“ALL_SSD”的执行时间。可以看到,ONE_SSD的执行时间要远大于ALL_SSD,而只比Hot的执行时间降低了约13.33%。图2(b)示出了采用Grep负载时“Hot”、“ONE_SSD”、和“ALL_SSD”的执行单个任务的平均执行时间。参考图2(b),可以看出其所显示出的趋势与图2(a)基本吻合;可以肯定的是Hot下所有任务都是读取HDD上的数据,并且在ALL_SSD下所有任务都是读取SSD上的数据;而对于ONE_SSD而言,其任务的执行时间更接近于Hot,这是由于如背景技术中所述,仅有36.4%的任务数据是从SSD上读取的,这样的使用率并不能使得ONE_SSD这样的异构存储资源发挥其最大的效用,无法达到大幅降低任务的平均执行时间的目的,例如大幅低于Hot的执行时间而接近于ALL_SSD的执行时间。
图3示出了现有的异构存储方式进行任务调度的示意图。如图3所示,任务数据被存储在HDFS层中的各个从节点中,在需要执行所述任务时,从HDFS层中读取相应的任务数据,并在各个节点上执行所述任务。可以看到,在所述现有技术中,其在HDFS层中,采用异构的方式在各个节点上存储数据,因而可以区分数据是被存储在SSD上还是存储在HDD上,例如所述ONE_SSD。然而,在任务调度层中,其并不区分节点将要执行的任务的数据是存储在SSD上还是存储在HDD上,而是统一地将任务调度为在SSD上的任务或者统一地将任务调度为在HDD上的任务。
从图中可以看出,所述现有技术在任务调度阶段已经失去了关于数据的存储信息,因此无法区分任务所读取的数据是从哪种类型的存储设备上而来。并且,在异构的存储环境下,传统的任务调度方式只考虑了网络(数据本地性),而没有考虑存储介质对于任务执行效率的影响。发明人认为,由于任务调度层并未有针对性地考虑存储介质与数据本地性对任务执行效率的影响,因而出现了如前文中所述的在ONE_SSD的方式下仅有36.4%的任务数据是从SSD上读取的情况。
通过上述实验和分析,发明人提出了一种针对异构存储的任务调度方法,以期望使得诸如ONE_SSD这样的异构存储获得更优的效用。发明人认为,位于底层的HDFS用于存储信息,对于其所存储的任务数据而言,可以将任务传至较高的任务调度层进行处理。通过综合考虑存储介质、以及数据本地性来对任务进行分类,并且根据需要确定每类任务的执行优先级,例如基于各类任务在执行时的消耗时间,来调度各个任务的执行顺序,从而充分地利用异构存储中的高性能存储设备、提升任务的执行效率、降低作业的执行时间。
所述每类任务的执行优先级可以根据需要进行预先设定,也可以以效用优先的方式来设置优先级,例如参考如图1(a)和图1(b)所示出的本地任务以及远端任务在HDD上和SSD上的执行时间,为执行时间短的任务设置更高的优先级。
例如,针对“SSD+HDD”的异构存储方式,可以根据任务的本地性、以及任务数据所采用的存储介质以对任务进行分类。考虑到任务的本地性可以将任务区分为本地的任务以及远端的任务,其中,本地的任务指的是数据与计算资源在同一个节点上;远端的任务指的是数据与计算资源不在同一个节点上,需要通过远程读取的方式进行数据的读取,之后再进行计算。此外,以任务数据所采用的存储介质又可以将任务区分为SSD任务以及HDD任务。以HDFS中ONE_SSD的方式为例,在HDFS中存在三副本策略,即一份数据存在三个副本,并且可以使用不同的存储策略进行三副本的存储,因此一份数据的执行方式可以是上述任务的本地性与存储介质性的组合。
综合地进行考虑,则存在至少以下四种任务类型:i)本地的SSD任务;ii)远端的SSD任务;iii)本地的HDD任务;v)远端的HDD任务。
由于,每个任务都对应一份数据,而一份数据存在不同的执行方式,只有当为该份数据尽量选择执行时间较短的方式,才能使得作业的时间最小。
参考为执行时间短的任务设置更高的优先级的这一原则,可以将“本地的SSD任务”的优先级设置最高。
对于“远端的SSD任务”而言,由于SSD的使用代价较高(造价高、使用寿命有限),因此优选地将“远端的SSD任务”的优先级设置为最低,以增加SSD任务在本地执行的概率,提高SSD的效用。
参考图1(a)可知,“本地的HDD任务”与“远端的HDD任务”的执行时间相差不大,因此可以将这两者设置为具有相同的优先级。在本发明的一些实施例中,还可以将“本地的HDD任务”的优先级设置为高于“远端的HDD任务”的优先级,以避免不必要的开销,例如占用网络带宽。
基于上述分析,可以将上述四类任务的优选级设置为:
本地的SSD任务>本地的HDD任务>远端的HDD任务>远端的SSD任务。
图4示出了根据本发明的一个实施例的针对SSD+HDD异构存储的任务调度方法的示意图。该方案与图3的区别在于,在任务调度层中各个节点需要根据认为数据的存储介质的不同来区分出不同的任务类型,以根据不同的任务类型来确定任务在该节点上的执行顺序。换句话说,本发明是对HDFS的所在层存储的信息上调至任务调度层,根据不同任务之间的优先级来调度任务。
图5示出了根据本发明的一个实施例的针对异构存储的任务调度方法,参考图5,所述方法包括:
S1:根据用户作业确定需要执行的各个任务;
在针对异构存储进行任务调度时,首先需要根据接收到的用户作业来确定可以将该用户作业划分为哪些任务。在本发明中可以采用任意现有方式来对用户作业进行划分,以确定需要执行的各个任务。
可以在单作业场景下为每个作业分配相应的资源,使得作业享有整个大数据平台的资源,并且在多作业场景下分别为每个作业进行资源分配,例如采用公平调度的方式根据每个作业的权重进行资源的分配。
S2:针对拥有计算资源的每一个节点,判断假使每一个所述任务在所述节点上执行时所述任务被划分为何种任务类型;
如图4所示出的示例,在大数据处理平台中的节点可被用于存储数据,对于所述节点中拥有空闲计算资源的节点还可被用于执行上述由用户作业所划分出的任务。本发明可以采用任意现有方式来判断哪些节点拥有空闲的计算资源。
假设,每个从节点的资源都是固定的,则所有任务的调度都是在中心节点上进行,每当中心节点为某一个从节点分配一个任务,则该从节点上的空闲资源就会相应地减少。
在此步骤中,可以由大数据处理平台中的中心节点来确定除该中心节点之外的各个重节点中的哪些节点可被用于执行所述任务。并且,还可以由所述中心节点或相应的处理模块来评估假使每一个所述任务在某一个拥有计算资源的节点上执行时,所述任务将被划分为何种类型的任务,例如在SSD+HDD的异构存储形式中,可以根据任务的存储介质以及数据是否存储在本地而划分出四种任务类型:本地的SSD任务、本地的HDD任务、远端的HDD任务、远端的SSD任务。
在判断假使每一个所述任务在所述节点上执行时所述任务被划分为何种任务类型时,可以依据所述任务的数据存储在何种存储介质上,判断假使所述任务在所述节点上执行时被划分为诸如SSD任务、HDD任务等。发明人认为,若尽可能地让执行时间短的任务被调度执行,则可以防止由于节点的计算资源被某一执行速度过慢的任务所占用而无法被其他任务所使用而造成计算资源的浪费、从而增加用户作业的执行时间。例如,在不考虑耗材成本的情况下,可以优先执行耗间相对较短的SSD任务,再执行耗时相对较长的HDD任务。
并且,还可以判断所述拥有计算资源的节点上是否存储有所述任务的数据:若该节点上存储了针对所述任务的数据,则认为假设所述任务在该节点上执行时,可以从所述节点直接获取数据,因此可以将所述任务划分为本地的任务;相反地,若该节点上并未存储所述任务的数据,则认为假设所述任务在该节点上执行时,需要从其他节点调取针对所述任务的数据,应当将所述任务划分为远端的任务。如前文中所述,通常状况下,优先执行本地任务可以避免占用网络带宽、提高网络的使用效率,从而降低完成用户作业的耗时。
综合考虑上述两点,还可以在判断存储介质的同时判断任务所需数据的本地性,从而细化对任务的分类。例如,如前文中所述地,将在SSD+HDD的异构存储形式中,由拥有计算资源的节点所可能执行的任务划分为四类,并可以预先地将其优先级确定为:本地的SSD任务>本地的HDD任务>远端的HDD任务>远端的SSD任务。在进行判断时,可以针对每一个拥有计算资源的节点,分别判断假使每一个所述任务在该节点上执行时,可以将该任务确定为上述四种任务类型中的哪一种。
S3:根据所确定的各种任务类型的优先级,为所述拥有计算资源的每一个节点设置执行所述任务的优先顺序。
所述确定的各种任务类型的优先级,如前文所述其可以是由数据的存储介质所决定、可以由数据的本地性所决定、还可以由数据的存储介质和数据的本地性这两种共同决定。并且所述优先级既可以是预先确定存储在***中,也可以依据在步骤S2中所实际确定的各种任务类型来确定。
根据本发明的一个实施例,在执行步骤S3时,可以首先完成针对每一个拥有计算资源的节点确定其所执行各个任务的优先顺序。例如图4中所示,节点1优先执行本地的SSD任务1、次优先执行本地的HDD任务2、最低优先执行本地的HDD任务3,类似地也为节点2和节点3确定其所执行各个任务的优先顺序。
在已确定完所述优先顺序后,对用户作业所需执行的各个任务进行统一地调度。例如参考图4,在时刻1,由节点1执行任务1、节点2执行任务2、节点3执行任务3;在时刻2时,节点1已完成了任务1、并且节点2尚未完成任务2、节点3尚未完成任务3,则由节点1开始执行针对该节点处于第二优先级的任务2,这里可以由节点1和节点2共同完成任务2以加快处理速度,也可以由节点1和节点2分别单独地执行任务2以降低控制的复杂性;在时刻3时,节点3完成了任务3、并且节点1和节点2已完成了任务2,至此全部任务均已完成。
根据本发明的又一个实施例,在执行步骤S3时,还可以在由节点执行任务的同时进行任务调度。例如,针对拥有计算资源的节点,判断在当前状况下尚未被执行的任务中优先级最高的一个任务,以将所述任务作为该节点的待执行任务,并由该节点执行所述待执行任务。采用这种方式的优点在于,不必执行完整的排序算法,例如不必执行完整地冒泡算法而只需逐个地比较优先级的高低,在判断出优先级最高的一个任务后便可立即开始执行任务,从而进一步地加快用户作业的执行速度。相较于前一实施例,该方法的执行速度更快,然而对于任务数量较大的情况,对控制的要求较高。与前一实施例类似地,在本实施中也可以由多个节点共同完成一个任务以加快处理速度。
进一步地,在实际地执行上述各个任务时,由于节点存在并行地执行任务的情况,因此对于一个远程任务而言,可能存在该远程任务所需的数据内容已在一个本地节点被其他任务所调用的情况。从便捷的角度考虑,这里可以选择从包含所述远程任务所对应的数据最多的节点来读取所述远程任务的数据。
上述方式对于具有强并发能力的SSD而言尤为适用,而对于并发能力相对较差的存储介质,例如HDD,则需要具体情况具体分析。
对此,发明人对任务执行并行度对于任务执行效率的影响进行了测试。图6示出了HDD任务的执行并行度对于任务执行效率的影响。其中,Single表示一次性执行完相应的任务数量(并行度=任务数量)的场景,Multiple表示经过多轮执行完相应的任务数量(并行度为6)的场景。可以看出,在一定范围内,增加并行度相较于多轮执行还是存在优势(<48),但是超出该范围,增加并行度则会适得其反(>48)。
因此,在本发明中还可以针对HDD的远程任务,选择从包含所述远程任务所对应的数据最多的节点,统计该节点当前服务任务读取数据的个数N;如果N大于阈值X,则选择第二多的节点,并重复上述判断;如果N小于阈值X,则进行远程任务的数据读取。
通过上述实施例,可以看出,本发明根据数据的存储介质、数据的本地性,对在拥有计算资源的节点上可能执行的任务进行了类别的划分,并针对不同的类别确定不同的优先级,以确定每个拥有计算资源的节点上执行任务的优先顺序。
在上述实施例中,以SSD+HDD的异构存储形式为例。然而应当理解,本发明中还可以针对其他的异构存储形式进行任务调度,例如,目前HDFS所支持的四种存储介质包括:SSD、HDD、RAM_DISK、ARCHIVE。针对所述四种存储设备的异构存储形式,还可能存在七种任务类型:本地RAM_DISK任务、本地的SSD任务、本地的HDD任务、远端的HDD任务、远端的SSD任务、远端RAM_DISK任务、ARCHIVE任务,其中,ARCHIVE指的是采用高密度存储数据的介质来解决数据量的容量扩增的问题,一般用于数据的归档和备份,因此在任务类别中可以不区分针对ARCHIVE的任务是属于本地任务还是远端任务。
与前文中类似地,由于RAM_DISK的并发能力优于SSD致使其处理速度比SSD更快,因此可以将所述七种任务的优先级确定为:
本地RAM_DISK任务>本地的SSD任务>本地的HDD任务>远端的HDD任务>远端的SSD任务>远端RAM_DISK任务>ARCHIVE任务。
为了验证本发明的效果,发明人进行了测试实验,对比了本发明与传统任务调度方式应用在异构存储上的性能,其中分别比较了在使用Grep(~600GB)、Sort(~400GB)、Wordcount(~500GB)三种负载时的用户作业的平均执行时间。参考图7可以看出,在采用HDFS I/O-intensive负载Grep时,本发明的用户作业的执行时间相比于传统任务调度策略减少了73.6%;对于Shuffle-intensive负载Sort,本发明的用户作业的执行时间相比于传统任务调度策略减少了4.2%;对于CPU-intensive负载Wordcount,本发明的用户作业的执行时间相比于传统任务调度策略减少了6.5%。
综上所述,本发明所提出的基于异构存储的任务调度方法,将数据所对应的存储介质特征添加到任务调度中,综合地考虑数据的本地性和其存储介质特征以对任务进行分类,并重新定义了不同类型任务的调度优先级,充分发挥了异构存储资源的优势,从而减少作业执行时间。
需要说明的是,上述实施例中介绍的各个步骤并非都是必须的,本领域技术人员可以根据实际需要进行适当的取舍、替换、修改等。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管上文参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种针对异构存储的任务调度方法,包括:
1)根据用户作业确定需要执行的各个任务;
2)针对拥有计算资源的每一个节点,根据每一个所述任务的数据的存储介质,判断假使所述任务在所述节点上执行时所述任务的任务类型;
3)根据各种任务类型的优先级,为所述拥有计算资源的每一个节点设置执行所述任务的优先顺序。
2.根据权利要求1所述的方法,其中步骤2)还包括:
2-1)判断所述拥有计算资源的节点上是否存储有所述任务的数据,以根据所述任务在所述节点上执行时是否为本地任务,判断假使所述任务在所述节点上执行时所述任务的任务类型。
3.根据权利要求2所述的方法,其中步骤3)包括:
3-1)针对所述拥有计算资源的节点,对所述各个任务中尚未被执行的任务进行以下判断:
根据确定的各种任务类型的优先级,判断出优先顺序最高的任务,以将所述任务作为所述节点的待执行任务;
3-2)执行所确定的待执行任务。
4.根据权利要求2所述的方法,其中步骤3)包括:
3-3)针对所述拥有计算资源的每一个节点,根据确定的各种任务类型的优先级,分别判断所述节点执行每一个所述任务的优先顺序;
3-4)由各个所述节点依据所述优先顺序执行所述各个任务。
5.根据权利要求1-4中任意一项所述的方法,其中步骤2)包括:
2-2a)判断所述任务的数据存储在异构存储中的何种存储介质上,所述异构存储的存储介质包括:SSD、和HDD,以根据所述存储介质,判断假使所述任务在所述节点上执行时所述任务被划分为何种任务类型。
6.根据权利要求5所述的方法,其中所述各种任务类型的优先级包括:本地的SSD任务>本地的HDD任务>远端的HDD任务>远端的SSD任务。
7.根据权利要求1-4中任意一项所述的方法,其中步骤2)包括:
2-2b)判断所述任务的数据存储在异构存储中的何种存储介质上,所述异构存储的存储介质包括:SSD、HDD、RAM_DISK、ARCHIVE,以根据所述存储介质,判断假使所述任务在所述节点上执行时所述任务被划分为何种任务类型。
8.根据权利要求7所述的方法,其中所述各种任务类型的优先级包括:本地RAM_DISK任务>本地的SSD任务>本地的HDD任务>远端的HDD任务>远端的SSD任务>远端RAM_DISK任务>ARCHIVE任务。
9.一种计算机可读存储介质,其中存储有计算机程序,所述计算机程序在被执行时用于实现如权利要求1-8中任意一项所述的方法。
10.一种用于针对异构存储的任务调度的***,包括:
处理器、和存储装置,
其中,所述存储装置用于存储计算机程序,所述计算机程序在被所述处理器执行时用于实现如权利要求1-8中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710479197.5A CN107273200B (zh) | 2017-06-22 | 2017-06-22 | 一种针对异构存储的任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710479197.5A CN107273200B (zh) | 2017-06-22 | 2017-06-22 | 一种针对异构存储的任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107273200A true CN107273200A (zh) | 2017-10-20 |
CN107273200B CN107273200B (zh) | 2020-03-17 |
Family
ID=60069292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710479197.5A Active CN107273200B (zh) | 2017-06-22 | 2017-06-22 | 一种针对异构存储的任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107273200B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109450979A (zh) * | 2018-10-10 | 2019-03-08 | 广州华多网络科技有限公司 | 一种分布式动态任务执行方法及主服务节点端 |
CN109542600A (zh) * | 2018-11-15 | 2019-03-29 | 口碑(上海)信息技术有限公司 | 分布式任务调度***及方法 |
CN110070289A (zh) * | 2019-04-19 | 2019-07-30 | 苏州达家迎信息技术有限公司 | 任务分配方法、装置、设备及存储介质 |
CN110109752A (zh) * | 2019-04-12 | 2019-08-09 | 平安普惠企业管理有限公司 | 一种任务分配方法、装置、电子设备及存储介质 |
CN112256418A (zh) * | 2020-10-26 | 2021-01-22 | 清华大学深圳国际研究生院 | 一种大数据任务调度方法 |
CN117112180A (zh) * | 2023-09-27 | 2023-11-24 | 广州有机云计算有限责任公司 | 一种基于任务的集群自动化控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106152A (zh) * | 2012-12-13 | 2013-05-15 | 深圳先进技术研究院 | 基于层次存储介质的数据调度方法 |
US20160147573A1 (en) * | 2014-11-24 | 2016-05-26 | Samsung Electronics Co., Ltd. | Computing system with heterogeneous storage and process mechanism and method of operation thereof |
CN105760220A (zh) * | 2016-01-29 | 2016-07-13 | 湖南大学 | 一种基于混合内存的任务与数据调度方法和装置 |
KR101730508B1 (ko) * | 2015-12-21 | 2017-04-26 | 서울대학교산학협력단 | 스파크 스트리밍 기반 클라우드 서버에서 선별적 i/o 요청 처리 방법 및 장치 |
-
2017
- 2017-06-22 CN CN201710479197.5A patent/CN107273200B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106152A (zh) * | 2012-12-13 | 2013-05-15 | 深圳先进技术研究院 | 基于层次存储介质的数据调度方法 |
US20160147573A1 (en) * | 2014-11-24 | 2016-05-26 | Samsung Electronics Co., Ltd. | Computing system with heterogeneous storage and process mechanism and method of operation thereof |
KR101730508B1 (ko) * | 2015-12-21 | 2017-04-26 | 서울대학교산학협력단 | 스파크 스트리밍 기반 클라우드 서버에서 선별적 i/o 요청 처리 방법 및 장치 |
CN105760220A (zh) * | 2016-01-29 | 2016-07-13 | 湖南大学 | 一种基于混合内存的任务与数据调度方法和装置 |
Non-Patent Citations (2)
Title |
---|
KRISH K.R.等: "hatS: A Heterogeneity-Aware Tiered Storage for Hadoop", 《2014 14TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND GRID COMPUTING》 * |
徐佳俊等: "基于Spark的异构集群调度策略研究", 《计算机科学与应用》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109450979A (zh) * | 2018-10-10 | 2019-03-08 | 广州华多网络科技有限公司 | 一种分布式动态任务执行方法及主服务节点端 |
CN109450979B (zh) * | 2018-10-10 | 2020-12-04 | 广州华多网络科技有限公司 | 一种分布式动态任务执行方法及相关装置 |
CN109542600A (zh) * | 2018-11-15 | 2019-03-29 | 口碑(上海)信息技术有限公司 | 分布式任务调度***及方法 |
CN109542600B (zh) * | 2018-11-15 | 2020-12-25 | 口碑(上海)信息技术有限公司 | 分布式任务调度***及方法 |
CN110109752A (zh) * | 2019-04-12 | 2019-08-09 | 平安普惠企业管理有限公司 | 一种任务分配方法、装置、电子设备及存储介质 |
CN110070289A (zh) * | 2019-04-19 | 2019-07-30 | 苏州达家迎信息技术有限公司 | 任务分配方法、装置、设备及存储介质 |
CN110070289B (zh) * | 2019-04-19 | 2023-03-24 | 苏州达家迎信息技术有限公司 | 任务分配方法、装置、设备及存储介质 |
CN112256418A (zh) * | 2020-10-26 | 2021-01-22 | 清华大学深圳国际研究生院 | 一种大数据任务调度方法 |
CN112256418B (zh) * | 2020-10-26 | 2023-10-24 | 清华大学深圳国际研究生院 | 一种大数据任务调度方法 |
CN117112180A (zh) * | 2023-09-27 | 2023-11-24 | 广州有机云计算有限责任公司 | 一种基于任务的集群自动化控制方法 |
CN117112180B (zh) * | 2023-09-27 | 2024-03-29 | 广州有机云计算有限责任公司 | 一种基于任务的集群自动化控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107273200B (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107273200A (zh) | 一种针对异构存储的任务调度方法 | |
CN103516536B (zh) | 基于线程数量限制的服务器业务请求并行处理方法及*** | |
CN111399989B (zh) | 一种面向容器云的任务抢占调度方法及*** | |
US12014248B2 (en) | Machine learning performance and workload management | |
CN107391268A (zh) | 服务请求处理方法及装置 | |
CN102541460B (zh) | 一种多磁盘场景下的磁盘管理方法和设备 | |
CN106095531B (zh) | 云平台中一种基于等级和物理机负载的虚拟机调度方法 | |
CN111506404A (zh) | 一种基于Kubernetes的共享GPU调度方法 | |
CN109408229A (zh) | 一种调度方法及装置 | |
CN107241281A (zh) | 一种数据处理方法及其装置 | |
CN103927225A (zh) | 一种多核心架构的互联网信息处理优化方法 | |
CN106095940A (zh) | 一种基于任务负载的数据迁移方法 | |
WO2023109015A1 (zh) | 一种容器应用调度方法、装置、电子设备及存储介质 | |
CN108897626A (zh) | 一种资源调度方法及服务器 | |
CN107515781B (zh) | 一种基于多处理器的确定性任务调度及负载均衡*** | |
CN113946431B (zh) | 一种资源调度方法、***、介质及计算设备 | |
CN106528288A (zh) | 一种资源管理方法、装置和*** | |
CN103176849A (zh) | 一种基于资源分类的虚拟机集群的部署方法 | |
CN107515784A (zh) | 一种在分布式***中计算资源的方法与设备 | |
CN108694083B (zh) | 一种服务器的数据处理方法和装置 | |
CN109799956A (zh) | 一种存储控制器及io请求处理方法 | |
US10740332B2 (en) | Memory-aware plan negotiation in query concurrency control | |
Zimmer et al. | A multi-faceted approach to job placement for improved performance on extreme-scale systems | |
CN104156505B (zh) | 一种基于用户行为分析的Hadoop集群作业调度方法及装置 | |
CN106537323B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |