CN110618865A - Hadoop任务调度方法及装置 - Google Patents

Hadoop任务调度方法及装置 Download PDF

Info

Publication number
CN110618865A
CN110618865A CN201910889885.8A CN201910889885A CN110618865A CN 110618865 A CN110618865 A CN 110618865A CN 201910889885 A CN201910889885 A CN 201910889885A CN 110618865 A CN110618865 A CN 110618865A
Authority
CN
China
Prior art keywords
node
load
job
type
nodes
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
Application number
CN201910889885.8A
Other languages
English (en)
Other versions
CN110618865B (zh
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.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201910889885.8A priority Critical patent/CN110618865B/zh
Publication of CN110618865A publication Critical patent/CN110618865A/zh
Application granted granted Critical
Publication of CN110618865B publication Critical patent/CN110618865B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5027Allocation 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/505Allocation 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
    • 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/5061Partitioning or combining of resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供一种Hadoop任务调度方法及装置,其中,该方法包括以下步骤:获取各节点作业中已运行的多个任务的信息,根据各节点作业中已运行的多个任务的信息,确定各节点的作业类型;根据各节点的作业类型,预测各节点的负载;根据各节点的作业类型和各节点的负载,确定各节点的作业类型与各节点的适配性;根据各节点的作业类型与各节点的适配性,将作业中未运行的任务分配至各节点。该方案基于负载预测的Hadoop任务调度,可以提高Hadoop集群的资源利用率。

Description

Hadoop任务调度方法及装置
技术领域
本发明涉及Hadoop任务调度技术领域,特别涉及一种Hadoop任务调度方法及装置。
背景技术
Hadoop是一种开源的分布式存储和处理系统,用于大数据批处理作业,如大数据分析、网页索引等作业。Hadoop的默认作业调度算法是基于FIFO实现的,目前,Hadoop配置了多种作业调度器,主要包括FIFO(默认调度器)、Capacity Scheduler(计算能力调度器)和Fair Scheduler(公平调度器)。
集群中经常同时运行不同类型的作业,而这些不同类型的工作负载又有不同的资源需求,比如I/O密集型的工作负载会使用更多的I/O资源,而CPU密集型的工作负载会使用更多的计算资源。FIFO优先运行队列顶端相同作业的任务,这样可以减少整个系统的吞吐量,但是却严重限制了集群的处理能力,因为虽然相同作业的任务往往具有相同的特征,但是I/O和CPU资源却并没有被完全使用,而一个执行I/O的任务被阻塞就是因为调度器为了防止它在I/O操作完成前使用CPU。随着Hadoop集群中的用户数量和用户程序数的增加,FIFO调度器不能很好地利用集群资源,也不能满足不同应用程序的服务质量要求,严重时还会影响作业的正常运行。
Capacity Scheduler将资源按比例划分给各个队列,并设置了严格的约束条件防止资源独占情况发生,解决了多用户调度问题,但是该调度策略缺乏对负载均衡的支持,数据本地性不够理想。
Fair Scheduler尽量将资源平均的分配给所有的作业,如果用户提交新的作业,会释放一部分资源给新的作业,通过这样的方法保证所有的作业获得相等的资源量,但是数据的本地性不够理想,导致需要从其他节点获取数据,增加I/O资源使用以及网络带宽消耗。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种Hadoop任务调度方法,用以提高Hadoop集群资源利用率,该方法包括:
获取各节点作业中已运行的多个任务的信息,根据各节点作业中已运行的多个任务的信息,确定各节点的作业类型;
根据各节点的作业类型,预测各节点的负载;
根据各节点的作业类型和各节点的负载,确定各节点的作业类型与各节点的适配性;
根据各节点的作业类型与各节点的适配性,将作业中未运行的任务分配至各节点。
本发明实施例提供了一种Hadoop任务调度装置,用以提高Hadoop集群资源利用率,该装置包括:
作业类型确定模块,用于获取各节点作业中已运行的多个任务的信息,根据各节点作业中已运行的多个任务的信息,判断各节点的作业类型;
负载预测模块,用于根据各节点的作业类型,预测各节点的负载;
适配性确定模块,用于根据各节点的作业类型和各节点的负载,确定各节点的作业类型与各节点的适配性;
任务分配模块,用于根据各节点的作业类型与各节点的适配性,将作业中未运行的任务分配至各节点。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述Hadoop任务调度方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述Hadoop任务调度方法的计算机程序。
本发明实施例通过:根据各节点的作业中已运行的多个任务的信息,确定各节点的作业类型,平衡了不同类型的作业的资源需求;预测各节点的负载,确定各节点的作业类型与各节点的适配性,实现了节点中已用资源与需求资源之间的实时匹配;根据各节点的作业类型与各节点的适配性,将作业中未运行的任务分配至各节点,实现了作业中未运行任务的优化调度,这样的基于负载预测的Hadoop任务调度,提高了Hadoop集群的资源利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中Hadoop任务调度方法的流程示意图;
图2为本发明实施例中本发明实施例提出的方法与FIFO调度方法的作业运行时间对比示意图;
图3为本发明实施例中本发明实施例提出的方法与FIFO调度方法的TaskTracker的CPU使用率对比示意图;
图4为本发明实施例中本发明实施例提出的方法与FIFO调度方法的Hadoop的CPU使用率对比示意图;
图5为本发明实施例中Hadoop任务调度装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍本发实施例之前,首先对本发明实施例涉及的专业术语进行介绍。
1、MapReduce是一种编程模型,用于大规模数据集的并行运算。
2、Hadoop是基于MapReduce计算模型和Google文件系统所开发的用于处理分布式环境下大规模数据的开源框架,Hadoop框架既可以用来开发分布式计算应用也可以用来开发分布式存储应用。
3、JobTracker是Map-reduce框架的中心,需要与集群中的机器定时通信heartbeat,需要管理哪些程序应该运行在哪些机器上,需要管理所有job失败、重启等操作。
4、TaskTracker是Map-reduce集群中每台机器都有的一个部分,主要用于监视自己所在机器的资源情况。
接着,介绍发明人发现技术问题,提出Hadoop任务调度方法的思路。
目前,学术界对任务的并行化调度已经做了很多研究,针对任务调度人们提出了很多新的调度算法,如延迟调度,LATE调度,动态比例调度,截止约束调度等。延迟调度算法是一种通过使作业等待本地节点调度来提高数据本地性的技术,当节点需要运行一个任务时,如果下一个作业不能通过本地数据启动任务,那么这个作业就会被跳过而转向后续的作业。LATE调度算法通过计算所有任务的剩余时间来寻找慢任务从而提升Hadoop的处理速度,它选择出运行剩余时间超过其它节点的任务并将这些人物判定为慢任务。动态比例调度算法允许用户通过调整他们所花费的时间来控制资源的分配,这种方法通过判断作业和用户的优先级来做出更高效地资源分配,它给予用户根据作业的重要性和需求来自由调整资源分配的权限。截止约束算法保证只有满足截止条件的作业才能被分配资源并执行。
发明人经过大量的研究发现,现有的Hadoop任务调度方法中缺乏对负载异构性的考虑,在任务调度时均根据可用资源对每个节点配置固定数目的槽位,导致Hadoop集群资源利用率较低。由于发明人发现了以上技术问题,提出一种Hadoop任务调度方案,该方案主要包括:平衡节点中的不同类型的工作负载从而提高I/O密集型作业和CPU密集型作业的资源利用率。考虑到相同作业的任务具有相似的特征,通过深度学习历史作业样本数据得到作业特征,基于作业特征,预测节点的负载,然后根据负载情况对每个节点的槽位数目进行动态地调整,最后根据每个节点的槽位数目进行任务的分配。下面对本发明实施例提供的Hadoop任务调度方案进行详细介绍。
在本发明实施例中,提供了一种Hadoop任务调度方法,如图1所示,该方法包括:
步骤101:获取各节点作业中已运行的多个任务的信息,根据各节点作业中已运行的多个任务的信息,确定各节点的作业类型;
步骤102:根据各节点的作业类型,预测各节点的负载;
步骤103:根据各节点的作业类型和各节点的负载,确定各节点的作业类型与各节点的适配性;
步骤104:根据各节点的作业类型与各节点的适配性,将作业中未运行的任务分配至各节点。
由图1可知,本发明实施例通过:根据各节点的作业中已运行的多个任务的信息,确定各节点的作业类型,平衡了不同类型的作业的资源需求;预测各节点的负载,确定各节点的作业类型与各节点的适配性,实现了节点中已用资源与需求资源之间的实时匹配;根据各节点的作业类型与各节点的适配性,将作业中未运行的任务分配至各节点,实现了作业中未运行任务的优化调度,这样的基于负载预测的Hadoop任务调度,提高了Hadoop集群的资源利用率。
下面对本发明实施例提供Hadoop任务调度方法涉及的各个步骤进行详细介绍。
一、首先介绍上述步骤101。
各节点作业中已运行的多个任务的信息包括每个任务的输入速率、输出速率以及多个任务的完成时间,作业的类型包括CPU密集型和I/O密集型,CPU密集型作业在运行时的CPU使用率最大可能达到100%,I/O密集型作业的每个map任务都会在短时间内行大量的I/O操作,并且当reduce阶段开始时,其中的shuffle过程将需要大量的磁盘I/O。
实施例中,按照公式(1)判断任一节点的作业类型为CPU密集型:
按照公式(2)判断作业任一节点的作业类型为I/O密集型:
式中,其中,MIR为节点作业中已运行的任一任务的输入速率;MOR为节点作业中已运行的任一任务的输出速率;n为节点作业中已运行的任务个数;MTCT为节点作业中已运行的多个任务的完成时间;DIOR为节点的磁盘I/O速率。
对于一个map任务来说,磁盘的I/O操作主要包括Map阶段的输入和输出,当Hadoop集群稳定运行时,每个节点上都会有n个任务同步运行,这些任务共享磁盘的I/O的带宽。当n个map任务的输入速率(MIR)及输出速率(MOR)之和除以所有Map任务的完成时间(MTCT)小于磁盘的I/O速率时,将这类作业判断为CPU密集型,当n个map任务的输入速率(MIR)及输出速率(MOR)之和除以所有Map任务的完成时间(MTCT)大于或等于磁盘的I/O速率时,将这类作业判断为I/O密集型。
二、接着,介绍上述步骤102。
该步骤102基于作业的类型,预测出TaskTracker的负载并判断出对该TaskTracker的任务分配是否正确。
在任务分配阶段,调度器会考虑一系列影响任务分配决定的特征变量,调度器使用的特征如下:作业特征,包括作业的平均CPU使用率、平均磁盘I/O速率以及平均内存使用率,以及作业的Map任务和Reduce任务计数器等。
节点特征,包括静态特征值和动态特征值,节点的静态特征值基本保持不变,包括处理器的个数、处理速度、物理内存大小,交换内存大小,磁盘数、操作系统类型和版本等,节点的动态特征值主要指一些实时变化的信息,节点的动态特征是根据作业特征计算得到的,包括CPU的平均负载、CPU的使用率、磁盘I/O速率、运行的进程数、剩余内存的大小等。
实施例中,将各节点的作业类型输入预先训练生成的作业特征识别模型,输出多个作业特征,其中,作业特征识别模型是根据历史作业样本数据训练得到的。
可以按照如下方法预先训练生成作业特征识别模型:
获得样本数据,样本数据可以是根据大量的历史数据中获取的作业数据;
将样本数据划分为训练集、测试集和验证集;
利用训练集对作业特征识别模型进行训练;
利用测试集对训练好的作业特征识别模型进行测试,在该步骤中可以通过测试不断的调整模型参数以实现最优化;
利用验证集对测试好的作业特征识别模型进行验证,得到作业特征识别模型。
将作业类型输入上述训练生成的作业特征识别模型,输出多个作业特征,包括作业的平均CPU使用率、平均磁盘I/O速率、平均内存使用率以及作业的Map任务和Reduce任务计数器等。
实施例中,根据每一作业特征,计算每一节点在所述作业特征下的负载。
按照公式(3)计算每一节点在所述作业特征下的负载:
式中,Load(TTi,Fj)为每一节点在每一作业特征下的负载;TTi为节点;Fj为特征j;TotalFj为特征j的特征值;AvailableFj为特征j的可用值。
实施例中,根据每一节点在每一作业特征下的负载,计算每一节点在所有作业特征下的负载。
按照公式(4)计算每一节点在所有作业特征下的负载:
式中,Load(TTi)为每一节点在所有作业特征下的负载;M为作业特征的个数。
三、接着,介绍上述步骤103、步骤104。
实施例中,根据各节点的负载,确定所有节点的平均负载。
按照公式(5)计算在所有节点的平均负载:
式中,AvgLoad为所有节点的平均负载,N为节点的个数。
实施例中,根据各节点的负载和所述所有节点的平均负载,确定过载节点和未过载节点。
节点的负载大于或等于所有节点的平均负载时,判断该节点未过载;节点的负载小于所有节点的平均负载时,判断该节点过载。
实施例中,根据所述过载节点,减少过载节点中作业类型的最大允许槽位数;
节点过载时,认为该节点的任务分配不正确,减少该节点中作业类型的最大允许槽位数。
实施例中,根据所述未过载节点,增加未过载节点中作业类型的最大允许槽位数。
节点未过载时,认为该节点的任务分配正确,增加该节点中作业类型的最大允许槽位数。
实施例中,根据各节点中作业类型的最大允许槽位数,确定各节点的作业类型与各节点的适配性。
当节点中已运行的作业类型的槽位数小于该节点中作业类型的最大允许槽位数时,认为作业类型与该节点适配,将作业中未运行的任务分配给该节点。
当节点中已运行的作业类型的槽位数大于该节点中作业类型的最大允许槽位数时,认为作业类型与该节点不适配,表明该节点中已没有该类作业的剩余槽位,将作业中未运行的任务分配给有该类作业剩余槽位的其他节点,如果所有节点中都没有该类作业的剩余槽位,那么作业中未运行的任务继续在队列中等待,直至任一节点中有该类作业的剩余槽位,将作业中未运行的任务分配给该节点。
下面举一个例子,以便于理解本发明如何实施。
Hadoop集群为6台计算机通过以太网连接所建立,每个节点CPU为Intel的i7处理器,内存为8G。选取一台作为JobTracker,另外5台作为TaskTracker节点。所有的机器都安装Ubuntu 12.10操作系统,Hadoop选取目前较为稳定的Hadoop-1.0.4。
实验所使用的主要工作负载如下:
a)Word Count:对输入文件中每个单词出现的频率进行统计,输入文件大小为2.75GB。
b)PI值估算:生成一个随机的点并通过大量实验判断该点是否在圆内,生成的随机值数量为10000000000。
c)Word Count:对输入文件中每个单词出现的频率进行统计,输入文件大小为800MB。
d)Word Count:对输入文件中每个单词出现的频率进行统计,输入文件大小为1.2GB
e)PI值估算:生成一个随机的点并通过大量实验判断该点是否在圆内,生成的随机值数量为15000000000
Word Count作业为I/O密集型作业,涉及到大量数据的传输,PI值估算作业为CPU密集型,涉及到大量数据的计算。
为了验证本发明实施例方法的有效性,将本发明实施例提出的方法与FIFO调度方法进行了对比,表1为同样工作负载下本发明实施例提出的方法与FIFO调度方法的运行时间对比表,图2为同样工作负载下本发明实施例提出的方法与FIFO调度方法的运行时间对比图,由表1和图2可知本发明的调度方法可以减少系统的运行时间。
表1:运行时间对比表
图3为实验6中本发明实施例提出的方法与FIFO调度方法的TaskTracker上的CPU使用率对比图,从图3可以得出,本发明实施例提出的方法中TaskTracker上的CPU使用率高于FIFO调度方法中TaskTracker上的CPU的使用率。本发明实施例提出的方法中TaskTracker上的CPU使用率从953点时开始下降,主要是因为CPU密集型的作业已经基本完成。
图4为实验6中本发明实施例提出的方法与FIFO调度方法的JobTracker上的CPU使用率对比图,从图4中可以得出,本发明实施例提出的方法中JobTracker上的CPU使用率整体高于FIFO调度方法中JobTracker上的CPU的使用率。
基于同一发明构思,本发明实施例中还提供了一种Hadoop任务调度装置,如下面的实施例所述。由于Hadoop任务调度装置解决问题的原理与Hadoop任务调度方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是本发明实施例的Hadoop任务调度装置的一种结构框图,如图5所示,包括:
作业类型确定模块01,用于获取各节点作业中已运行的多个任务的信息,根据各节点作业中已运行的多个任务的信息,判断各节点的作业类型;
负载预测模块02,用于根据各节点的作业类型,预测各节点的负载;
适配性确定模块03,用于根据各节点的作业类型和各节点的负载,确定各节点的作业类型与各节点的适配性;
任务分配模块04,用于根据各节点的作业类型与各节点的适配性,将作业中未运行的任务分配至各节点。
实施例中,作业类型确定模块01进一步用于:
按照如下方式判断节点的作业类型为CPU密集型:
按照如下方式判断节点的作业类型为I/O密集型:
其中,MIR为节点作业中已运行的任一任务的输入速率;MOR为节点作业中已运行的任一任务的输出速率;n为节点作业中已运行的任务个数;MTCT为节点作业中已运行的多个任务的完成时间;DIOR为节点的磁盘I/O速率。
实施例中,负载预测模块02进一步用于:
将各节点的作业类型输入预先训练生成的作业特征识别模型,输出多个作业特征,其中,作业特征识别模型是根据历史作业样本数据训练得到的;
根据每一作业特征,计算每一节点在所述作业特征下的负载;
根据每一节点在每一作业特征下的负载,计算每一节点在所有作业特征下的负载。
实施例中,负载预测模块02按照如下方式计算每一节点在所有作业特征下的负载:
其中,
式中,Load(TTi)为每一节点在所有作业特征下的负载;Load(TTi,Fj)为每一节点在每一作业特征下的负载;TTi为节点;M为作业特征的个数;Fj为特征j;TotalFj为特征j的特征值;AvailableFj为特征j的可用值。
实施例中,所述适配性确定模块03进一步用于:
根据各节点的负载,确定所有节点的平均负载;
根据各节点的负载和所有节点的平均负载,确定过载节点和未过载节点;
根据过载节点,减少过载节点中作业类型的最大允许槽位数;
根据未过载节点,增加未过载节点中作业类型的最大允许槽位数;
根据各节点中作业类型的最大允许槽位数,确定各节点的作业类型与各节点的适配性。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述Hadoop任务调度方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述Hadoop任务调度方法的计算机程序。
本发明实施提供的技术方案的有益技术效果为:
(1)根据各节点的作业中已运行的多个任务的信息,确定各节点的作业类型,平衡了不同类型的作业的资源需求。
(2)预测各节点的负载,确定各节点的作业类型与各节点的适配性,实现了节点中已用资源与需求资源之间的实时匹配,可以提高Hadoop集群的资源利用率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种Hadoop任务调度方法,其特征在于,包括:
获取各节点作业中已运行的多个任务的信息,根据所述各节点作业中已运行的多个任务的信息,确定各节点的作业类型;
根据所述各节点的作业类型,预测各节点的负载;
根据所述各节点的作业类型和所述各节点的负载,确定各节点的作业类型与各节点的适配性;
根据所述各节点的作业类型与各节点的适配性,将作业中未运行的任务分配至各节点。
2.如权利要求1所述的Hadoop任务调度方法,其特征在于,根据所述各节点的作业类型,预测各节点的负载,包括:
将所述各节点的作业类型输入预先训练生成的作业特征识别模型,输出多个作业特征,其中,所述作业特征识别模型是根据历史作业样本数据训练得到的;
根据每一作业特征,计算每一节点在所述作业特征下的负载;
根据所述每一节点在每一作业特征下的负载,计算每一节点在所有作业特征下的负载。
3.如权利要求2所述的Hadoop任务调度方法,其特征在于,根据每一节点在每一作业特征下的负载,计算每一节点在所有作业特征下的负载,包括:按照如下方式计算每一节点在所有作业特征下的负载:
其中,
式中,Load(TTi)为每一节点在所有作业特征下的负载;Load(TTi,Fj)为每一节点在每一作业特征下的负载;TTi为节点;M为作业特征的个数;Fj为特征j;TotalFj为特征j的特征值;AvailableFj为特征j的可用值。
4.如权利要求1所述的Hadoop任务调度方法,其特征在于,根据所述各节点的作业类型和所述各节点的负载,确定各节点的作业类型与各节点的适配性,包括:
根据各节点的负载,确定所有节点的平均负载;
根据所述各节点的负载和所述所有节点的平均负载,确定过载节点和未过载节点;
根据所述过载节点,减少过载节点中作业类型的最大允许槽位数;
根据所述未过载节点,增加未过载节点中作业类型的最大允许槽位数;
根据各节点中作业类型的最大允许槽位数,确定各节点的作业类型与各节点的适配性。
5.如权利要求1所述的Hadoop任务调度方法,其特征在于,根据所述各节点作业中已运行的多个任务的信息,判断各节点的作业类型,包括:
按照如下方式判断节点的作业类型为CPU密集型:
按照如下方式判断节点的作业类型为I/O密集型:
其中,MIR为节点作业中已运行的任一任务的输入速率;MOR为节点作业中已运行的任一任务的输出速率;n为节点作业中已运行的任务个数;MTCT为节点作业中已运行的多个任务的完成时间;DIOR为节点的磁盘I/O速率。
6.一种Hadoop任务调度装置,其特征在于,包括:
作业类型确定模块,用于获取各节点作业中已运行的多个任务的信息,根据所述各节点作业中已运行的多个任务的信息,判断各节点的作业类型;
负载预测模块,用于根据所述各节点的作业类型,预测各节点的负载;
适配性确定模块,用于根据所述各节点的作业类型和所述各节点的负载,确定各节点的作业类型与各节点的适配性;
任务分配模块,用于根据所述各节点的作业类型与各节点的适配性,将作业中未运行的任务分配至各节点。
7.如权利要求6所述的Hadoop任务调度装置,其特征在于,所述负载预测模块具体用于:
将所述各节点的作业类型输入预先训练生成的作业特征识别模型,输出多个作业特征,其中,所述作业特征识别模型是根据历史作业样本数据训练得到的;
根据每一作业特征,计算每一节点在所述作业特征下的负载;
根据所述每一节点在每一作业特征下的负载,计算每一节点在所有作业特征下的负载。
8.如权利要求6所述的Hadoop任务调度装置,其特征在于,所述适配性确定模块具体用于:
根据各节点的负载,确定所有节点的平均负载;
根据所述各节点的负载和所述所有节点的平均负载,确定过载节点和未过载节点;
根据所述过载节点,减少过载节点中作业类型的最大允许槽位数;
根据所述未过载节点,增加未过载节点中作业类型的最大允许槽位数;
根据各节点中作业类型的最大允许槽位数,确定各节点的作业类型与各节点的适配性。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至5任一所述方法的计算机程序。
CN201910889885.8A 2019-09-20 2019-09-20 Hadoop任务调度方法及装置 Active CN110618865B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910889885.8A CN110618865B (zh) 2019-09-20 2019-09-20 Hadoop任务调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910889885.8A CN110618865B (zh) 2019-09-20 2019-09-20 Hadoop任务调度方法及装置

Publications (2)

Publication Number Publication Date
CN110618865A true CN110618865A (zh) 2019-12-27
CN110618865B CN110618865B (zh) 2022-07-05

Family

ID=68923662

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910889885.8A Active CN110618865B (zh) 2019-09-20 2019-09-20 Hadoop任务调度方法及装置

Country Status (1)

Country Link
CN (1) CN110618865B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254172A (zh) * 2020-02-11 2021-08-13 北京灵汐科技有限公司 一种任务调度的方法及装置
CN113391886A (zh) * 2020-03-11 2021-09-14 上海商汤智能科技有限公司 任务调度方法和装置
CN113962490A (zh) * 2021-11-30 2022-01-21 中国建设银行股份有限公司 边缘节点的可用性预测方法、设备、存储介质以及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761146A (zh) * 2014-01-06 2014-04-30 浪潮电子信息产业股份有限公司 一种MapReduce动态设定slots数量的方法
KR101661475B1 (ko) * 2015-06-10 2016-09-30 숭실대학교산학협력단 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템
CN106502792A (zh) * 2016-10-20 2017-03-15 华南理工大学 一种面向不同类型负载的多租户资源优化调度方法
CN109819037A (zh) * 2019-01-29 2019-05-28 武汉鸿瑞达信息技术有限公司 一种自适应计算与通信的方法和系统
CN110209494A (zh) * 2019-04-22 2019-09-06 西北大学 一种面向大数据的分布式任务调度方法及Hadoop集群

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761146A (zh) * 2014-01-06 2014-04-30 浪潮电子信息产业股份有限公司 一种MapReduce动态设定slots数量的方法
KR101661475B1 (ko) * 2015-06-10 2016-09-30 숭실대학교산학협력단 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템
CN106502792A (zh) * 2016-10-20 2017-03-15 华南理工大学 一种面向不同类型负载的多租户资源优化调度方法
CN109819037A (zh) * 2019-01-29 2019-05-28 武汉鸿瑞达信息技术有限公司 一种自适应计算与通信的方法和系统
CN110209494A (zh) * 2019-04-22 2019-09-06 西北大学 一种面向大数据的分布式任务调度方法及Hadoop集群

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254172A (zh) * 2020-02-11 2021-08-13 北京灵汐科技有限公司 一种任务调度的方法及装置
CN113391886A (zh) * 2020-03-11 2021-09-14 上海商汤智能科技有限公司 任务调度方法和装置
CN113962490A (zh) * 2021-11-30 2022-01-21 中国建设银行股份有限公司 边缘节点的可用性预测方法、设备、存储介质以及系统

Also Published As

Publication number Publication date
CN110618865B (zh) 2022-07-05

Similar Documents

Publication Publication Date Title
Kumar et al. Deadline constrained based dynamic load balancing algorithm with elasticity in cloud environment
US10089140B2 (en) Dynamically adaptive, resource aware system and method for scheduling
KR102628902B1 (ko) 계산 그래프들 프로세싱
Hussain et al. RALBA: a computation-aware load balancing scheduler for cloud computing
CN110618865B (zh) Hadoop任务调度方法及装置
US10432550B2 (en) Method and device for computing resource scheduling
Fang et al. Qos-aware scheduling of heterogeneous servers for inference in deep neural networks
Razavi et al. FA2: Fast, accurate autoscaling for serving deep learning inference with SLA guarantees
Soni et al. A bee colony based multi-objective load balancing technique for cloud computing environment
Huang et al. Novel heuristic speculative execution strategies in heterogeneous distributed environments
CN114579284B (zh) 任务调度方法及装置
Tran et al. Multi-stage resource-aware scheduling for data centers with heterogeneous servers
CN106874102A (zh) 基于容器工作性质的资源调度方法和装置
Kapil et al. Resource aware scheduling in Hadoop for heterogeneous workloads based on load estimation
Gąsior et al. A Sandpile cellular automata-based scheduler and load balancer
Yassir et al. Graph-based model and algorithm for minimising big data movement in a cloud environment
Ramesh et al. Machine learning for load balancing in cloud datacenters
Pakhrudin et al. Cloud service analysis using round-robin algorithm for quality-of-service aware task placement for internet of things services
Yazdanov Towards auto-scaling in the cloud: online resource allocation techniques
Berg A Principled Approach to Parallel Job Scheduling
Kumar et al. A QoS-based reactive auto scaler for cloud environment
Ghanavatinasab et al. SAF: simulated annealing fair scheduling for Hadoop Yarn clusters
Shao et al. A market-oriented heuristic algorithm for scheduling parallel applications in big data service platform
Dhok et al. Using pattern classification for task assignment in mapreduce
Tom et al. Dynamic Task scheduling Based on Burst Time requirement for cloud environment

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