CN109614227B - 任务资源调配方法、装置、电子设备及计算机可读介质 - Google Patents

任务资源调配方法、装置、电子设备及计算机可读介质 Download PDF

Info

Publication number
CN109614227B
CN109614227B CN201811410469.7A CN201811410469A CN109614227B CN 109614227 B CN109614227 B CN 109614227B CN 201811410469 A CN201811410469 A CN 201811410469A CN 109614227 B CN109614227 B CN 109614227B
Authority
CN
China
Prior art keywords
task
running state
resource
running
determining
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.)
Active
Application number
CN201811410469.7A
Other languages
English (en)
Other versions
CN109614227A (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.)
Golden Panda Ltd
Original Assignee
Golden Panda 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 Golden Panda Ltd filed Critical Golden Panda Ltd
Priority to CN201811410469.7A priority Critical patent/CN109614227B/zh
Publication of CN109614227A publication Critical patent/CN109614227A/zh
Application granted granted Critical
Publication of CN109614227B publication Critical patent/CN109614227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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

Abstract

本公开涉及一种任务资源调配方法、装置、电子设备及计算机可读介质。涉及计算机信息处理领域,可以应用于并行计算平台,该方法包括:实时监控任务运行状态,所述运行状态包括运行进度;在任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置;以及基于所述第一资源配置再次运行所述任务。本公开涉及的任务资源调配方法、装置、电子设备及计算机可读介质,能够在并行计算平台上,根据需要处理的任务的数据量,对资源进行动态配置,提高集群任务并发度,减少任务失败次数。

Description

任务资源调配方法、装置、电子设备及计算机可读介质
技术领域
本公开涉及计算机信息处理领域,具体而言,涉及一种任务资源调配方法、装置、电子设备及计算机可读介质。
背景技术
MapReduce是一种编程模型,用于大规模数据集的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
在MapReduce框架下,所有的计算任务都被划分成了map、reduce两种任务类型。任务提交执行之前,都需要对任务运行的各种参数进行设置,然后MapReduce中的mrappmaster在进行任务资源调度的时候,根据map、reduce设置的统一资源需求,向的资源调度器进行资源申请,获取资源后,再分配给具体的任务,然后与具体的资源节点(任务计算节点)进行通行,启动具体的任务。
现有MapReduce计算框架资源申请,无论是storm、mapreduce、还是spark都是固定式资源申请,即在任务运行初期,就设定好每个子任务运行所需要的内存,然后在运行过程中,严格按照设置的内存参数,进行任务的运行。如果运行过程中,内存不足导致oom(OutOfMemory)、被内存监控服务发现超出申请内存而结束任务,最终都会导致子任务运行失败。
因此,需要一种新的任务资源调配方法、装置、电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本公开提供一种任务资源调配方法、装置、电子设备及计算机可读介质,能够在并行计算平台上,根据需要处理的任务的数据量,对资源进行动态配置,提高集群任务并发度,减少任务失败次数。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提出一种任务资源调配方法,可以应用于并行计算平台,该方法包括:实时监控任务运行状态,所述运行状态包括运行进度;在任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置;以及基于所述第一资源配置再次运行所述任务。
在本公开的一种示例性实施例中,根据任务数据实时确定所述并行计算平台上的任务初始配置;其中,所述并行计算平台为MapReduce平台。
在本公开的一种示例性实施例中,将resourceCapability中的内存与资源指标设置为可配置模式。
在本公开的一种示例性实施例中,实时监控任务运行状态包括:通过taskimpl实时监控任务运行状态。
在本公开的一种示例性实施例中,实时监控任务运行状态包括:实时监控映射任务运行状态,所述运行状态包括运行进度;以及实时监控归约任务运行状态,所述运行状态包括运行进度。
在本公开的一种示例性实施例中,在任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置包括:获取任务初始配置;根据任务失败次数确定增长因子;以及根据运行状态,任务初始配置,以及增长因子确定所述第一资源配置。
在本公开的一种示例性实施例中,在任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置还包括:根据运行状态,任务初始配置,以及增长因子,以2的幂次方累积形式确定所述第一资源配置。
根据本公开的一方面,提出一种任务资源调配装置,可以应用于并行计算平台,该装置包括:状态模块,用于实时监控任务运行状态,所述运行状态包括运行进度;判断模块,用于在任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置;以及运行模块,用于基于所述第一资源配置再次运行所述任务。
根据本公开的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本公开的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本公开的任务资源调配方法、装置、电子设备及计算机可读介质,通过将各个任务的资源使用数根据任务的运行情况进行动态配置的方式,能够在并行计算平台上,根据需要处理的任务的数据量,对资源进行动态配置,提高集群任务并发度,减少任务失败次数。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种任务资源调配方法及装置的系统框图。
图2是根据一示例性实施例示出的一种任务资源调配方法的流程图。
图3是根据另一示例性实施例示出的一种任务资源调配方法的流程图。
图4是根据一示例性实施例示出的一种任务资源调配装置的框图。
图5是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。
本申请的发明人发现,mapreduce任务执行中,一个Job(项目)的执行会转换成多个Task(任务)去执行,在mapreduce平台的Task中,有Map Task和Reduce Task两种类型。每一次task的执行,都会对应一个taskattemptimpl,叫做一次任务尝试。而这个尝试所需求的内存的资源配置来自于参数map.memory.mb的统一配置。
mapreduce任务在运行过程中,严格按照初始化时设置的资源需求进行内存的申请,但是在实际运行过程中,往往会有少量的子任务(如map任务、reduce任务),因为资源需求超过设置的参数,而导致失败,从而导致整个任务运行失败。
具体是无论任务运行时内存是否足够,都按照固定设置的资源需求进行申请、运行,即使最后导致任务失败。比如任务启动时,设置map类型任务需求4g内存,80%的map任务都可以完成,但是20%的任务内存不够,导致oom、或者超出内存被yarn的内存监控服务kill掉,最终都会导致整个任务运行失败。
此时如果按照最大的资源需求,进行统一的资源需求设置,又会导致80%的任务运行时,严重的资源浪费,降低了集群的任务并行度,从而导致利用率变低,任务运行时间拉长。
有鉴于此,本申请的发明人提出了任务资源调配方法,解决mapreduce计算框架,在map、reduce任务运行中由于统一的资源需求配置,导致少数任务失败,从而导致整个任务运行失败的问题。
下面将对本申请的详细内容进行说明:
图1是根据一示例性实施例示出的一种任务资源调配方法及装置的系统框图。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的各类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。
服务器105可例如为并行计算平台,服务器105可例如对用户利用终端设备101、102、103提交的各种任务进行并行处理,并将处理结果返回用户端。
服务器105可例如实时监控任务运行状态,所述运行状态包括运行进度;服务器105可例如在任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置;服务器105可例如基于所述第一资源配置再次运行所述任务。
服务器105可以是一个实体的服务器,还可例如为多个服务器组成,服务器105中的一部分可例如作为并行计算平台中的主机,服务器105中的一部分可例如作为并行计算平台中的任务节点机。需要说明的是,本公开实施例所提供的任务资源调配方法可以由服务器105执行,相应地,任务资源调配装置可以设置于服务器105中。而提供给用户提交数据请求的请求端一般位于终端设备101、102、103中。
图2是根据一示例性实施例示出的一种任务资源调配方法的流程图。任务资源调配方法20至少包括步骤S202至S208。
如图2所示,在S202中,实时监控任务运行状态,所述运行状态包括运行进度。其中,并行计算平台为MapReduce平台。
在一个实施例中,将resourceCapability中的内存与资源指标设置为可配置模式。可例如,在Map TaskAttempt中,增加一个配置项,让根据数据量大小调整maptask内存的功能是否开启变成可配置话。还可例如,在Map TaskAttempt中,增加一个配置项,可以根据数据量大小设置所需内存的比例。还可例如,在Map TaskAttempt初始化时加上动态调整方法,如果开启了此项内存动态配置功能,则会执行方法中的部分操作。同时为了使分配的内存大小符合2的幂次方,还可例如用向上取整的方法Math.ceil算内存倍数。
在一个实施例中,实时监控任务运行状态包括:通过taskimpl实时监控任务运行状态。taskimpl维护了map或者reduce任务的整个生命周期,具体可以是maptaskimpl,或者reducetaskimpl。taskattmptimpl维护了map、reduce任务一次重试的生命周期。Taskimpl中保存了所有taskattmptimpl的集合,无论正在运行的还是失败的,包括推测执行调起的;另外也有一个set保存所有失败的taskattmptimpl的集合。
在一个实施例中,实时监控任务运行状态包括:实时监控映射任务运行状态,所述运行状态包括运行进度;以及实时监控归约任务运行状态,所述运行状态包括运行进度。
其中,一个映射函数就是对一些独立元素组成的概念上的列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改,因为这里创建了一个新的列表来保存新的答案。这就是说,映射任是可以高度并行的,这对高性能要求的应用以及并行计算领域的需求非常有用。
而归约任务指的是对一个列表的元素进行适当的合并。虽然归约任务不如映射函数那么并行,但是因为归约任务总是有一个简单的答案,大规模的运算相对独立,所以归约任务在高度并行环境下也很有用。
在S204中,任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置。
在一个实施例中,在任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置包括:获取任务初始配置;根据任务失败次数确定增长因子;以及根据运行状态,任务初始配置,以及增长因子确定所述第一资源配置。
在taskattmptimpl中,各种在执行的任务在失败时,均会触发taskattmptimpl的一次TaskEventType.T_ATTEMPT_KILLED事件,同时taskattmptimpl调用ATTEMPT_KILLED_TRANSITION的transition方法进行状态转换。如果taskimpl此时,不存在成功的successfulAttempt,就会重新生成一个taskattemptimpl,并调用addAndScheduleAttempt方法,将任务添加到资源需求列表。
addAndScheduleAttempt方法会判断当前事件是推测执行的资源申请,还是单纯的资源申请,如果是单纯的资源申请,该方法就会出发一个TaskAttemptEventType.TA_SCHEDULE事件。
addAndScheduleAttempt方法如果判断是由于失败重新调度,那么,根据失败的attempt失败的次数,对生成的taskattmptimpl的资源需求进行重新的配置。
在S206中,基于所述第一资源配置再次运行所述任务。可例如,在任务再次启动时,设置任务需求内存为更新后的内存,设置任务需要的内存和资源指标为更新后的指标,再次进行任务处理。如果任务处理仍旧失败的话,则在此技术上再次进行内存与资源的再次配置,然后执行任务,直至任务执行完毕为止。
根据本公开的任务资源调配方法,通过将各个任务的资源使用数根据任务的运行情况进行动态配置的方式,能够在并行计算平台上,根据需要处理的任务的数据量,对资源进行动态配置,提高集群任务并发度,减少任务失败次数。
在mapreduce运行过程中,实际的每个map、reduce任务,都会对应具体的taskimpl状态机,维护单个子任务运行过程中的资源申请、初始化、运行、提交等状态转移。
根据本公开的任务资源调配方法,可以让单个任务根据输入的数据量大小进行个性化的内存资源需求配置,
根据本公开的任务资源调配方法,任务在多次失败重试时,基于上一次任务运行的进度、失败原因(oom、或者被yarn内存监控服务kill)进行个性化的资源需求增加。
基于以上两种方式,就可以让少数资源需求量大的任务进行相应的内存增加,让整个任务顺利完成,并且充分利用集群资源,不造成浪费,提高任务执行效率。
在本公开的一种示例性实施例中,还可例如,根据任务数据实时确定所述并行计算平台上的任务初始配置;其中,所述并行计算平台为MapReduce平台。在任务开始时,根据任务数据量的大小,进行个性化的内存需求资源配置。
应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施例。
图3是根据另一示例性实施例示出的一种任务资源调配方法的流程图。图3所示的流程是对图2所示的流程中S204“任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置”的详细描述,
如图3所示,在S302中,获取任务初始配置。maptask的输入数据源保存TaskSplitMetaInfo的对象中,具体的是从inputSplit中拿到数据。在这个TaskSplitMetaInfo中就会有输入数据长度的一个变量inputDataLength。任务初始配置储存在map.memory.mb中,map.memory.mb配置项的默认值是1024,具体配置保存在MRJobConfig的mapreduce.map.memory.mb中。
TaskAttemptImpl的实际资源需求,保存在变量resourceCapability中,resourceCapability中包括核数和内存2个资源指标,再具体配置的时候,颗粒土通过配置核数和内存的参数进而进行资源动态配置。
在S304中,根据任务失败次数确定增长因子。在mapredcue的conf中增加一个固定的配置项,失败重试资源增加比例map.memory.mb.growth.factor,然后根据失败的次数,对于每个任务都可以单独设置一个增长因子。增加因子可根据不同的任务进行不同的设置,本申请不以此为限。
在S306中,根据运行状态,任务初始配置,以及增长因子确定所述第一资源配置。可例如,以2的幂次方累积形式确定所述第一资源配置。
可例如,通过如下公式计算资源配置数据:
resourceCapability.memory=(map.memory.mb.growth.factor*失败次数)*map.memory.mb。
在mapreduce计算框架中,未集成动态资源调整功能前,特别是在处理医学数据(数据不均衡、数据结构复杂、存储结构复杂),在实际处理过程中,经常由于某几行或者某几个文件特别大,导致少量任务运行失败。如果无此发明方案,用户往往需要整体调整任务需求的资源量,反复调试执行,费时费力,严重影响项目的交付进度。
通过本公开的任务资源调配方法,在mapreduce计算框架中,由于内存不够导致少数任务失败的次数大大降低,几乎没有出现过。集群任务并发度提高50%,利用效率也提高了50%。分析师也不需要关注个别任务的资源需求,反复进行测试验证,解放了人力。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图4是根据一示例性实施例示出的一种任务资源调配装置的框图。任务资源调配装置40包括:状态模块402,判断模块404,以及运行模块406。
状态模块402用于实时监控任务运行状态,所述运行状态包括运行进度;可例如,在Map TaskAttempt中,增加一个配置项,让根据数据量大小调整maptask内存的功能是否开启变成可配置话。还可例如,在Map TaskAttempt中,增加一个配置项,可以根据数据量大小设置所需内存的比例。还可例如,在Map TaskAttempt初始化时加上动态调整方法,如果开启了此项内存动态配置功能,则会执行方法中的部分操作。同时为了使分配的内存大小符合2的幂次方,还可例如用向上取整的方法Math.ceil算内存倍数。
判断模块404用于在任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置;可例如,获取任务初始配置;根据任务失败次数确定增长因子;以及根据运行状态,任务初始配置,以及增长因子确定所述第一资源配置。
运行模块406用于基于所述第一资源配置再次运行所述任务。可例如,在任务再次启动时,设置任务需求内存为更新后的内存,设置任务需要的内存和资源指标为更新后的指标,再次进行任务处理。如果任务处理仍旧失败的话,则在此技术上再次进行内存与资源的再次配置,然后执行任务,直至任务执行完毕为止。
根据本公开的任务资源调配方法,通过将各个任务的资源使用数根据任务的运行情况进行动态配置的方式,能够在并行计算平台上,根据需要处理的任务的数据量,对资源进行动态配置,提高集群任务并发度,减少任务失败次数。
图5是根据一示例性实施例示出的一种电子设备的框图。
下面参照图5来描述根据本公开的这种实施方式的电子设备200。图5显示的电子设备200仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备200以通用计算设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元210执行,使得所述处理单元210执行本说明书上述电子处方流转处理方法部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元210可以执行如图2,图3中所示的步骤。
所述存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。
所述存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述方法。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:实时监控任务运行状态,所述运行状态包括运行进度;在任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置;以及基于所述第一资源配置再次运行所述任务。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施例的方法。
以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
此外,本说明书说明书附图所示出的结构、比例、大小等,均仅用以配合说明书所公开的内容,以供本领域技术人员了解与阅读,并非用以限定本公开可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本公开所能产生的技术效果及所能实现的目的下,均应仍落在本公开所公开的技术内容得能涵盖的范围内。同时,本说明书中所引用的如“上”、“第一”、“第二”及“一”等的用语,也仅为便于叙述的明了,而非用以限定本公开可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当也视为本公开可实施的范畴。

Claims (9)

1.一种任务资源调配方法,可以应用于并行计算平台,其特征在于,包括:
实时监控任务运行状态,所述运行状态包括运行进度;
根据任务数据实时确定所述并行计算平台上的任务初始配置;
在任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置;以及
基于所述第一资源配置再次运行所述任务;
其中,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置包括:
获取任务初始配置;
根据任务失败次数确定增长因子;以及
根据运行状态,任务初始配置,以及增长因子确定所述第一资源配置。
2.如权利要求1所述的方法,其特征在于,所述并行计算平台为MapReduce平台。
3.如权利要求2所述的方法,其特征在于,将resourceCapability中的内存与资源指标设置为可配置模式。
4.如权利要求1所述的方法,其特征在于,实时监控任务运行状态包括:
通过taskimpl实时监控任务运行状态。
5.如权利要求2所述的方法,其特征在于,实时监控任务运行状态包括:
实时监控映射任务运行状态,所述运行状态包括运行进度;以及
实时监控归约任务运行状态,所述运行状态包括运行进度。
6.如权利要求1所述的方法,其特征在于,在任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置还包括:
根据运行状态,任务初始配置,以及增长因子,以2的幂次方累积形式确定所述第一资源配置。
7.一种任务资源调配装置,可以应用于并行计算平台,其特征在于,包括:
状态模块,用于实时监控任务运行状态,所述运行状态包括运行进度,根据任务数据实时确定所述并行计算平台上的任务初始配置;
判断模块,用于在任务失败时,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置;以及
运行模块,用于基于所述第一资源配置再次运行所述任务;
其中,根据所述任务的运行状态与任务初始配置、任务失败次数确定第一资源配置包括:
获取任务初始配置;
根据任务失败次数确定增长因子;以及
根据运行状态,任务初始配置,以及增长因子确定所述第一资源配置。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201811410469.7A 2018-11-23 2018-11-23 任务资源调配方法、装置、电子设备及计算机可读介质 Active CN109614227B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811410469.7A CN109614227B (zh) 2018-11-23 2018-11-23 任务资源调配方法、装置、电子设备及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811410469.7A CN109614227B (zh) 2018-11-23 2018-11-23 任务资源调配方法、装置、电子设备及计算机可读介质

Publications (2)

Publication Number Publication Date
CN109614227A CN109614227A (zh) 2019-04-12
CN109614227B true CN109614227B (zh) 2020-10-27

Family

ID=66003484

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811410469.7A Active CN109614227B (zh) 2018-11-23 2018-11-23 任务资源调配方法、装置、电子设备及计算机可读介质

Country Status (1)

Country Link
CN (1) CN109614227B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858017A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 用于处理任务的方法、设备和计算机程序产品
CN110764881A (zh) * 2019-10-23 2020-02-07 中国工商银行股份有限公司 分布式系统后台重试方法及装置
CN110908821B (zh) * 2019-11-08 2024-01-02 腾讯音乐娱乐科技(深圳)有限公司 任务失败管理的方法、装置、设备和存储介质
CN111010313B (zh) * 2019-12-05 2021-03-19 深圳联想懂的通信有限公司 一种批量处理的状态监控方法、服务器及存储介质
CN111176848B (zh) * 2019-12-31 2023-05-26 北大方正集团有限公司 集群任务的处理方法、装置、设备和存储介质
CN111858064A (zh) * 2020-07-29 2020-10-30 山东有人信息技术有限公司 一种动态内存分配方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740085B (zh) * 2014-12-11 2019-04-19 华为技术有限公司 容错处理方法及装置

Also Published As

Publication number Publication date
CN109614227A (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
CN109614227B (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
CN109643312B (zh) 托管查询服务
CN109983441B (zh) 用于批作业的资源管理
US11755452B2 (en) Log data collection method based on log data generated by container in application container environment, log data collection device, storage medium, and log data collection system
Yigitbasi et al. C-meter: A framework for performance analysis of computing clouds
US8631401B2 (en) Capacity planning by transaction type
US8752059B2 (en) Computer data processing capacity planning using dependency relationships from a configuration management database
US9401835B2 (en) Data integration on retargetable engines in a networked environment
US10191779B2 (en) Application execution controller and application execution method
US20070024898A1 (en) System and method for executing job step, and computer product
Xu et al. Adaptive task scheduling strategy based on dynamic workload adjustment for heterogeneous Hadoop clusters
US20180024863A1 (en) Task Scheduling and Resource Provisioning System and Method
US20190199785A1 (en) Determining server level availability and resource allocations based on workload level availability requirements
US8606905B1 (en) Automated determination of system scalability and scalability constraint factors
US10411977B2 (en) Visualization of workload distribution on server resources
US20170109415A1 (en) Platform and software framework for data intensive applications in the cloud
CN107251007B (zh) 集群计算服务确保装置和方法
CN115373835A (zh) Flink集群的任务资源调整方法、装置及电子设备
Han et al. Refining microservices placement employing workload profiling over multiple kubernetes clusters
CN110928659B (zh) 一种具有自适应功能的数值水池系统远程多平台接入方法
CN1783121A (zh) 用于执行设计自动化的方法和系统
CN110247802B (zh) 针对云服务单机环境的资源配置方法及装置
CN116185578A (zh) 计算任务的调度方法和计算任务的执行方法
US20210349705A1 (en) Performance sensitive storage system upgrade
Li et al. SoDa: A serverless-oriented deadline-aware workflow scheduling engine for IoT applications in edge clouds

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