一种基于HADOOP的车联网内存感知实时作业调度方法.pdf

上传人:a*** 文档编号:6203500 上传时间:2019-05-20 格式:PDF 页数:11 大小:778.37KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510726818.6

申请日:

2015.10.30

公开号:

CN105373426A

公开日:

2016.03.02

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/48申请日:20151030|||公开

IPC分类号:

G06F9/48; G06F9/50

主分类号:

G06F9/48

申请人:

哈尔滨工程大学

发明人:

张国印; 高伟; 卢文祥; 颜廷帅; 吴艳霞

地址:

150001黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室

优先权:

2015104477353 2015.07.28 CN

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明属于云计算领域,具体涉及一种满足实时性好,资源利用率高的要求的基于Hadoop的车联网内存感知实时作业调度方法。本发明包括:(1)用户将作业提交到主节点,主节点中的资源管理器对作业进行初始化操作,之后将作业交给资源分配中心进行可调度性判断;(2)资源分配中心根据集群负载情况和作业截止期为其分配资源;(3)将作业放入到队列中,等待从节点中的心跳包,将作业中的任务分配到从节点上执行。通过该方法能够满足车联网作业的实时性要求,同时方法中设计的抢占策略和资源分配中心能有效的提高资源的使用效率,并平衡节点间资源的分配。

权利要求书

1.一种基于Hadoop的车联网内存感知实时作业调度方法,其特征在于,包括如下步骤:
(1)用户将作业提交到主节点,主节点中的资源管理器对作业进行初始化操作,之后将
作业交给资源分配中心进行可调度性判断;
(2)资源分配中心根据集群负载情况和作业截止期为其分配资源;
(3)将作业放入到队列中,等待从节点中的心跳包,将作业中的任务分配到从节点上执
行;
所述步骤(1)中的资源分配中心在对集群资源和作业所需资源进行量化时,以内存资源
为标准;对于集群中的节点,通过内存来描述其可用的资源量;任务对资源的需求同样采用
内存资源进行量化;
所述步骤(1)中可调度性通过一个最小内存资源评估模型进行判断,通过最小内存资源
评估模型能够判断出作业在Deadline前完成所需的最小资源量;
所述资源分配中心对含有过剩资源的作业采用红黑树进行管理;红黑树中每个节点表示
一个含有过剩资源的作业,节点的关键字为作业的过剩资源量;在作业的抢占、开始和结束
过程中,都需要通过修改红黑树来管理含有过剩资源的作业;
所述步骤(2)中在为作业分配资源时包括两种方案:当系统资源充足时,资源分配中心
最大资源分配策略为作业分配资源;当系统资源紧缺时,按照最小资源分配策略为作业分配
资源;在资源紧缺时,又分为非抢占和抢占两种情况;
所述的最小资源评估模型,以内存作为资源量化的标准,在计算最小资源量时,通过拉
格朗日乘数法求得保证作业在Deadline前完成时Map和Reduce阶段所需的最小资源量;
在抢占过程中采用双层抢占策略:首先在所有含有过剩资源的作业中选则具有最大过剩
资源量的作业;其次根据作业中任务的运行进度,选则进度最慢的任务进行强。

说明书

一种基于Hadoop的车联网内存感知实时作业调度方法

技术领域

本发明属于云计算领域,具体涉及一种满足实时性好,资源利用率高的要求的基于Hadoop
的车联网内存感知实时作业调度方法。

背景技术

车辆网系统是物联网、云计算与车队系统相互结合的产物。车辆网系统以Hadoop2.0云
计算平台为基础进行开发,要能够对处理公共用户和车队管理人员提交的作业请求进行高效
处理,其服务对象为车队的管理人员和公共用户。当管理人员或用户提交作业时,数据中心
根据一定的调度算法对作业进行处理。车辆网系统中的作业属于内存密集型作业,其对实时
性有着较高的要求。因此,需要一个能同时兼顾内存分配和作业实时性的调度算法,来满足
车联网中的作业调度要求。

现有的调度算法存在很多的缺陷。针对于Hadoop中MapReduce计算模型的作业处理方式,
Anyawu等人提出了DeadlineConstraintScheduler算法。该算法通过作业计算代价模型来
估计一个作业在MapReduce中的运行时间,通过该模型计算出的数值与Deadline进行比较判
断作业是否能在Deadline之前完成。算法中每次对作业进行资源分配,都会为其分配所需资
源的最小值,这样虽然能够保证作业在截止期前完成,但是当系统资源充足时,无法使系统
资源得到充分的利用。针对这一问题兰州大学的周源提出了基于抢占模式的(Preemptive
DeadlineConstraintScheduler(PDCS)算法。PDCS算法中通过在CS(ComputerSystem,
简称CS)中加入抢占模式,从而使得在系统资源充沛时作业可以分配到更多的资源,当系统
资源出现紧缺的时候通过抢占使得当前作业能够获取足够的资源。然而PDCS算法虽然解决了
DCS算法中资源利用不充分的问题,但是在资源抢占的过程中单纯从满足当前作业需求的角
度出发,并没有考虑到整个集群的负载情况,因此这可能导致多次抢占的发生,进而使得集
群整体性能下降。

为解决这一问题,我们采用内存感知、抢占式的方式优化资源配置。当用户提出作业请
求时,通过资源分配中心选择最小资源量的资源分配方式,再通过双层抢占策略抢占资源。
如果未同时使用最小资源评估模型和双层抢占策略,则不是本专利描述的方法。

发明内容

本发明的目的在于提供一种在Hadoop2.0平台架构下,满足车联网的需求,设计合适的
资源调度机制和抢占策略,提高资源的利用率,满足实时性的要求的基于Hadoop的车联网内
存感知实时作业调度方法。

本发明的目的是这样实现的:

(1)用户将作业提交到主节点,主节点中的资源管理器对作业进行初始化操作,之后将
作业交给资源分配中心进行可调度性判断;

(2)资源分配中心根据集群负载情况和作业截止期为其分配资源;

(3)将作业放入到队列中,等待从节点中的心跳包,将作业中的任务分配到从节点上执
行;

所述步骤(1)中的资源分配中心在对集群资源和作业所需资源进行量化时,以内存资源
为标准;对于集群中的节点,通过内存来描述其可用的资源量;任务对资源的需求同样采用
内存资源进行量化;

所述步骤(1)中可调度性通过一个最小内存资源评估模型进行判断,通过最小内存资源
评估模型能够判断出作业在Deadline前完成所需的最小资源量;

所述资源分配中心对含有过剩资源的作业采用红黑树进行管理;红黑树中每个节点表示
一个含有过剩资源的作业,节点的关键字为作业的过剩资源量;在作业的抢占、开始和结束
过程中,都需要通过修改红黑树来管理含有过剩资源的作业;

所述步骤(2)中在为作业分配资源时包括两种方案:当系统资源充足时,资源分配中心
最大资源分配策略为作业分配资源;当系统资源紧缺时,按照最小资源分配策略为作业分配
资源;在资源紧缺时,又分为非抢占和抢占两种情况;

所述的最小资源评估模型,以内存作为资源量化的标准,在计算最小资源量时,通过拉
格朗日乘数法求得保证作业在Deadline前完成时Map和Reduce阶段所需的最小资源量;

在抢占过程中采用双层抢占策略:首先在所有含有过剩资源的作业中选则具有最大过剩
资源量的作业;其次根据作业中任务的运行进度,选则进度最慢的任务进行强。

本发明的有益效果在于:

本发明是一种适合于车联网系统的调度方法——基于内存感知实时调度算法,发明中充
分考虑到Hadoop2.0中资源表示模型和作业调度模型的特点,并结合车联网中作业对资源和
响应时间的要求。通过该方法能够满足车联网作业的实时性要求,同时方法中设计的抢占策
略和资源分配中心能有效的提高资源的使用效率,并平衡节点间资源的分配。

附图说明

图1可调度性判断流程;

图2抢占过程描述图。

具体实施方式

下面结合附图对本发明做进一步描述。

联网系统的Hadoop内存感知实时作业调度器。本发明包括:在调度器中设计资源分配
中心模块,负责作业可调度性分析、作业管理和资源分配工作;根据Hadoop2.0中资源的表
示模型和分配模型,方法中设计最小资源评估模型,保证作业的实时性;为了提高系统资源
利用率,方法中设计了双层抢占策略,当系统资源发生紧缺时根据作业和任务抢占策略选择
被抢占的资源。该调度器能够满足车联网作业的实时性要求,同时调度器中设计的抢占策略
和资源分配中心能有效的提高资源的使用效率,并能够平衡节点间资源的分配。

在Hadoop2.0平台架构下,满足车联网的需求,设计合适的资源调度机制和抢占策略,
提高资源的利用率,满足实时性的要求。

本发明的技术方案按照以下方式实现:

(1)用户将作业提交到主节点,主节点中的资源管理器(ResourceManager,简称RM)
对作业进行初始化操作,之后将作业交给资源分配中心进行可调度性判断。

(2)资源分配中心根据集群负载情况和作业截止期(Deadlin)为其分配资源。

(3)将作业放入到队列中,等待从节点中的心跳包,将作业中的任务分配到从节点上执
行。

步骤(1)中的资源分配中心在对集群资源和作业所需资源进行量化时,以内存资源为标
准。对于集群中的节点,通过内存来描述其可用的资源量。任务对资源的需求同样采用内存
资源进行量化。

步骤(1)中作业可调度性通过一个最小内存资源评估模型进行判断,通过最小内存资源评
估模型能够判断出作业在Deadline前完成所需的最小资源量。

资源分配中心对含有过剩资源的作业采用红黑树进行管理。红黑树中每个节点表示一个
含有过剩资源的作业,节点的关键字为作业的过剩资源量。在作业的抢占、开始和结束过程
中,都需要通过修改红黑树来管理含有过剩资源的作业。

步骤(2)中在为作业分配资源时包括两种方案:当系统资源充足时,资源分配中心最大资
源分配策略为作业分配资源;当系统资源紧缺时,按照最小资源分配策略为作业分配资源。
在资源紧缺时,又分为非抢占和抢占两种情况。

在设计最小资源评估模型时,以内存作为资源量化的标准,避免动态资源表示模型带来
的复杂性。在计算最小资源量时,通过拉格朗日乘数法求得保证作业在Deadline前完成时
Map和Reduce阶段所需的最小资源量。

在抢占过程中采用双层抢占策略:首先在所有含有过剩资源的作业中选则具有最大过剩
资源量的作业;其次根据作业中任务的运行进度,选则进度最慢的任务进行强。

正对用户作业请求,进行可调度性判断。

作业可调度性判断过程如图1所示。用户提交作业Ji到RM(ResourceManager,简称RM,
资源管理器)中,RM对作业进行基本的初始化操作,然后将作业交给MRScheduler(Memory
WareReal-TimeScheduler,简称MRScheduler,内存感知实时作业调度器)进行处理。
MRScheduler收到作业后,首先交给资源分配中心(RAC)进行可调度性的判断。RAC会判断
在资源充足的情况下,能否使得作业Ji在其提交的Di前完成,如果能则对作业Ji进行进一
步的判断,否则向客户(Client)返回拒绝信息,提示修改截止期(Deadline)值。当接收
作业Ji后,判断当前集群中资源的使用情况是否满足作业Ji中Map任务对资源的最小需求
如果满足则接收作业,否则同样会向用户拒绝接收作业。当作业Ji的Map任务执行结
束后,会判断当前集群中的资源是否能够满足其Reduce任务所需的最小资源需求如
果能够满足则作业继续执行,否则提示用户作业执行失败。

针对可调度性作业,执行资源分配策略

本专利设计了PreemptionAssign分配策略。为了提高集群资源使用效率,MRScheduler
算法中先为Map任务分配作业,当Map任务执行结束后再为Reduce任务分配作业。因为
Map和Reduce过程分配资源的过程类似,这里以为Map任务分配资源为例进行阐述。

在PreemptionAssign中,当需要为作业Ji的Map任务分配资源时,首先需要判断该集群
中空闲资源Mfree是否大于Map任务所需的最大资源总量若有则为
作业的Map阶段分配大小为的资源量。此时由于为作业提供了最大的资源需求量,
会导致作业在Deadline前完成,因此作业含有过剩的资源量。当此类型的作业运行后,称其
为过剩作业(Surplus-Job)。若上述判断有则为作业分配大小资源
量,该资源量能保证作业在Di时完成。然而当时又包含两种情况:一种是
此时无需资源的抢占操作;当时,由于当前空闲的资源无法
满足作业Ji的最小资源需求量,因此需要通过抢占来获得额外的资源,而此时抢占的目标为
Surplus-Job。

资源紧缺情况下,执行抢占操作

由于MRScheduler中采用的是抢占资源分配模式,当资源紧缺时需要需要在所有
Surplus-Jobs中选择作业进行抢占操作。方法中采用红黑树管理所有的Surplus-Jobs,红黑树
能够高效的完成上述对于作业查找、删除的需求,其提供了最好可能的最坏情况担保,能够
在O(logn)内完成上述操作,其中n为红黑树中节点的个数,在本文中为Surplus-Jobss的个
数。

RAC中对于所有Surplus-Job通过一个红黑树(Surplus-RBTree,过剩红黑树)进行管理,
而非过剩作业(Non-Surplus-Job)无需通过特殊的数据结构进行管理。Surplus-RBTree中每个
节点表示一个正在运行Surplus-Job,节点的关键字为作业的Surplus值,作业Ji的Surplusi为
(Reduce阶段为),即分配的资源量减去最小需求资源量。
当有新的Surplus-Job执行时,会将其插入到Surplus-RBTree中;当Surplus-Job运行结束后,
将其由Surplus-RBTree中删除。当MRScheduler中需要寻找一个作业进行资源的抢占时,会
在Surplus-RBTree中寻找,找到Surplus值最大的作业,将其从Surplus-RBTree中删除。

资源的抢占发生在当一个作业需要进行调度时,发现系统的空闲资源量无法满足其最小
资源量的需求,为此方法设计了抢占策略。总体上,MRScheduler中采用两级抢占策略,首
先在所有已经运行Surplus-Jobs中选择一个合适的作业,之后在选择的作业中的一定数量的
任务进行资源抢占。假设当前作业Ji需要抢占的资源量为资源抢占的步骤如下
所示:

a.在Surplus-RBTree中选取符合条件的作业进行资源抢占。

b.由被选取的作业中,通过任务抢占策略选取Surplus个任务,使其终止执行并剥夺其
所占有的资源。

c.统计本次作业抢占操作得到的资源总量∑Surplus,若有
说明抢占的资源量已经满足当前作业的需求则结束抢占
操作,否则返回a,b继续进行资源的抢占。

MRScheduler中采用的是三级抢占策略上述抢占策略,所以首先要判断如何在所有正在
运行的Surplus-Jobs中选择一个作业进行资源抢占。在MRScheduler中,采用MaximumSurplus
First(MSF)策略在运行的Surplus-Jobs中选择被抢占的对象,即在所有Surplus-Jobs中选择
Surpluis值最大的作业Ji(假设具有最大Surplus值的作业ID为i)。由于所有Surplus-Jobs作
业都通过Surplus-RBTree进行组织,查找拥有最大的Surplus的作业时,只要沿着
Surplus-RBTree的右子树进行查找即可。当遍历到的节点右子树为空时,该节点所代表的作
业即为被选择进行抢占的作业。

在确定了被抢占的作业和抢占的资源量后,本方法采用ShortestRemainingTime(SRT)策
略进行任务选择,即运行时间短的任务会优先被抢占资源。任务的运行进度通过
ProgressScore值来衡量,它是一个介于0~1的值,ProgressScore为0表示任务没有开始执
行,为1表示任务已经运行结束。

对于Mapi其运行进度值 ProgressScore i m = InputData i c u r / InputData i a l l , ]]>其中
表示Mapi已经读取的数据量,表示其共需要读取的数据量。在任务选择时,选
择所有Map中ProgressScore值最小的任务进行抢占。对于Reduce任务,它的执行过程由三
个阶段组成:Copy阶段、Sort阶段和Reduce阶段,这三个阶段依次执行,这里规定每个阶段
的Score占ProgressScore的1/3。

综上所述ProgressScore、CopyScore、SortScoreReduceScore的取值范围为:
ProgressScore∈[0,1]、CopyScore∈[1,1/3]、SortScore∈[1,1/3]、ReduceScore∈[1,1/3]。
CopyScore、SortScore、ReduceScore的值为已处理数据与该阶段应进行处理的比值。例如,
若Reduce阶段中1/2的数据已经进行了处理则整个Reduce任务的ProgressScore值为
1 3 + 1 3 + 1 3 × 1 2 = 5 6 . ]]>

在第一步中,当一个作业Ji被提交到系统中时,需要判断其最小资源量的大小,最小资
源量的含义是满足作业Ji能够在Di内完成的所需要的最小资源量。下面将阐述最小资源量
的计算方法和其原理。

对于作业Ji通过建立一个作业特征模型来描述其基本的性质,特征模型表示为
其中符号含义如下表所示:

作业特征模型相关符号表


由前文可知,MRScheduler在资源分配时以内存作为资源衡量的标准,因此只要求得Ji在
整个执行过程中所需资源量Mi的最小值即可。为了求得Mi首先需要建立一个作业运行时间
推测模型,通过作业的运行时间和Di来推导出其Mi。由于MapReduce作业是由Map与Reduce
两种类型的Task共同完成,且Reduce任务的执行需要Map任务的结果,因此这里假定首个
ReduceTask在所有MapTask执行结束后方开始执行。

为了便于描述作业Ji的运行时间,通过下表来指明计算过程中需要用到的关键变量。其
中与的值为用户提交时自行设定。

作业运行时间估计符号表


对于作业Ji的执行,由Map任务执行、数据传送和Reduce任务执行三个部分组成。三
个部分的运行时间描述如下:

T m = I i · t m / C i m - - - ( 1 ) ]]>

T r = f · I i · t r / C i r - - - ( 2 ) ]]>

Tc=f·Ii·tc(3)

因此,作业Ji的执行时间可以表示为:

T i = I i · t m C i m + f · I i · t r C i r + f · I i · t c - - - ( 4 ) ]]>

为了使得作业Ji能够在Di前完成,需要有

Ai+Ti≤Di即 A i + I i · t m C i m + f · I i · t r C i r + f · I i · t c D i ]]>

因为,希望求得的是能够满足作业Ji在Di前完成,需满足如下等式即可:

I i · t m C i m + f · I i · t r C i r = D i - A i - f · I i · t c - - - ( 5 ) ]]>

对于作业Ji,其所需要资源总量Mi可以如下表示,有

M i = mem i m * C i m + mem i r * C i r - - - ( 6 ) ]]>

为了在满足等式(5)时,求得Mi的最小值,这里使用拉格朗日乘数法。为了便于表示,
对(5)和(6)中的符号做下述等价代换:a=Ii·tm、b=f·Ii·tr、c=Di-Ai-f·Ii·tc、
当前的目标就是在满足a/x+b/y-c=0时,求得
f(x,y)=m·x+n·y的最小值。计算过程过程如下:

L ( x , y ) = f ( x , y ) + λ ( a x + b y - c ) - - - ( 7 ) ]]>

L x = m - λ a x 2 = 0 L y = n - λ b y 2 = 0 L λ = a x + b y - c = 0 - - - ( 8 ) ]]>

解方程组(4-8),由于x,y均大于0,可得到x,y的值分别如下:

x = 1 c a m ( m · a + n · b ) , y = 1 c b n ( m · a + n · b ) - - - ( 9 ) ]]>

由拉格朗日乘除法可知,(x,y)为f(x,y)的极值点,由实际问题出发可知,(x,y)只可
能是极小值点且为最小值点,也就是使得f(x,y)的取得最小值的点,进而可以得到作业Ji的
最小内存资源量。进一步将原有符号带入,得到在满足最小资源需求量时Map与Reduce阶
段的内存需求如下所示:

M i m , min = mem i m · C i m = I i · t m · mem i m ( I i · t m · mem i m + f · I i · t r · mem i r ) D i - A i - f · I i · t c - - - ( 10 ) ]]>

M i r , m i n = mem i r · C i r = f · I i · t r · mem i r ( I i · t m · mem i m + f · I i · t r · mem i r ) D i - A i - f · I i · t c - - - ( 11 ) ]]>

于是通过上述的推导与计算可得,对于满足作业Ji在Di前执行完成作业的最小资源量Mi
可通过公式(11)得到:

M i min = M i m , min + M i r , min = ( I i · t m · mem i m + f · I i · t r · mem i r ) 2 D i - A i - f · I i · t c - - - ( 12 ) ]]>

当作业Ji被提交到ResouceManager时,首先会通过RAC判断其可调度性,即判断当前
集群的负载情况能否使得Ji在其截止期Di前执行完成。若能满足作业Ji的最小资源量,RAC
则会进一步的为Ji分配资源。最后,将作业Ji放入到队列中,等待资源的分配。

队列中的作业按照EarliestDeadlineFirst(EDF)的顺序进行排序,MRScheduler每次选
择队列中的队头作业进行调度。当MRScheduler收到NodeManager的心跳包,表明该Node
Manager中存在空闲的资源,并向MRScheduler申请新的任务。MRScheduler调度器会尽量
将所有任务均衡的分配到各个节点中,因此调度器会根据当前集群的负载计算可以为该节点
分配的资源量。NodeMen为节点中可用的资源量,UsedMen为节点中已经被使用的资源量,
TotalMen为集群中的资源量总和。通过公式(13)可计算出当前集群的资源负载因子,通过
公式(14)可计算出该节点当前可用的资源量AvailavleMen。

L o a d F a c t o r = Σ n o d e s N o d e M e n - U s e d M e n T o t a l M e n - - - ( 13 ) ]]>


一种基于HADOOP的车联网内存感知实时作业调度方法.pdf_第1页
第1页 / 共11页
一种基于HADOOP的车联网内存感知实时作业调度方法.pdf_第2页
第2页 / 共11页
一种基于HADOOP的车联网内存感知实时作业调度方法.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种基于HADOOP的车联网内存感知实时作业调度方法.pdf》由会员分享,可在线阅读,更多相关《一种基于HADOOP的车联网内存感知实时作业调度方法.pdf(11页珍藏版)》请在专利查询网上搜索。

本发明属于云计算领域,具体涉及一种满足实时性好,资源利用率高的要求的基于Hadoop的车联网内存感知实时作业调度方法。本发明包括:(1)用户将作业提交到主节点,主节点中的资源管理器对作业进行初始化操作,之后将作业交给资源分配中心进行可调度性判断;(2)资源分配中心根据集群负载情况和作业截止期为其分配资源;(3)将作业放入到队列中,等待从节点中的心跳包,将作业中的任务分配到从节点上执行。通过该方法能。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1