掌桥专利:专业的专利平台
掌桥专利
首页

任务拥堵处理方法、装置和电子设备

文献发布时间:2023-06-19 11:22:42


任务拥堵处理方法、装置和电子设备

技术领域

本发明涉及计算机信息处理领域,具体而言,涉及一种任务拥堵处理方法、装置、电子设备及计算机可读介质。

背景技术

随着互联网技术的发展,企业逐渐积累起大量的数据计算需求,基于Hadoop(一种分布式系统基础架构,目前Hadoop已成为大数据的代名词,是业界大数据技术标准)的数据存储计算平台逐渐发展成为众多互联网企业的大数据标准平台。对于大型的Yarn(全称是Yet Another Resource Negotiator,意思是“另一种资源调度器”,是基于Hadoop平台的资源管理系统)作业平台,平台上每天都有上万甚至数十万的作业运行(作业或者任务通常是用户使用Yarn平台去完成自己的一个或若干个数据计算需求),作业提交运行是否顺畅以及调度状况直接影响着企业数据的产出和企业部门用户的使用体验。基于Yarn计算平台作业也随着企业分析需求和人员的增多日渐增长且变得复杂,平台作业调度资源管理问题也日渐突出,当作业平台发生拥堵时,人工介入分析处理比较缓慢且耗时,迫切需要新的技术手段来处理这种资源需求之间矛盾。

发明内容

本发明旨在有效解决任务平台上任务拥堵的情况。

为了解决上述技术问题,本发明第一方面提出一种任务拥堵处理方法,所述方法包括:监测任务平台和/或所述任务平台上多个任务的实时运行数据,所述任务平台用于提供所述多个任务运行所需的资源;根据所述任务平台和/或所述多个任务的运行数据,判断所述任务平台是否发生任务拥堵情况,在发生任务拥堵情况时分析拥堵原因;查询与所述拥堵原因相关的目标任务,释放所述目标任务占用的资源,以消除所述任务拥堵情况。

根据本发明的一种优选实施方式,所述在发生任务拥堵情况时分析拥堵原因包括:检查当前时段内所述任务平台接收的任务总量是否超过预设的第一阈值;所述查询与所述拥堵原因相关的目标任务,释放所述目标任务占用的资源包括:在所述当前时段内所述任务平台接收的任务总量超过所述第一阈值时,查找所述当前时段内向所述任务平台提交任务超过预设的第二阈值的用户,将所述用户提交的一个或多个任务作为所述目标任务,终止所述目标任务使得所述用户在所述任务平台上保留的任务数量小于或等于所述第二阈值。

根据本发明的一种优选实施方式,在所述查找所述当前时段内向所述任务平台提交任务超过预设的第二阈值的用户之前,还包括:查找预设的所述当前时段下允许每个用户在所述任务平台上运行任务的数量作为所述第二阈值。

根据本发明的一种优选实施方式,所述在发生任务拥堵情况时分析拥堵原因包括:检测当前是否存在占用资源超过预设的第三阈值的任务;所述查询与所述拥堵原因相关的目标任务,释放所述目标任务占用的资源包括:查询所述目标任务的关联人员,通知所述关联人员对所述目标任务进行处理以释放资源。

根据本发明的一种优选实施方式,所述查询所述目标任务的关联人员,包括:在所述目标任务占用资源超过预设的第四阈值时,将提交所述目标任务的用户作为所述关联人员;在所述目标任务造成拥堵未运行的任务数量超过预设的第五阈值时,将所述任务平台的运营人员作为所述关联人员。

根据本发明的一种优选实施方式,在所述通知所述关联人员对所述目标任务进行处理以释放资源之前,还包括:根据任务平台和/或所述任务平台上多个任务的历史运行数据,生成任务处理建议,所述任务处理建议用于发送给所述关联人员,供所述关联人员根据所述处理建议进行任务处理。

根据本发明的一种优选实施方式,还包括:在发生任务拥堵情况时,统计多个部门提交至所述任务平台的因拥堵导致未运行的任务,根据所述多个部门提交任务的优先级、请求资源和/或任务数量,计算所述各部门提交任务的成本,根据所述成本高低决定为所述多个部门任务分配资源的先后顺序。

根据本发明的一种优选实施方式,所述任务平台具有多个资源队列,所述多个资源队列分别用于为多种类型的任务提供资源;所述方法还包括:在所述任务平台接收新任务时,根据所述新任务的类型为所述新任务选择匹配的资源队列提供资源。

为了解决上述技术问题,本发明第二方面提出一种任务拥堵处理装置,所述装置包括:监测模块,监测任务平台和/或所述任务平台上多个任务的实时运行数据,所述任务平台用于提供所述多个任务运行所需的资源;拥堵分析模块,根据所述任务平台和/或所述多个任务的运行数据,判断所述任务平台是否发生任务拥堵情况,在发生任务拥堵情况时分析拥堵原因;资源释放模块,查询与所述拥堵原因相关的目标任务,释放所述目标任务占用的资源,以消除所述任务拥堵情况。

根据本发明的一种优选实施方式,所述拥堵分析模块检查当前时段内所述任务平台接收的任务总量是否超过预设的第一阈值;所述资源释放模块在所述当前时段内所述任务平台接收的任务总量超过所述第一阈值时,查找所述当前时段内向所述任务平台提交任务超过预设的第二阈值的用户,将所述用户提交的一个或多个任务作为所述目标任务,终止所述目标任务使得所述用户在所述任务平台上保留的任务数量小于或等于所述第二阈值。

根据本发明的一种优选实施方式,所述资源释放模块查找预设的所述当前时段下允许每个用户在所述任务平台上运行任务的数量作为所述第二阈值。

根据本发明的一种优选实施方式,所述拥堵分析模块检测当前是否存在占用资源超过预设的第三阈值的任务;所述资源释放模块查询所述目标任务的关联人员,通知所述关联人员对所述目标任务进行处理以释放资源。

根据本发明的一种优选实施方式,所述资源释放模块在所述目标任务占用资源超过预设的第四阈值时,将提交所述目标任务的用户作为所述关联人员;所述资源释放模块在所述目标任务造成拥堵未运行的任务数量超过预设的第五阈值时,将所述任务平台的运营人员作为所述关联人员。

根据本发明的一种优选实施方式,还包括:建议生成模块,在所述通知所述关联人员对所述目标任务进行处理以释放资源之前,根据任务平台和/或所述任务平台上多个任务的历史运行数据,生成任务处理建议,所述任务处理建议用于发送给所述关联人员,供所述关联人员根据所述处理建议进行任务处理。

根据本发明的一种优选实施方式,还包括:任务排序模块,在发生任务拥堵情况时,统计多个部门提交至所述任务平台的因拥堵导致未运行的任务,根据所述多个部门提交任务的优先级、请求资源和/或任务数量,计算所述各部门提交任务的成本,根据所述成本高低决定为所述多个部门任务分配资源的先后顺序。

根据本发明的一种优选实施方式,所述任务平台具有多个资源队列,所述多个资源队列分别用于为多种类型的任务提供资源;所述装置还包括:资源分配模块,在所述任务平台接收新任务时,根据所述新任务的类型为所述新任务选择匹配的资源队列提供资源。

为了解决上述技术问题,本发明第三方面提出一种电子设备,其包括处理器以及存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行上述的方法。

为了解决上述技术问题,本发明第四方面提出一种计算机可读存储介质,该所述计算机可读存储介质存储一个或多个程序,当所述一个或多个程序被处理器执行时,实现上述的方法。

由于本发明实时对任务平台以及平台上运行的任务进行监控,通过监控数据出现的异常情况可以及时发现任务拥堵情况,此时分析造成拥堵的原因,并定位到与拥堵原因相关的目标任务,及时释放目标任务所占用的资源,从而确保平台有足够的资源分配给其他任务,消除任务拥堵情况。

附图说明

为了使本发明所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本发明的具体实施例。但需声明的是,下面描述的附图仅仅是本发明的示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。

图1是根据本发明的一个实施例的任务拥堵处理方法的流程图;

图2是根据本发明的一个实施例的任务拥堵处理方法的流程图;

图3是根据本发明的一个实施例的任务拥堵处理方法的流程图;

图4是根据本发明的一个实施例的任务拥堵处理装置的框图;

图5是根据本发明的一个实施例的任务拥堵处理装置的框图;

图6是根据本发明的一个实施例的任务拥堵处理装置的框图;

图7是根据本发明的一个实施例的电子设备的框图;

图8是根据本发明的一个实施例的计算机可读存储介质的示意图。

具体实施方式

现在将参考附图来更加全面地描述本发明的示例性实施例,虽然各示例性实施例能够以多种具体的方式实施,但不应理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例是为了使本发明的内容更加完整,更加便于将发明构思全面地传达给本领域的技术人员。

在符合本发明的技术构思的前提下,在某个特定的实施例中描述的结构、性能、效果或者其他特征可以以任何合适的方式结合到一个或更多其他的实施例中。

在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。

附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。

附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。

目前,Yarn平台本身提供了很多作业资源调度方法,如FIFO(First Input FirstOutput,指先进先出)、容量调度、公平调度等,这些调度方法主要是在用户提交后安排用户的任务资源如何分配,在一定程度上提高集群计算资源的利用率,但无法改善用户的提交习惯或者行为,大部分非工程技术用户对Yarn技术框架了解不深,粗狂式使用集群资源,如用户提交重复提交任务,提交任务使用不合理的资源或者集中提交任务等情况,Yarn自身这些调度方法则无法规避用户任务不合理的提交所带来的问题。有鉴于此,本发明的技术方案中监测任务平台和/或所述任务平台上多个任务的实时运行数据,所述任务平台用于提供所述多个任务运行所需的资源;根据所述任务平台和/或所述多个任务的运行数据,判断所述任务平台是否发生任务拥堵情况,在发生任务拥堵情况时分析拥堵原因;查询与所述拥堵原因相关的目标任务,释放所述目标任务占用的资源,以消除所述任务拥堵情况。由于本发明实时对任务平台以及平台上运行的任务进行监控,通过监控数据出现的异常情况可以及时发现任务拥堵情况,此时分析造成拥堵的原因,并定位到与拥堵原因相关的目标任务,及时释放目标任务所占用的资源,从而确保平台有足够的资源分配给其他任务,消除任务拥堵情况。

如图1所示,本发明的一个实施例中提供了一种任务拥堵处理方法,方法包括:

步骤S110,监测任务平台和/或任务平台上多个任务的实时运行数据,任务平台用于提供多个任务运行所需的资源。

在本实施例中,以Yarn平台为例,可以对Yarn集群上所有正在运行的实时任务有关指标数据进行采集,也可以对Yarn集群自身相关指标数据进行采集,或同时采集两者。

步骤S120,根据任务平台和/或多个任务的运行数据,判断任务平台是否发生任务拥堵情况,在发生任务拥堵情况时分析拥堵原因。

在本实施例中,当平台发生拥堵时,部分指标数据发生异常,通过集群实时采集的指标数据可以分析出集群是否发生拥堵及拥堵严重程度,以此来判断是否需要触发管控用户提交的任务。

步骤S130,查询与拥堵原因相关的目标任务,释放目标任务占用的资源,以消除任务拥堵情况。

在本实施例中,在Yarn集群队列发生拥堵时,对用户提交的相关任务进行处理,可以有效缓解用户任务对资源的挤兑现象,使得集群能够空余出资源来应对当前用户的紧急使用需求。

根据本发明的技术方案,实时对任务平台以及平台上运行的任务进行监控,通过监控数据出现的异常情况可以及时发现任务拥堵情况,此时分析造成拥堵的原因,并定位到与拥堵原因相关的目标任务,及时释放目标任务所占用的资源,从而确保平台有足够的资源分配给其他任务,消除任务拥堵情况。

如图2所示,本发明的一个实施例中提供了一种任务拥堵处理方法,方法包括:

步骤S210,监测任务平台和/或任务平台上多个任务的实时运行数据,任务平台用于提供多个任务运行所需的资源。

步骤S220,根据任务平台和/或多个任务的运行数据,判断任务平台是否发生任务拥堵情况,在发生任务拥堵情况时检查当前时段内任务平台接收的任务总量是否超过预设的第一阈值。

在本实施例中,对第一阈值的具体数值不进行限制。在本实施例中,拥堵原因是短时间内用户提交了过多的任务,超出了集群资源可以消化的能力。

步骤S230,在当前时段内任务平台接收的任务总量超过第一阈值时,查找预设的当前时段下允许每个用户在任务平台上运行任务的数量作为第二阈值。

在本实施例中,对于大型的Yarn作业平台,通常会有很多部门人员提交任务,而作业平台的资源是有限的,一般情况下早上有数据同步和数仓数据及报表产出等业务部门任务,白天有分析师、运营人员等临时验证测试任务。在本实施例中,对应对单位时段内提交任务密集的情况,预先设置任务提交时段规则,例如,10点到11点早高峰时段,每个用户只能在平台上运行一个任务,而在11点到晚上18点的时段,则允许每个用户运行四个任务。

步骤S240,查找当前时段内向任务平台提交任务超过预设的第二阈值的用户,将用户提交的一个或多个任务作为目标任务,终止目标任务使得用户在任务平台上保留的任务数量小于或等于第二阈值。

在本实施例中,对第二阈值的具体数值不进行限制。在本实施例中,当满足触发管控用户条件时,可以通过算法实现计算用户总共提交了多少任务,那些任务需要立即处理并释放资源,具体地,如果用户运行的任务超过第二阈值,则终止用户提交的超出第二阈值的其他任务,并邮件通知用户。针对集群作业容易发生拥堵的时段,根据集群拥堵的状况等级,分时段去限制用户能够正在运行的任务数量,来控制用户对资源的使用。

步骤S250,在任务平台接收新任务时,根据新任务的类型为新任务选择匹配的资源队列提供资源。

在本实施例中,任务平台具有多个资源队列,多个资源队列分别用于为多种类型的任务提供资源。在本实施例中,建立了规范化任务提交机制,对yarn资源队列根据队列和用途进行划分,规范化用户提交的任务名称以便方别识别,不同任务部分和类型的作业提交到不同队列,防止用户提交到不同的队列或者重复提交任务去抢占资源。

根据本实施例的技术方案,实现了基于Yarn的作业资源管理,通过程序化分析用户作业,以及算法管理用户任务实现对用户作业进行治理,规范用户的任务提交习惯,来改善作业平台上资源队列的拥堵情况,减少用户作业等待时间,提升用户的提交作业体验和资源使用效率。

如图3所示,本发明的一个实施例中提供了一种任务拥堵处理方法,方法包括:

步骤S310,监测任务平台和/或任务平台上多个任务的实时运行数据,任务平台用于提供多个任务运行所需的资源。

步骤S320,根据任务平台和/或多个任务的运行数据,判断任务平台是否发生任务拥堵情况,在发生任务拥堵情况时检测当前是否存在占用资源超过预设的第三阈值的任务。

在本实施例中,对第三阈值的具体数值不进行限制。在本实施例中,任务拥堵的原因是单个任务占用了太多的资源,导致段时间内别的用户提交的任务无资源可用。

步骤S330,根据任务平台和/或任务平台上多个任务的历史运行数据,生成任务处理建议,查询与拥堵原因相关的目标任务,查询目标任务的关联人员,通知关联人员对目标任务进行处理以释放资源,通知中包含任务处理建议,供关联人员根据处理建议进行任务处理。

在本实施例中,对任务运行历史相关指标进行采集。在本实施例中,当拥堵情况严重时,限制资源使用比较大的任务分流到集群资源使用量比较低的时段,可以对Yarn上所有任务进行扫描检测,对任务使用资源较多的用户发邮件提示优化任务,确保资源能够释放出来供当前的其他用户使用。具体地,在目标任务占用资源超过预设的第四阈值时,将提交目标任务的用户作为关联人员;在目标任务造成拥堵未运行的任务数量超过预设的第五阈值时,将任务平台的运营人员作为关联人员。在本实施例中,对第四阈值的具体数值不进行限制。在本实施例中,例如,当目标任务堵塞的任务数量超过10个时,通过短信或邮件方式通知任务平台的运营人员,而如果单个任务占用的存储空间超过3T,则通知提交任务的用户进行优化。

在本实施例中,历史的任务运行指标可用于分析哪些用户运行使用资源不合理,形成具体的优化建议,从而实现避免集群资源的浪费,同时优化集群资源的使用情况。在本实施例中,可以建立Yarn的任务运行监控和任务分析体系,定时检查集群运行状况和资源使用状况,来保障集群正常运行,并开发相应的程序来保存Yarn每天的队列和任务运行数据,对这些任务数据进行分析,查找异常和不规范的任务,分析各部门任务,形成可以向用户提供的任务优化建议,引导用户合理运行任务和使用集群资源。

步骤S340,在发生任务拥堵情况时,统计多个部门提交至所述任务平台的因拥堵导致未运行的任务,根据所述多个部门提交任务的优先级、请求资源和/或任务数量,计算所述各部门提交任务的成本,根据所述成本高低决定为所述多个部门任务分配资源的先后顺序。

在本实施例中,可以对提交到集群的任务划分资源优先等级,分为一般、高、非常高。等级更高的任务可以优先获取Yarn集群分配的资源,同时资源成本价格也会越高,对应的等级任务要承担对应的成本价格。各个部门任务消耗的成本通常是有任务数量和任务消耗的资源的多少决定的,在集群资源不足的时候,不通的部门之间任务资源是抢占式的进行,资源成本价格高的任务优先获得集群资源,由此形成一种资源的竞价调度机制。

由于大部分非工程技术用户对Yarn运行机制了解不深,使用现状上比较粗放且不规范,造成当作业队列发生严重拥堵时,人工手动排查任务处理比较耗时且解决缓慢,本实施例的技术方案通过程序化管理用户任务和分析用户任务,实现对用户作业进行治理,规范用户的任务提交习惯,制定平台任务提交规则,基于规则去管理任务,最终实现减少用户作业等待时间,提升用户的提交作业体验和资源使用效率。

本领域技术人员可以理解,实现上述实施例的全部或部分步骤被实现为由数据处理设备(包括计算机)执行的程序,即计算机程序。在该计算机程序被执行时,可以实现本发明提供的上述方法。而且,所述的计算机程序可以存储于计算机可读存储介质中,该存储介质可以是磁盘、光盘、ROM、RAM等可读存储介质,也可以是多个存储介质组成的存储阵列,例如磁盘或磁带存储阵列。所述的存储介质不限于集中式存储,其也可以是分布式存储,例如基于云计算的云存储。

下面描述本发明的装置实施例,该装置可以用于执行本发明的方法实施例。对于本发明装置实施例中描述的细节,应视为对于上述方法实施例的补充;对于在本发明装置实施例中未披露的细节,可以参照上述方法实施例来实现。

如图4所示,本发明的一个实施例中提供了一种任务拥堵处理装置,装置包括:

监测模块410,监测任务平台和/或任务平台上多个任务的实时运行数据,任务平台用于提供多个任务运行所需的资源。

在本实施例中,以Yarn平台为例,可以对Yarn集群上所有正在运行的实时任务有关指标数据进行采集,也可以对Yarn集群自身相关指标数据进行采集,或同时采集两者。

拥堵分析模块420,根据任务平台和/或多个任务的运行数据,判断任务平台是否发生任务拥堵情况,在发生任务拥堵情况时分析拥堵原因。

在本实施例中,当平台发生拥堵时,部分指标数据发生异常,通过集群实时采集的指标数据可以分析出集群是否发生拥堵及拥堵严重程度,以此来判断是否需要触发管控用户提交的任务。

资源释放模块430,查询与拥堵原因相关的目标任务,释放目标任务占用的资源,以消除任务拥堵情况。

在本实施例中,在Yarn集群队列发生拥堵时,对用户提交的相关任务进行处理,可以有效缓解用户任务对资源的挤兑现象,使得集群能够空余出资源来应对当前用户的紧急使用需求。

根据本发明的技术方案,实时对任务平台以及平台上运行的任务进行监控,通过监控数据出现的异常情况可以及时发现任务拥堵情况,此时分析造成拥堵的原因,并定位到与拥堵原因相关的目标任务,及时释放目标任务所占用的资源,从而确保平台有足够的资源分配给其他任务,消除任务拥堵情况。

如图5所示,本发明的一个实施例中提供了一种任务拥堵处理装置,装置包括:

监测模块510,监测任务平台和/或任务平台上多个任务的实时运行数据,任务平台用于提供多个任务运行所需的资源。

拥堵分析模块520,根据任务平台和/或多个任务的运行数据,判断任务平台是否发生任务拥堵情况,在发生任务拥堵情况时检查当前时段内任务平台接收的任务总量是否超过预设的第一阈值。

在本实施例中,对第一阈值的具体数值不进行限制。在本实施例中,拥堵原因是短时间内用户提交了过多的任务,超出了集群资源可以消化的能力。

资源释放模块530,在当前时段内任务平台接收的任务总量超过第一阈值时,查找预设的当前时段下允许每个用户在任务平台上运行任务的数量作为第二阈值。

在本实施例中,对于大型的Yarn作业平台,通常会有很多部门人员提交任务,而作业平台的资源是有限的,一般情况下早上有数据同步和数仓数据及报表产出等业务部门任务,白天有分析师、运营人员等临时验证测试任务。在本实施例中,对应对单位时段内提交任务密集的情况,预先设置任务提交时段规则,例如,10点到11点早高峰时段,每个用户只能在平台上运行一个任务,而在11点到晚上18点的时段,则允许每个用户运行四个任务。

资源释放模块530,查找当前时段内向任务平台提交任务超过预设的第二阈值的用户,将用户提交的一个或多个任务作为目标任务,终止目标任务使得用户在任务平台上保留的任务数量小于或等于第二阈值。

在本实施例中,对第二阈值的具体数值不进行限制。在本实施例中,当满足触发管控用户条件时,可以通过算法实现计算用户总共提交了多少任务,那些任务需要立即处理并释放资源,具体地,如果用户运行的任务超过第二阈值,则终止用户提交的超出第二阈值的其他任务,并邮件通知用户。针对集群作业容易发生拥堵的时段,根据集群拥堵的状况等级,分时段去限制用户能够正在运行的任务数量,来控制用户对资源的使用。

资源分配模块540,在任务平台接收新任务时,根据新任务的类型为新任务选择匹配的资源队列提供资源。

在本实施例中,任务平台具有多个资源队列,多个资源队列分别用于为多种类型的任务提供资源。在本实施例中,建立了规范化任务提交机制,对yarn资源队列根据队列和用途进行划分,规范化用户提交的任务名称以便方别识别,不同任务部分和类型的作业提交到不同队列,防止用户提交到不同的队列或者重复提交任务去抢占资源。

根据本实施例的技术方案,实现了基于Yarn的作业资源管理,通过程序化分析用户作业,以及算法管理用户任务实现对用户作业进行治理,规范用户的任务提交习惯,来改善作业平台上资源队列的拥堵情况,减少用户作业等待时间,提升用户的提交作业体验和资源使用效率。

如图6所示,本发明的一个实施例中提供了一种任务拥堵处理装置,装置包括:

监测模块610,监测任务平台和/或任务平台上多个任务的实时运行数据,任务平台用于提供多个任务运行所需的资源。

拥堵分析模块620,根据任务平台和/或多个任务的运行数据,判断任务平台是否发生任务拥堵情况,在发生任务拥堵情况时检测当前是否存在占用资源超过预设的第三阈值的任务。

在本实施例中,对第三阈值的具体数值不进行限制。在本实施例中,任务拥堵的原因是单个任务占用了太多的资源,导致段时间内别的用户提交的任务无资源可用。

建议生成模块630,根据任务平台和/或任务平台上多个任务的历史运行数据,生成任务处理建议。

资源释放模块640,查询与拥堵原因相关的目标任务,查询目标任务的关联人员,通知关联人员对目标任务进行处理以释放资源,通知中包含任务处理建议,供关联人员根据处理建议进行任务处理。

在本实施例中,对任务运行历史相关指标进行采集。在本实施例中,当拥堵情况严重时,限制资源使用比较大的任务分流到集群资源使用量比较低的时段,可以对Yarn上所有任务进行扫描检测,对任务使用资源较多的用户发邮件提示优化任务,确保资源能够释放出来供当前的其他用户使用。具体地,在目标任务占用资源超过预设的第四阈值时,将提交目标任务的用户作为关联人员;在目标任务造成拥堵未运行的任务数量超过预设的第五阈值时,将任务平台的运营人员作为关联人员。在本实施例中,对第四阈值的具体数值不进行限制。在本实施例中,例如,当目标任务堵塞的任务数量超过10个时,通过短信或邮件方式通知任务平台的运营人员,而如果单个任务占用的存储空间超过3T,则通知提交任务的用户进行优化。

在本实施例中,历史的任务运行指标可用于分析哪些用户运行使用资源不合理,形成具体的优化建议,从而实现避免集群资源的浪费,同时优化集群资源的使用情况。在本实施例中,可以建立Yarn的任务运行监控和任务分析体系,定时检查集群运行状况和资源使用状况,来保障集群正常运行,并开发相应的程序来保存Yarn每天的队列和任务运行数据,对这些任务数据进行分析,查找异常和不规范的任务,分析各部门任务,形成可以向用户提供的任务优化建议,引导用户合理运行任务和使用集群资源。

任务排序模块650,在发生任务拥堵情况时,统计多个部门提交至所述任务平台的因拥堵导致未运行的任务,根据所述多个部门提交任务的优先级、请求资源和/或任务数量,计算所述各部门提交任务的成本,根据所述成本高低决定为所述多个部门任务分配资源的先后顺序。

在本实施例中,可以对提交到集群的任务划分资源优先等级,分为一般、高、非常高。等级更高的任务可以优先获取Yarn集群分配的资源,同时资源成本价格也会越高,对应的等级任务要承担对应的成本价格。各个部门任务消耗的成本通常是有任务数量和任务消耗的资源的多少决定的,在集群资源不足的时候,不通的部门之间任务资源是抢占式的进行,资源成本价格高的任务优先获得集群资源,由此形成一种资源的竞价调度机制。

由于大部分非工程技术用户对Yarn运行机制了解不深,使用现状上比较粗放且不规范,造成当作业队列发生严重拥堵时,人工手动排查任务处理比较耗时且解决缓慢,本实施例的技术方案通过程序化管理用户任务和分析用户任务,实现对用户作业进行治理,规范用户的任务提交习惯,制定平台任务提交规则,基于规则去管理任务,最终实现减少用户作业等待时间,提升用户的提交作业体验和资源使用效率。

本领域技术人员可以理解,上述装置实施例中的各模块可以按照描述分布于装置中,也可以进行相应变化,分布于不同于上述实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的实体形式的实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。

图7是根据本发明的一种电子设备的示例性实施例的结构框图。图7显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图7所示,该示例性实施例的电子设备200以通用数据处理设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。

其中,所述存储单元220存储有计算机可读程序,其可以是源程序或都只读程序的代码。所述程序可以被处理单元210执行,使得所述处理单元210执行本发明各种实施方式的步骤。例如,所述处理单元210可以执行如图1至图3所示的步骤。

所述存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。所述存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备200也可以与一个或多个外部设备300(例如键盘、显示器、网络设备、蓝牙设备等)通信,使得用户能经由这些外部设备300与该电子设备200交互,和/或使得该电子设备200能与一个或多个其它数据处理设备(例如路由器、调制解调器等等)进行通信。这种通信可以通过输入/输出(I/O)接口250进行,还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)进行。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,电子设备200中可使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

图8是本发明的一个计算机可读介质实施例的示意图。如图8所示,所述计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。当所述计算机程序被一个或多个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:监测任务平台和/或所述任务平台上多个任务的实时运行数据,所述任务平台用于提供所述多个任务运行所需的资源;根据所述任务平台和/或所述多个任务的运行数据,判断所述任务平台是否发生任务拥堵情况,在发生任务拥堵情况时分析拥堵原因;查询与所述拥堵原因相关的目标任务,释放所述目标任务占用的资源,以消除所述任务拥堵情况。

通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台数据处理设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。

所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

综上所述,本发明可以执行计算机程序的方法、装置、电子设备或计算机可读介质来实现。可以在实践中使用微处理器或者数字信号处理器(DSP)等通用数据处理设备来实现本发明的一些或者全部功能。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 任务拥堵处理方法、装置和电子设备
  • 任务处理网络生成、任务处理方法、装置、电子设备及存储介质
技术分类

06120112901539