一种分布式任务分配方法组成比例

技术编号:12278845 阅读:77 留言:0更新日期:2015-11-05 13:43
本发明专利技术涉及分布式任务分配方法。该方法包括下述步骤:作业被初始化分解为多个任务,主控制节点为该任务建立任务运行状态表;将第一个任务分配给计算节点的同时,将与第一个任务相同的备份任务分配给预测节点;预测节点计算该备份任务所需要的磁盘空间并将计算结果反馈给主控制节点;主控制节点根据来自预测节点的计算结果更新任务运行状态表;在分配任务给计算节点之前时,主控制节点推测该计算节点的任务状态并且根据推测到的任务状态以及任务运行状态表估算任务可运行空间;在估算的任务可运行空间大于该任务运行所需空间的情况下,将该任务分配给该计算节点,否则重新选择计算节点。

【技术实现步骤摘要】
【专利说明】
本专利技术涉及一种分布式计算系统中的任务分配方法,具体地涉及能够预防分布式 任务计算时间延迟的优化方法。
技术介绍
现有技术中,在分布式计算过程中,一个作业(job)通常会被分解成多个子任务, 由主控制节点分配给多个计算节点进行并行计算。每一个计算子任务(task)在计算节点 上运行时,是需要将中间数据写入本地的文件系统的。通常情况下,多个子任务在同一个计 算节点上运行的时候,可以分别通过不同的磁盘写入点往文件系统写数据,这样来提高作 业运行时磁盘的吞吐率。 如果某写入点所在的磁盘空间不够,这个任务会在文件写到一半时因为磁盘空间 已满而被拒绝访问,从而导致这个任务运行失败。这时,该计算节点会在下一个心跳机制执 行时向主控制节点反馈。主控制节点会把这个任务分配到新的空闲计算节点重新计算。但 是,分配时通常会根据数据存储就近策略进行计算节点分配,这时,这个任务还是很有可能 被分配到出错的计算节点上,极端的情况,这个新的任务又被分到同一个出错计算节点上, 再次运行失败。这样,就会导致同一个子任务不断失败,又不断重复执行,这样会影响整个 作业的执行效率。 严重时,还可能因为同一个子任务的多次失败而使主控制节点自发地判定作业执 行失败。即使没有出现这种情况,整个作业的执行时间也被大大延迟。比如任务运行需一 个小时,如果正好运行到五十九分钟的时候出现磁盘空间不足,这个任务将被重新执行,而 这时整个作业也因为这个原因而延迟结束了将近一个小时,这是非常大的代价。 通常情况下,主控制节点在分配任务时只关注计算节点的计算资源使用情况 (CPU、内存),而不关注计算节点的磁盘剩余空间,也不关注任务的磁盘使用量。这样,当某 一些节点磁盘空间不足的情况下,就容易造成任务运行失败,进而导致整个作业的运行时 间延迟。出现因磁盘空间不足而使整个作业运行时间延迟这种情况,是因为主控制节点在 分配子任务给计算节点前,无法事先预知计算节点上的文件系统是否有足够的磁盘空间来 支撑该子任务生成的中间数据,同时主控制结点也无法判断子任务在计算过程中生成的中 间数据的大小。 在现有技术中,对于上述问题,作为通常的解决办法有以下2种: (1)清理磁盘空间,保证所有计算节点的磁盘空间都足够大。这种方法直接,但是工作 量很大,耗费时间长,灵活性也不足。尤其在计算节点多的情况下,清理磁盘是一项很浩大 的工作。 (2)在计算节点上设置一个配置值,当剩余磁盘空间小于这个配置值时,就不再接 收任务。这样虽然可以一定程度上解决上述问题,但配置值是固定,无法因为不同任务的需 求而进行动态调整,这样可能会造成计算资源的浪费。如果配置值太低,仍然会出现磁盘空 间不足而任务失败;如果配置值过高,计算节点无法得到充分利用。
技术实现思路
鉴于上述问题,本专利技术旨在提供一种能够降低任务失败风险并且能够保证执行效 率的分布式任务分配方法。 本专利技术的分布式任务分配方法,其特征在于,包括下述步骤: 初始化作业步骤,作业被初始化分解为多个任务,主控制节点为该任务建立任务运行 状态表; 初次任务分配步骤,将第一个任务分配给计算节点的同时,将与第一个任务相同的备 份任务分配给预测节点; 预测磁盘空间步骤,预测节点计算该备份任务所需要的磁盘空间并将计算结果反馈给 主控制节点; 更新任务运行状态表步骤,主控制节点根据来自预测节点的所述计算结果更新所述任 务运彳T状态表; 任务可运行空间预测步骤,在分配任务给计算节点之前时,主控制节点推测该计算节 点的任务状态并且根据推测到的任务状态以及所述任务运行状态表估算任务可运行空间; 以及 任务分配步骤,在所述估算的任务可运行空间大于该任务运行所需空间的情况下,将 该任务分配给该计算节点,否则重新选择计算节点。 优选地,在所述任务分配步骤之后还具备: 计算节点监控步骤,计算节点定期遍历当前计算节点下的所有任务,如果剩余空间不 足以保证某个任务执行,则该计算节点主动中止该任务并向主控制节点反馈。 优选地,所述任务可运行空间预测步骤包括下述子步骤: 在分配任务给计算节点之前时,主控制节点向该计算节点请求当前所有运行任务状 态,所述运行任务状态至少包括总任务数、各任务执行状态、剩余磁盘空间; 主控制节点根据自身所维护的任务运行状态表,根据规定算法估算所述计算节点的任 务可运行空间是否满足该任务; 如果任务可运行空间大于该任务实际所需空间,则将任务分配给该计算节点,否则,则 重新选择任务计算节点。 优选地,所述规定算法为计算式(1 ), 计算式(1):任务可运行空间=剩余磁盘空间-E所有正执行任务未写入文件量。 优选地,所述计算节点监控步骤包括下述子步骤: 计算节点定期遍历当前计算节点下的所有任务; 如果剩余空间不足以保证某个任务执行,则该计算节点主动中止该任务并向主控制节 点反馈; 主控制节点根据该计算节点的反馈更新任务状态表,并寻找空闲的计算节点,并把当 前中止的任务再次分配给新的计算节点。 优选地,所述任务状态表中包括作业ID、任务ID、任务类型、所在节点ID、所需磁 盘空间。 优选地,在所述更新任务运行状态表步骤中,主控制节点根据来自预测节点的所 述计算结果,对所述任务运行状态表进行相应的增加、删除、修改。 优选地,所述任务类型包括map任务和reduce任务。 优选地,所述预测节点对于一个作业而言,只运行一次map任务或reduce任务并 且在把所述计算结果反馈给主控制节点之后不再接受该作业的其他同类型任务。 根据本专利技术,能够实现一种在分布式计算过程中能够降低由磁盘空间不足引起的 运行时间延迟的优化方法。在本专利技术中,分别对任务分配前和任务运行时两个环节进行预 测和监控,能够有效预防失败任务的产生,降低任务运行失败的风险,从而保证了整个作业 的执行效率。【附图说明】 图1是表示本专利技术的一个实施方式的分布式任务分配方法的流程示意图。【具体实施方式】 下面介绍的是本专利技术的多个实施例中的一些,旨在提供对本专利技术的基本了解。并 不旨在确认本专利技术的关键或决定性的要素或限定所要保护的范围。 -个分布式作业通常分为分片并行任务(map)和合并归约任务(reduce)两类任 务,每类任务会分别起若干个相同的子任务。相同类型的子任务通常的输入数据分片大小 (split)是相同的。例如,现在多集群分布式作业大多采用的都是Hadoop框架,在Hadoop 框架里,分布式任务被分成先后两个阶段,map阶段和reduce阶段。所以相应的有两类子 任务,map子任务(将数据分片)和reduce子任务(将分片数据归约),map阶段完成才能进 入reduce阶段。相同类型的子任务的输入数据分片大小是一样的,计算过程是一样,因此, 生成的中间结果的大小也近似相等。 本专利技术在现有的分布式计算系统的计算方法上增加三个关键环节:主控制节点的 推测进程、任务磁盘空间预测节点的磁盘空间预测、计算节点的监控进程。具体地,这三个 环节的主要功能如下 : (1)主控制节点的推测进程 在主控制节点上维护着一张各个计算节点的任务运行状态表,这张任务运行状态表包 含如下信息: (i)正在运行的某个作业的map子任务数、以及每个map运行时所需的磁盘空间; (ii)正在运行的某本文档来自技高网
...

【技术保护点】
一种分布式任务分配方法,其特征在于,包括下述步骤:初始化作业步骤,作业被初始化分解为多个任务,主控制节点为该任务建立任务运行状态表;初次任务分配步骤,将第一个任务分配给计算节点的同时,将与第一个任务相同的备份任务分配给预测节点;预测磁盘空间步骤,预测节点计算该备份任务所需要的磁盘空间并将计算结果反馈给主控制节点;更新任务运行状态表步骤,主控制节点根据来自预测节点的所述计算结果更新所述任务运行状态表;任务可运行空间预测步骤,在分配任务给计算节点之前时,主控制节点推测该计算节点的任务状态并且根据推测到的任务状态以及所述任务运行状态表估算任务可运行空间;以及任务分配步骤,在所述估算的任务可运行空间大于该任务运行所需空间的情况下,将该任务分配给该计算节点,否则重新选择计算节点。

【技术特征摘要】

【专利技术属性】
技术研发人员:王骏赵金涛杨鸿超邱雪涛
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1