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

文档序号:9616161阅读:307来源:国知局
一种基于Hadoop的车联网内存感知实时作业调度方法
【技术领域】
[0001] 本发明属于云计算领域,具体涉及一种满足实时性好,资源利用率高的要求的基 于Hadoop的车联网内存感知实时作业调度方法。
【背景技术】
[0002] 车辆网系统是物联网、云计算与车队系统相互结合的产物。车辆网系统以Hadoop 2. 0云计算平台为基础进行开发,要能够对处理公共用户和车队管理人员提交的作业请求 进行高效处理,其服务对象为车队的管理人员和公共用户。当管理人员或用户提交作业时, 数据中心根据一定的调度算法对作业进行处理。车辆网系统中的作业属于内存密集型作 业,其对实时性有着较高的要求。因此,需要一个能同时兼顾内存分配和作业实时性的调度 算法,来满足车联网中的作业调度要求。
[0003] 现有的调度算法存在很多的缺陷。针对于Hadoop中MapReduce计算模型的作业处 理方式,Anyawu等人提出了DeadlineConstraintScheduler算法。该算法通过作业计算 代价模型来估个作业在MapReduce中的运行时间,通过该模型计算出的数值与Deadl ine进行比较判断作业是否能在Deadline之前完成。算法中每次对作业进行资源分配, 都会为其分配所需资源的最小值,这样虽然能够保证作业在截止期前完成,但是当系统资 源充足时,无法使系统资源得到充分的利用。针对这一问题兰州大学的周源提出了基于抢 占模式的(PreemptiveDeadlineConstraintScheduler(FOCS)算法。FOCS算法中通过 在CS(ComputerSystem,简称CS)中加入抢占模式,从而使得在系统资源充沛时作业可以 分配到更多的资源,当系统资源出现紧缺的时候通过抢占使得当前作业能够获取足够的资 源。然而rocs算法虽然解决了DCS算法中资源利用不充分的问题,但是在资源抢占的过程 中单纯从满足当前作业需求的角度出发,并没有考虑到整个集群的负载情况,因此这可能 导致多次抢占的发生,进而使得集群整体性能下降。
[0004] 为解决这一问题,我们采用内存感知、抢占式的方式优化资源配置。当用户提出作 业请求时,通过资源分配中心选择最小资源量的资源分配方式,再通过双层抢占策略抢占 资源。如果未同时使用最小资源评估模型和双层抢占策略,则不是本专利描述的方法。

【发明内容】

[0005] 本发明的目的在于提供一种在Hadoop2. 0平台架构下,满足车联网的需求,设计 合适的资源调度机制和抢占策略,提高资源的利用率,满足实时性的要求的基于Hadoop的 车联网内存感知实时作业调度方法。
[0006] 本发明的目的是这样实现的:
[0007] (1)用户将作业提交到主节点,主节点中的资源管理器对作业进行初始化操作,之 后将作业交给资源分配中心进行可调度性判断;
[0008] (2)资源分配中心根据集群负载情况和作业截止期为其分配资源;
[0009] (3)将作业放入到队列中,等待从节点中的心跳包,将作业中的任务分配到从节点 上执行;
[0010] 所述步骤(1)中的资源分配中心在对集群资源和作业所需资源进行量化时,以内 存资源为标准;对于集群中的节点,通过内存来描述其可用的资源量;任务对资源的需求 同样采用内存资源进行量化;
[0011] 所述步骤(1)中可调度性通过一个最小内存资源评估模型进行判断,通过最小内 存资源评估模型能够判断出作业在Deadline前完成所需的最小资源量;
[0012] 所述资源分配中心对含有过剩资源的作业采用红黑树进行管理;红黑树中每个节 点表示一个含有过剩资源的作业,节点的关键字为作业的过剩资源量;在作业的抢占、开始 和结束过程中,都需要通过修改红黑树来管理含有过剩资源的作业;
[0013] 所述步骤(2)中在为作业分配资源时包括两种方案:当系统资源充足时,资源分 配中心最大资源分配策略为作业分配资源;当系统资源紧缺时,按照最小资源分配策略为 作业分配资源;在资源紧缺时,又分为非抢占和抢占两种情况;
[0014] 所述的最小资源评估模型,以内存作为资源量化的标准,在计算最小资源量时,通 过拉格朗日乘数法求得保证作业在Deadline前完成时Map和Reduce阶段所需的最小资源 量;
[0015] 在抢占过程中采用双层抢占策略:首先在所有含有过剩资源的作业中选则具有最 大过剩资源量的作业;其次根据作业中任务的运行进度,选则进度最慢的任务进行强。
[0016] 本发明的有益效果在于:
[0017] 本发明是一种适合于车联网系统的调度方法一一基于内存感知实时调度算法,发 明中充分考虑到Hadoop2.0中资源表示模型和作业调度模型的特点,并结合车联网中作 业对资源和响应时间的要求。通过该方法能够满足车联网作业的实时性要求,同时方法 中设计的抢占策略和资源分配中心能有效的提高资源的使用效率,并平衡节点间资源的分 配。
【附图说明】
[0018] 图1可调度性判断流程;
[0019] 图2抢占过程描述图。
【具体实施方式】
[0020] 下面结合附图对本发明做进一步描述。
[0021] 联网系统的Hadoop内存感知实时作业调度器。本发明包括:在调度器中设计资 源分配中心模块,负责作业可调度性分析、作业管理和资源分配工作;根据Hadoop2. 0中 资源的表示模型和分配模型,方法中设计最小资源评估模型,保证作业的实时性;为了提高 系统资源利用率,方法中设计了双层抢占策略,当系统资源发生紧缺时根据作业和任务抢 占策略选择被抢占的资源。该调度器能够满足车联网作业的实时性要求,同时调度器中设 计的抢占策略和资源分配中心能有效的提高资源的使用效率,并能够平衡节点间资源的分 配。
[0022] 在Hadoop2. 0平台架构下,满足车联网的需求,设计合适的资源调度机制和抢占 策略,提高资源的利用率,满足实时性的要求。
[0023] 本发明的技术方案按照以下方式实现:
[0024] (1)用户将作业提交到主节点,主节点中的资源管理器(ResourceManager,简称 RM)对作业进行初始化操作,之后将作业交给资源分配中心进行可调度性判断。
[0025] (2)资源分配中心根据集群负载情况和作业截止期(Deadlin)为其分配资源。
[0026] (3)将作业放入到队列中,等待从节点中的心跳包,将作业中的任务分配到从节点 上执行。
[0027] 步骤(1)中的资源分配中心在对集群资源和作业所需资源进行量化时,以内存资 源为标准。对于集群中的节点,通过内存来描述其可用的资源量。任务对资源的需求同样 采用内存资源进行量化。
[0028] 步骤(1)中作业可调度性通过一个最小内存资源评估模型进行判断,通过最小内 存资源评估模型能够判断出作业在Deadline前完成所需的最小资源量。
[0029] 资源分配中心对含有过剩资源的作业采用红黑树进行管理。红黑树中每个节点表 示一个含有过剩资源的作业,节点的关键字为作业的过剩资源量。在作业的抢占、开始和结 束过程中,都需要通过修改红黑树来管理含有过剩资源的作业。
[0030] 步骤(2)中在为作业分配资源时包括两种方案:当系统资源充足时,资源分配中 心最大资源分配策略为作业分配资源;当系统资源紧缺时,按照最小资源分配策略为作业 分配资源。在资源紧缺时,又分为非抢占和抢占两种情况。
[0031] 在设计最小资源评估模型时,以内存作为资源量化的标准,避免动态资源表示模 型带来的复杂性。在计算最小资源量时,通过拉格朗日乘数法求得保证作业在Deadline前 完成时Map和Reduce阶段所需的最小资源量。
[0032] 在抢占过程中采用双层抢占策略:首先在所有含有过剩资源的作业中选则具有最 大过剩资源量的作业;其次根据作业中任务的运行进度,选则进度最慢的任务进行强。
[0033] 正对用户作业请求,进行可调度性判断。
[0034] 作业可调度性判断过程如图1所示。用户提交作业上到RM(Resource Manager,简称RM,资源管理器)中,RM对作业进行基本的初始化操作,然后将作业交给 MRScheduler(MemoryWareReal-TimeScheduler,简称MRScheduler,内存感知实时作业 调度器)进行处理。MRScheduler收到作业后,首先交给资源分配中心(RAC)进行可调度 性的判断。RAC会判断在资源充足的情况下,能否使得作业Λ在其提交的Di前完成,如果 能则对作业Ji进行进一步的判断,否则向客户(Client)返回拒绝信息,提示修改截止期 (Deadline)值。当接收作业1后,判断当前集群中资源的使用情况是否满足作业乃中Map 任务对资源的最小需求^广,如果满足则接收作业,否则同样会向用户拒绝接收作业。当 作业1的Map任务执行结束后,会判断当前集群中的资源是否能够满足其Reduce任务所 需的最小资源需求,如果能够满足则作业继续执行,否则提示用户作业执行失败。
[0035] 针对可调度性作业,执行资源分配策略
[0036] 本专利设计了PreemptionAssign分配策略。为了提高集群资源使用效率, MRScheduler算法中先为Map任务分配作业,当Map任务执行结束后再为Reduce任务分配 作业。因为Map和Reduce过程分配资源的过程类似,这里以为Map任务分配资源为例进行 阐述。
[0037] 在PreemptionAssign中,当需要为作业上的Map任务分配资源时,首先需要判断 该集群中空闲资源馬_是否大于Map任务所需的最大资源总量Μ广若有 则为作业的Map阶段分配大小为的资源量。此时由于为作业提供了最大的资源需求 量,会导致作业在Deadline前完成,因此作业含有过剩的资源量。当此类型的作业运行后, 称其为过剩作业(Surplus-Job)。若上述判断有:,则为作业分配大小iV/广? 资源量,该资源量能保证作业在Di时完成。然而当时又包含两种情况:一种 是",此时无需资源的抢占操作;当<#;"'_时,由于当前空闲的资源无 法满足作业Λ的最小资源需求量,因此需要通过抢占来获得额外的资源,而此时抢占的目 标为Surplus-Job。
[0038] 资源紧缺情况下,执行抢占操作
[0039] 由于MRScheduler中采用的是抢占资源分配模式,当资源紧缺时需要需要在所有 Surplus-Jobs中选择作业进行抢占操作。方法中采用红黑树管理所有的Surplus-Jobs, 红黑树能够高效的完成上述对于作业查找、删除的需求,其提供了最好可能的最坏情 况担保,能够在0(l〇gn)内完成上述操作,其中η为红黑树中节点的个数,在本文中为 Surplus-Jobss的个数。
[0040] RAC中对于所有Surplus-Job通过一个红黑树(Surplus-RBTree,过剩红黑 树)进行管理,而非过剩作业(Non-Surplu
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1