CN109416646B - 一种容器分配的优化方法及处理设备 - Google Patents

一种容器分配的优化方法及处理设备 Download PDF

Info

Publication number
CN109416646B
CN109416646B CN201680086973.9A CN201680086973A CN109416646B CN 109416646 B CN109416646 B CN 109416646B CN 201680086973 A CN201680086973 A CN 201680086973A CN 109416646 B CN109416646 B CN 109416646B
Authority
CN
China
Prior art keywords
tasks
task
server
container
relationship
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
CN201680086973.9A
Other languages
English (en)
Other versions
CN109416646A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN109416646A publication Critical patent/CN109416646A/zh
Application granted granted Critical
Publication of CN109416646B publication Critical patent/CN109416646B/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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)

Abstract

一种容器分配的优化方法及处理设备,其中,容器分配的优化方法包括:认知计算服务器获取N个任务,N为大于1的整数,N个任务由应用程序分解得到;对N个任务进行调用关系分析,确定至少一个任务关系组,每个任务关系组包括至少两个任务,至少两个任务中的任意两个任务之间存在调用关系,调用关系为任意两个任务之间对执行结果的依赖关系;根据确定的至少一个任务关系组生成容器分配调整信息,容器分配调整信息包括至少一个任务关系组与容器之间的映射关系;向被选定的从服务器发送容器分配调整信息。采用本发明实施例,有利于减少资源开销,提高内存资源利用率。

Description

一种容器分配的优化方法及处理设备
技术领域
本发明涉及云计算技术领域,尤其涉及一种容器分配的优化方法及处理设备。
背景技术
开源分布式文件存储及处理框架Hadoop大数据技术伴随着席卷全球的大数据浪潮不断带来前沿的应用与实践。如今,在分布式文件***Hadoop2.0的架构中引入了容器(Container)的概念,容器在Hadoop资源管理***中是分配资源(内存、处理器、硬盘等)的单元,它启动时便会相应启动一个Java虚拟机(Java Virtual Machine,JVM),以便在这个容器里面执行相应的任务,诸如:离线计算框架(如MapReduce计算)、内存计算框架Spark等都可以运行在Hadoop资源管理Yarn(Yet Another Resource Negotiator,另一种资源协调器)容器里面。
图1是Hadoop分布式资源管理内存计算框架Spark on Yarn***的***架构图,该Spark on Yarn***包括:客户端Client、主服务器集群和从服务器集群,在图1中,主服务器集群和从服务器集群分别以一台主服务器及一台从服务器为例来介绍,主服务器中运行资源管理模块(Resource Manager,RM)和应用程序管理模块(Application Manager,AM),从服务器中运行节点管理模块(Node Manager,NM)、容器代理模块(Agent)、Hadoop分布式文件***(Hadoop Distribution File System,HDFS)、Hadoop数据库(Hadoop Database,Hbase)、映射规约运算模块(Map Ruduce,MR)。上述***的容器分配过程为:客户端首先向主服务器提交一个包含目标应用程序的作业请求,并向HDFS上传目标应用程序的数据文件,主服务器中的资源管理模块监听到客户端的作业请求后,选择一个从服务器用来分配容器,通知该从服务器中的节点管理模块分配一个容器作为常驻容器,并在常驻容器中创建并运行内存计算框架应用程序主控模块(Spark Application Master,SAM),内存计算框架应用程序主控模块向应用程序管理模块注册常驻容器与内存计算框架应用程序主控模块之间的映射关系,内存计算框架应用程序主控模块从Hadoop分布式文件***中获取目标应用程序的数据文件,并根据预设的容器分配策略,解析目标应用程序为处于多个不同运行阶段的多个任务,并为每一个任务分配一个独立的容器,且在每个独立的容器中创建并运行内存计算框架执行模块(Spark Executor),通过内存计算框架执行模块执行容器中的任务。
在研究过程中发现,现有Spark on Yarn***针对应用程序的多个任务进行容器分配时,针对每一个任务都对应分配一个容器,即任务与容器之间是一一对应的,由于每个容器的创建、销毁和回收都存在时间开销,尤其是在大规模应用程序(Application)的执行过程中,这种容器分配策略使得时间开销累计占比会达到整个目标应用程序执行时间的30%,导致应用程序执行过程中的时间开销大,严重影响了应用程序的执行效率。
发明内容
本发明提供一种容器分配的优化方法及处理设备,通过优化存在调用关系的多个任务的容器分配策略,以期减少资源开销,提高***资源利用率。
第一方面,本发明实施例提供一种容器分配的优化方法,该方法应用于分布式资源管理内存计算框架Spark on Yarn***中的认知计算服务器,其中,Spark on Yarn***包括被选定用来分配容器的从服务器,该从服务器与认知计算服务器具有通信连接,方法步骤包括:
认知计算服务器获取N个任务,N为大于1的整数,上述N个任务由应用程序分解得到;
认知计算服务器对上述N个任务进行调用关系分析,确定至少一个任务关系组,每个任务关系组包括至少两个任务,其中,任意两个任务之间存在调用关系,上述调用关系为任意两个任务之间对执行结果存在依赖关系;
认知计算服务器根据确定的至少一个任务关系组生成容器分配调整信息,容器分配调整信息包括至少一个任务关系组与容器之间的映射关系;
认知计算服务器向被选定的从服务器发送容器分配调整信息。
在容器分配的优化方法实施例中,Spark on Yarn***的认知计算服务器通过分析目标应用程序的多个任务的调用关系,确定至少一个任务关系组,建立至少一个任务关系组与容器之间的映射关系,生成包含该映射关系的容器分配调整信息,向从服务器发送该容器分配调整信息,以促使从服务器根据上述映射关系优化多个任务的容器分配策略,由于任务关系组包括至少两个任务,故而与该任务关系组对应的容器不再仅对应一个任务,而是对应一个任务关系组中的至少两个任务,相对于现有方案中一个容器仅对应一个任务的分配策略,有利于节约容器分配数量,从而减少资源开销,提高***资源利用率。
结合第一方面,在一些可能的实现方式中,上述任务关系组包括第一任务关系组以及第二任务关系组,在认知计算服务器根据确定的至少一个任务关系组生成容器分配调整信息之前,方法还包括:
认知计算服务器对第一任务关系组以及第二任务关系组进行调用关系完备性分析;
若第一任务关系组中的任务和第二任务关系组中的任务之间存在调用关系,认知计算服务器将第一任务关系组和第二任务关系组合并为独立的任务关系组;
认知计算服务器对第一任务关系组和第二任务关系组与容器之间的映射关系进行调整。
可以看出,本发明可选的实施例中,认知计算服务器通过对多个任务关系组进行完备性分析,合并存在调用关系的任务关系组为独立的任务关系组,由于该独立的任务关系组中包含更多的任务,故而与该独立的任务关系组对应的容器将与更多的任务关联,有利于进一步增大单个容器所对应的任务数量,从而减少所有任务对应的容器数量,提高容器执行效率的同时,进一步减少资源开销,提高***资源利用率。
结合第一方面,在一些可能的实现方式中,认知计算服务器对N个任务进行调用关系分析,确定至少一个任务关系组,包括:
认知计算服务器从N个任务中确定X个任务,X个任务中的任一任务与至少一个其他任务之间存在调用关系,其他任务为所述X个任务中除所述任一任务之外的任务,X为小于或等于N的正整数;
认知计算服务器从X个任务中确定至少一个任务关系组。
可以看出,本发明可选的实施例中,认知计算服务器预先筛选出存在调用关系的X个任务,及时滤除N个任务中的和其他任务没有任何调用关系的单个任务,仅从该X个任务中确定任务关系组,有利于提高算法的执行效率。
结合第一方面,在一些可能的实现方式中,认知计算服务器从X个任务中确定至少一个任务关系组,包括:
认知计算服务器对X个任务所包括的调用关系进行分析,确定X个任务中包括的Y个任务关系组,上述Y个任务关系组中的每一个任务关系组包括至少两个任务,其中,任意两个任务之间存在所述调用关系,Y为小于X的正整数。
结合第一方面,在一些可能的实现方式中,认知计算服务器对X个任务所包括的调用关系进行分析,确定X个任务中包括的Y个任务关系组,包括:
认知计算服务器将X个任务和X个任务中存在的调用关系等效为图论中的有向图,其中,将X个任务等效为有向图中的顶点,将X个任务中存在的调用关系等效为上述有向图的顶点之间的有向连接线;
认知计算服务器对所述有向图的Y个独立集进行求解,以得到上述Y个独立集对应的Y个任务关系组。
结合第一方面,在一些可能的实现方式中,认知计算服务器向被选定的从服务器发送容器分配调整信息,包括:
认知计算服务器检测被选定的从服务器中容器的可用资源;
若检测到被选定的从服务器中容器的可用资源小于Y个任务关系组所需要的资源,则向被选定的从服务器发送针对Y个任务关系组中的Y1个任务关系组的容器分配指示信息,Y1为小于Y的正整数。
可以看出,本发明可选的实施例中,认知计算服务器能够根据被选定的从服务器中容器的可用资源动态调整容器分配指示信息,避免从服务器因容器的可用资源不足而无法分配容器的情况发生,有利于提升***分配容器的稳定性。
第二方面,本发明实施例提供一种容器分配的优化方法,应用于分布式资源管理内存计算框架Spark on Yarn***中的从服务器,该从服务器为被选定用来分配容器的从服务器,上述Spark on Yarn***包括与从服务器通信连接的认知计算服务器,该方法包括:
从服务器获取认知计算服务器发送的容器分配调整信息,容器分配调整信息包括至少一个任务关系组和容器之间的映射关系,至少一个任务关系组是对目标应用程序的N个任务进行调用关系分析而确定的,每个所述独立的任务关系组包括至少两个任务,至少两个任务中的任意两个任务之间存在调用关系,调用关系为任意两个任务之间对执行结果的依赖关系;
从服务器根据容器分配调整信息,为上述N个任务分配容器。
可以看出,本发明实施例中,Spark on Yarn***的从服务器获取认知计算服务器发送的容器分配调整信息,该容器分配调整信息中包含至少一个任务关系组和容器之间的映射关系,由于任务关系组中包括至少两个任务,故而与该任务关系组对应的容器不再仅对应一个任务,而是对应一个任务关系组中的至少两个任务,相对于现有方案中一个容器仅对应一个任务的分配策略,有利于节约容器分配数量,有利于减少资源开销,提高***资源利用率。
结合第二方面,在一些可能的实现方式中,所述从服务器获取所述认知计算服务器发送的容器分配调整信息之前,所述方法还包括:
从服务器获取目标应用程序的数据文件;
从服务器对目标应用程序解析得到N个任务;
从服务器向认知计算服务器发送容器分配请求,该容器分配请求用于请求所述认知计算服务器应用程序对N个任务进行调用关系分析,以确定所述N个任务的容器分配调整信息。
结合第二方面,在一些可能的实现方式中,至少一个任务关系组为Y个任务关系组,Y为小于N的正整数;
若被选定的从服务器中容器的可用资源小于所述Y个任务关系组所需要的资源,则容器分配调整信息为针对Y个任务关系组中的Y1个任务关系组的容器分配调整信息,Y1为小于Y的正整数。
可以看出,本发明可选的实施例中,Spark on Yarn***的从服务器获取到的容器分配调整信息可以根据从服务器中容器的可用资源进行动态调整,避免从服务器因容器的可用资源不足而无法分配容器的情况发生,有利于提升***分配容器的稳定性。
进一步地,结合第二方面,在一些可能的实现方式中,从服务器根据容器分配调整信息,为N个任务分配容器之后,方法还包括:
从服务器获取容器中的目标容器对应的任务关系组的n个任务,n为大于1的正整数;
从服务器获取n个任务的执行阶段参数和n个任务的调用关系,执行阶段参数至少包括两个执行阶段参数;
从服务器根据执行阶段参数和n个任务的调用关系,确定n个任务的执行顺序;
从服务器在目标容器中按照执行顺序运行上述n个任务。
可以看出,本发明可选的实施例中,从服务器为任务关系组分配目标容器之后,可以在该目标容器中连续运行任务关系组的n个任务,相对于现有技术中一个容器的生命周期只用于运行一个任务的方案来说,有利于提升容器的执行效率。
进一步地,结合第二方面,在一些可能的实现方式中,从服务器在目标容器中按照执行顺序运行所述n个任务之后,该方法还包括:
从服务器销毁所述目标容器,回收目标容器对应的Java虚拟机资源。
可以看出,本发明可选的实施例中,从服务器在目标容器中连续运行任务关系组的n个任务,并在该n个任务运行完后,才销毁目标容器,回收目标容器对应的Java虚拟机资源,即无需为每一个任务执行容器创建、销毁以及资源回收的操作过程,实现了容器的复用,有利于减少资源开销,提高容器执行效率。
第三方面,本发明实施例了提供一种认知计算服务器,该装置具有实现上述方法设计中认知计算服务器的行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,认知计算服务器包括处理器,所述处理器被配置为支持认知计算服务器执行上述方法中相应的功能。进一步的,认知计算服务器还可以包括接收器和发射器,所述接收器和发射器用于支持认知计算服务器与从服务器等设备之间的通信。进一步的,认知计算服务器还可以包括存储器,所述存储器用于与处理器耦合,其保存认知计算服务器必要的程序指令和数据。
第四方面,本发明实施例了提供一种从服务器,该装置具有实现上述方法设计中从服务器的行为的功能。上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,从服务器包括处理器,上述处理器被配置为支持从服务器执行上述方法中相应的功能。进一步的,从服务器还可以包括接收器和发射器,接收器和发射器用于支持从服务器与认知计算服务器等设备之间的通信。进一步的,从服务器还可以包括存储器,上述存储器用于与处理器耦合,其保存从服务器必要的程序指令和数据。
第五方面,本发明实施例提供了一种容器处理***,应用与分布式资源管理内存计算框架Spark on Yarn***,上述容器处理***包括如本发明实施例第三方面提供的认知计算服务器和本发明实施例第四方面提供的从服务器。
第六方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储了程序代码。上述程序代码包括用于执行本发明实施例第一方面任一方法中所描述的部分或全部步骤的指令。
第七方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储了程序代码。程序代码包括用于执行本发明实施例第二方面任一方法中所描述的部分或全部步骤的指令。
结合以上任一方面,在一些可能的实现方式中,所述调用关系是所述任务的数据文件之间的调用关系,所述调用关系包括以下至少一种:直接调用关系和间接调用关系;所述直接调用关系包括以下至少一种:单向直接调用关系、双向直接调用关系;所述间接调用关系包括以下至少一种:传递性的间接调用关系、依赖于第三者的间接调用关系。
附图说明
下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是现有技术方案中公开的内存计算框架Spark目前在Yarn容器中的运行机制的***架构图;
图2是本发明实施例提供的一种Hadoop分布式资源管理内存计算框架Spark onYarn***100的***架构图;
图3是本发明实施例提供的一种容器分配处理过程的流程示意图;
图4是本发明实施例提供的一种容器分配的优化方法的流程示意图;
图5A是本发明实施例提供的一种任务之间的调用关系的示意图;
图5B是本发明实施例提供的一种目标应用程序的任务解析示意图;
图5C是本发明实施例提供的一种根据资源均衡策略进行容器分配的示例图;
图6A是本发明实施例提供的一种认知计算服务器的单元组成框图;
图6B是本发明实施例提供的一种认知计算服务器的结构示意图;
图7A是本发明实施例提供的一种从服务器的单元组成框图;
图7B是本发明实施例提供的一种从服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
图2是本发明实施例提供的一种Hadoop分布式资源管理内存计算框架Spark onYarn***100的***架构图。该Spark on Yarn***100具体包括:客户端Client、主服务器集群中的主服务器、从服务器集群中的从服务器以及认知计算服务器集群中的认知计算服务器。
客户端用于获取目标应用程序,生成目标应用程序的数据文件和应用程序请求。
主服务器中运行资源管理模块(Resource Manager,RM)和应用程序管理(Applications Manager,AM)模块,其中,RM模块用于接收应用程序请求,查询AM模块确定容器可用的从服务器作为被选定的从服务器,并向从服务器发送资源分配请求。
从服务器运行节点管理(Node Manager,NM)模块、容器代理(Agent)模块、Hadoop分布式文件***(Hadoop Distribution File System,HDFS)中从属于该从服务器的存储资源(如该从服务器的硬盘资源)、Hadoop数据库(Hadoop Database,Hbase)、映射规约运算(Map Reduce)模块;其中,所述HDFS包括所述Spark on Yarn***中从服务器集群中的所有从服务器的存储资源,每个从服务器均能够从HDFS中获取数据文件或者向HDFS上传数据文件。
从服务器用于接收资源分配请求,处理目标应用程序的数据文件,向认知计算服务器发送容器分配请求;其中,NM模块用于管理从服务器的资源,如创建常驻容器、管理用于分配任务的容器等;NM模块创建的常驻容器中运行内存计算框架应用程序主控(SparkApplication Master,SAM)模块,SAM模块用于根据容器分配结果为目标应用程序的多个任务分配容器;Agent模块为自行设计软件模块,用于收集SAM模块生成的容器预分配结果以及任务的数据文件等信息数据,并通过管道写入Pipeline write方式,将任务的数据文件存储到HDFS,将容器预分配结果写入Hbase;HDFS用于存储目标应用程序的数据文件,Hbase用于存储容器预分配结果以及认知计算服务器发送的容器分配结果;Map Ruduce模块用于在认知计算服务器分析多个任务的调用关系时,为认知计算服务器提供相应的数据分析能力。
认知计算服务器运行管理平台(Administration Platform,AP)、认知中心模块(Cognitive Center),分析脚本模块(Analysis Scripts)以及网络产品界面设计(Web UI)模块;认知计算服务器用于接收容器分配请求,获取目标应用程序的多个任务的数据文件进行调用关系分析,并根据分析得到的多个任务的调用关系生成多个任务的容器分配结果,并向从服务器发送容器分配结果。其中,分析脚本模块用于存储预设的资源分配策略,Web UI模块提供人机交互界面,用于输出Spark on Yarn***的运行信息、运行任务的容器的实时监控状况等信息。
下面以客户端获取用户录入的目标应用程序为例,对上述Spark on Yarn***100的容器分配处理过程进行详细描述。如图3所示,该示例容器分配处理过程包括以下步骤:
S301,客户端获取用户录入的目标应用程序,生成目标应用程序的应用程序请求和数据文件,向HDFS发送数据文件。
其中,上述HDFS包括所述Spark on Yarn***中从服务器集群中所有从服务器的存储资源,每个从服务器共享该HDFS中的数据文件,上述存储资源例如可以是硬盘资源等。
S302,客户端向主服务器的RM模块发送应用程序请求。
S303,主服务器的RM模块接收应用程序请求,查询AM模块,确定容器资源可用的从服务器作为被选定的用来分配容器的从服务器。
S304,RM模块向该从服务器的NM模块发送资源分配请求。
S305,从服务器的NM接收资源分配请求,分配常驻容器,在常驻容器中创建并运行SAM模块。
S306,SAM模块从HDFS中获取目标应用程序的数据文件,并根据预存的原容器分配策略,解析目标应用程序为处于多个不同运行阶段的多个任务,以及生成多个任务的数据文件和容器预分配结果;
其中,容器预分配结果包括任务与容器之间的映射关系,且一个任务对应一个容器。
S307,SAM模块通过Agent模块向HDFS发送多个任务的数据文件,向Hbase发送从服务器与目标应用程序之间的映射关系、目标应用程序与多个任务之间的映射关系、多个任务的运行阶段参数、以及容器预分配结果。
S308,容器代理模块执行完上述操作后,向认知计算服务器的AP发送容器分配请求;
S309,认知计算服务器的AP接收容器分配请求,向认知中心模块发送针对目标应用程序的多个任务的认知计算请求。
S310,认知中心模块接收认知计算请求后,从HDFS获取多个任务的数据文件,从脚本分析模块获取预设的容器分配策略,根据该容器分配策略和上述获取的多个任务的数据文件,调用Map Reduce模块对目标应用程序的多个任务进行调用关系分析,确定至少一个任务关系组,并根据至少一个任务关系组生成容器分配调整信息,并向从服务器的Hbase发送容器分配调整信息。
其中,该容器分配信息包含至少一个任务关系组与容器之间的映射关系。
S311,容器代理模块调用Hbase中的至少一个任务关系组与容器之间的映射关系,并将映射关系回传给SAM模块。
S312,SAM模块根据至少一个任务关系组与容器之间的映射关系,分配容器。
可以看出,相较于现有技术,本发明实施例提供的Spark on Yarn***包括认知计算服务器和被选定的用于分配容器的从服务器,其中,认知计算服务器可以建立容器与目标应用程序对应的至少一个任务关系组之间的映射关系,并向从服务器发送包含该映射关系的容器分配调整信息,从服务器根据该映射关系优化一个任务对应一个容器的初始容器分配策略,使得一个容器可以对应一个任务关系组,由于任务关系组中包括至少两个任务,至少两个任务中的任意两个任务之间存在调用关系,也就是说,从服务器按照优化后的容器分配策略可以为多个任务分配一个容器,从而该容器可以运行任务关系组中的所有任务,并在所有任务运行完成后才销毁容器、回收该容器对应的资源,无需为每一个任务执行容器创建、销毁以及资源回收的操作过程,实现了容器的复用,有利于减少资源开销,提高资源利用率和容器执行效率。
下面结合附图4,对本发明实施例提供的容器分配的优化方法进行说明。图4示出了本发明实施例提供的一种容器分配的优化方法,应用于分布式资源管理内存计算框架Spark on Yarn***中的认知计算服务器,所述Spark on Yarn***包括被选定用来分配容器的从服务器,所述从服务器与所述认知计算服务器通信连接。该方法包括:S401~S406部分,具体如下:
S401,认知计算服务器获取N个任务,N为大于1的整数,所述N个任务由目标应用程序分解得到。
其中,所述N个任务是由认知计算服务器从与上述从服务器关联的Hadoop分布式文件***HDFS中获取的,该N个任务的具体形式可以是N个任务对应的N个数据文件。所述HDFS包括所述Spark on Yarn***中从服务器集群中所有从服务器的存储资源,每个从服务器共享该HDFS中的数据文件,所述存储资源例如可以是硬盘资源等。
在一个示例中,在认知计算服务器获取N个任务之前,还执行以下操作:认知计算服务器接收从服务器发送的针对目标应用程序的N个任务的容器分配请求。
S402,所述认知计算服务器对所述N个任务进行调用关系分析,确定至少一个任务关系组,每个任务关系组包括至少两个任务,上述每个任务关系组中的任意两个任务之间存在调用关系,调用关系为任意两个任务之间对执行结果的依赖关系。
具体实现中,认知计算服务器的认知中心模块从脚本分析模块获取预设的调用关系分析策略,并根据该调用关系分析策略执行步骤S402至S404的操作。
其中,上述调用关系包括以下至少一种:直接调用关系和间接调用关系。作为示例,上述直接调用关系和间接调用关系具体可以用图5A所示的调用关系示意图来表示。
直接调用关系包括以下至少一种:单向直接调用关系(见图5A中的(1))、双向直接调用关系(见图5A中的(2));所述间接调用关系包括以下至少一种:传递性的间接调用关系(见图5A中的(3))、依赖于第三者的间接调用关系(见图5A中的(4))。
在一个示例中,认知计算服务器对N个任务进行调用关系分析,确定至少一个任务关系组的具体实现方式可以是:
认知计算服务器从N个任务中确定X个任务,X个任务中的任一任务与至少一个其他任务之间存在调用关系,其他任务为所述X个任务中除所述任一任务之外的任务,X为小于或等于N的正整数;
认知计算服务器从所述X个任务中确定至少一个任务关系组。
可见,本示例中,认知计算服务器预先筛选出存在调用关系的X个任务,及时滤除N个任务中的孤点任务,仅从该X个任务中确定任务关系组,有利于提高算法执行效率。
在这个示例中,认知计算服务器从上述X个任务中确定至少一个任务关系组的具体实现方式可以是:
认知计算服务器对X个任务所包括的调用关系进行分析,确定X个任务中包括的Y个任务关系组,Y个任务关系组中的每一个任务关系组包括至少两个任务,至少两个任务中的任意两个任务之间存在调用关系,Y为小于X的正整数。
在这个示例中,认知计算服务器对X个任务所包括的调用关系进行分析,确定X个任务中包括的Y个任务关系组的具体实现方式可以是:
认知计算服务器将X个任务和X个任务中存在的调用关系等效为图论中的有向图,其中,将X个任务等效为有向图中的顶点,将所述X个任务中存在的调用关系等效为有向图的顶点之间的有向连接线;
认知计算服务器求解有向图的Y个独立集,以得到所述Y个独立集对应的Y个任务关系组。
其中,在图论中,独立集是指图的顶点集的一个子集,该子集的导出子图不含边。如果一个独立集不是任何一个独立集的子集,那么称这个独立集是一个极大独立集。一个图中包含顶点数目最多的独立集称为最大独立集。
举例来说,假设目标应用程序被从服务器解析为10个任务,且该10个任务对应的有向图如图5B所示,集合独立集的上述定义可以看出,该有向图中的独立集包括:{任务2、任务4}、{任务2、任务4、任务7}、{任务2、任务4、任务7、任务8}、{任务2、任务4、任务7、任务9}、{任务3、任务5、任务7、任务9}等,其中,最大独立集包括{任务2、任务4、任务7、任务8}、{任务2、任务4、任务7、任务9}、{任务3、任务5、任务7、任务9}。
S403,认知计算服务器根据确定的至少一个任务关系组生成容器分配调整信息,容器分配调整信息包括至少一个任务关系组与容器之间的映射关系。
在一个示例中,上述任务关系组包括第一任务关系组以及第二任务关系组,认知计算服务器根据确定的至少一个任务关系组生成容器分配调整信息之前,还执行以下操作:
认知计算服务器对第一任务关系组以及第二任务关系组进行调用关系完备性分析;
若第一任务关系组中的任务和第二任务关系组中的任务之间存在调用关系,认知计算服务器将第一任务关系组和第二任务关系组合并为独立的任务关系组;
认知计算服务器对第一任务关系组和第二任务关系组与容器之间的映射关系进行调整。
可见,本示例中,认知计算服务器通过对多个任务关系组进行完备性分析,合并存在调用关系的任务关系组为独立的任务关系组,由于该独立的任务关系组中包含更多的任务,故而与该独立的任务关系组对应的容器将与更多的任务关联,有利于进一步增大单个容器所对应的任务数量,从而减少所有任务对应的容器数量,提高容器执行效率的同时,进一步减少资源开销,提高***资源利用率。
S404,认知计算服务器向被选定的从服务器发送容器分配调整信息。
在一个示例中,认知计算服务器向被选定的从服务器发送容器分配调整信息的具体实现方式可以是:
认知计算服务器检测被选定的从服务器中容器的可用资源;
若检测到被选定的从服务器中容器的可用资源小于所述Y个任务关系组所需要的资源,则向被选定的从服务器发送针对Y个任务关系组中的Y1个任务关系组的容器分配指示信息,Y1为小于Y的正整数。
其中,容器的可用资源包括从服务器的内存、CPU、硬盘等软硬件资源。
可见,本示例中,认知计算服务器能够根据被选定的从服务器中容器的可用资源动态调整容器分配指示信息,避免从服务器因容器的可用资源不足而无法分配容器的情况发生,有利于提升***分配容器的稳定性。
在一个实施例中,所述若检测到所述被选定的从服务器中容器的可用资源小于所述Y个任务关系组所需要的资源,所述认知计算服务器还执行以下操作:
认知计算服务器选择所述Spark on Yarn***中的另一服务器作为备选从服务器,所述备选从服务器为与所述被选定的从服务器的数据传输距离最小的从服务器;
认知计算服务器向备选从服务器发送针对Y个任务关系组中的Y2个任务关系组的容器分配调整信息,Y2为小于Y的正整数,且Y1+Y2=Y。
从上述步骤S401至S405及相关步骤可以看出,Spark on Yarn***的认知计算服务器通过分析目标应用程序的多个任务的调用关系,确定至少一个任务关系组,建立至少一个任务关系组与容器之间的映射关系,生成包含该映射关系的容器分配调整信息,向从服务器发送该容器分配调整信息,以促使从服务器根据上述映射关系优化多个任务的容器分配策略,由于任务关系组包括至少两个任务,故而与该任务关系组对应的容器不再仅对应一个任务,而是对应一个任务关系组中的至少两个任务,相对于现有方案中一个容器仅对应一个任务的分配策略,有利于节约容器分配数量,有利于减少资源开销,提高***资源利用率。
S405,从服务器获取认知计算服务器发送的容器分配调整信息,容器分配调整信息包括至少一个任务关系组和容器之间的映射关系,至少一个任务关系组是对目标应用程序的N个任务进行调用关系分析而确定的,每个任务关系组包括至少两个任务,至少两个任务中的任意两个任务之间存在调用关系,调用关系为任意两个任务之间对执行结果的依赖关系。
在一个示例中,从服务器获取认知计算服务器发送的容器分配调整信息之前,从服务器还执行以下操作:
从服务器获取目标应用程序的数据文件;
从服务器对目标应用程序解析得到N个任务;
从服务器向所述认知计算服务器发送容器分配请求,容器分配请求用于请求认知计算服务器应用程序对N个任务进行调用关系分析,以确定N个任务的容器分配调整信息。
举例来说,假设用户通过客户端提交的目标应用程序1被从服务器解析为10个任务,那么,从服务器通过容器代理模块将所述N个任务的写入Hbase之后,可以得到如表1所示的包含任务之间的调用关系的应用程序任务索引关系表。
表1
Job ID Task ID Stage Caller/Callee
1 1 1 null
1 2 1 4
1 3 1 5
1 4 1 7
1 5 1 7
1 6 2 null
1 7 2 8,9
1 8 3 7
1 9 3 7
1 10 3 null
表1中,Job ID为应用程序标识,Task ID为任务标识,Stage为任务的运行阶段标识,如1代表对应的任务处于第一运行阶段,2代表对应的任务处于第二运行阶段,Caller/Callee代表与对应的任务存在调用关系的任务,如任务1对应的Caller/Callee为null,即没有与任务1存在调用关系的任务,任务2对应的Caller/Callee为4,即与任务2存在调用关系的任务为任务4。通过该索引关系表可以确定这10个任务中存在调用关系的7个任务,分别为任务2、任务3、任务4、任务5、任务7、任务8、任务9。
在一个示例中,所述至少一个任务关系组为Y个任务关系组,Y为小于N的正整数;
若所述被选定的从服务器中容器的可用资源小于所述Y个任务关系组所需要的资源,则所述容器分配调整信息为针对所述Y个任务关系组中的Y1个任务关系组的容器分配调整信息,Y1为小于Y的正整数。
可见,本示例中,Spark on Yarn***的从服务器获取到的容器分配调整信息可以根据从服务器中容器的可用资源进行动态调整,避免从服务器因容器的可用资源不足而无法分配容器的情况发生,有利于提升***分配容器的稳定性。
S406,从服务器根据所述容器分配调整信息,为N个任务分配容器。
在一个示例中,所述从服务器根据所述容器分配调整信息,为所述N个任务分配容器之后,所述认知计算服务器还执行以下操作:
所述认知计算服务器根据预设的资源均衡策略,为所述N个任务中除所述确定的任务关系组之外的任务分配容器。
在这个示例中,所述认知计算服务器根据预设的资源均衡策略,为所述N个任务中除所述确定的任务关系组之外的任务分配容器的具体实现方式可以是:
认知计算服务器获取Spark on Yarn***中从服务器集群中的每一个从服务器的容器的可用资源;
认知计算服务器为N个任务中除所述确定的任务关系组之外的任务分配可用资源最多的从服务器中的容器。
举例来说,仍然以图5B和表1对应的目标应用程序为例,其中,任务1、任务6和任务10中的任务为与其他任务不存在任何调用关系的单个任务,假设从服务器集群中可用资源最多的从服务器包括从服务器1、从服务器2和从服务器3,那么,如图5C所示,认知计算服务器根据预设的资源均衡策略,可以为任务1分配从服务器1,为任务6分配从服务器2,为任务10分配从服务器3。
在一个示例中,从服务器根据所述容器分配调整信息,为N个任务分配容器之后,还执行以下操作:
从服务器获取所述容器中的目标容器对应的任务关系组的n个任务,n为大于1的正整数;
从服务器获取n个任务的执行阶段参数和所述n个任务的调用关系,所述执行阶段参数至少包括两个执行阶段参数;
从服务器根据所述执行阶段参数和n个任务的调用关系,确定n个任务的执行顺序;
从服务器在目标容器中按照上述执行顺序运行n个任务。
可见,本示例中,从服务器为任务关系组分配目标容器之后,可以在该目标容器中连续运行任务关系组的n个任务,相对于现有技术中一个容器的生命周期只用于运行一个任务的方案来说,有利于提升容器的执行效率。
在一个示例中,所述从服务器在所述目标容器中按照所述执行顺序运行所述n个任务之后,还执行以下操作:
所述从服务器销毁所述目标容器,回收所述目标容器对应的Java虚拟机资源。
可见,本示例中,从服务器在目标容器中连续运行任务关系组的n个任务,并在该n个任务运行完后,才销毁目标容器,回收目标容器对应的Java虚拟机资源,即无需为每一个任务执行容器创建、销毁以及资源回收的操作过程,实现了容器的复用,有利于减少资源开销,提高容器执行效率。
从上述步骤S405至S406及相关步骤可以看出,Spark on Yarn***的从服务器获取认知计算服务器发送的容器分配调整信息,该容器分配调整信息中包含至少一个任务关系组和容器之间的映射关系,由于任务关系组中包括至少两个任务,故而与该任务关系组对应的容器不再仅对应一个任务,而是对应一个任务关系组中的至少两个任务,相对于现有方案中一个容器仅对应一个任务的分配策略,有利于节约容器分配数量,有利于减少资源开销,提高***资源利用率。
上述主要从认知计算服务器和从服务器之间交互的角度对本发明实施例的方案进行了介绍。可以理解的是,各个服务器,例如认知计算服务器、从服务器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对认知计算服务器、从服务器进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用集成的单元的情况下,图6A示出了上述实施例中所涉及的认知计算服务器的一种可能的结构示意图。认知计算服务器600包括:处理单元602和通信单元603。处理单元602用于对认知计算服务器的动作进行控制管理,例如,处理单元602用于支持认知计算服务器执行图4中的步骤S402、S403、S404和/或用于本文所描述的技术的其它过程。又例如,处理单元602还用于支持图2中认知计算服务器中的管理平台、认知中心模块以及网络产品界面设计模块执行相应的操作。通信单元603用于支持认知计算服务器与其他设备的通信,例如与图1中示出的从服务器等之间的通信,具体用于支持认知计算服务器执行图4中的步骤S401。认知计算服务器还可以包括存储单元601,用于存储认知计算服务器的程序代码和数据,具体用于支持图2中认知计算服务器中的脚本分析模块存储预设的容器分配策略。
其中,处理单元602可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
通信单元603可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如可以包括:认知计算服务器和从服务器之间的接口和/或其他接口。存储单元601可以是存储器。
当处理单元602为处理器,通信单元603为通信接口,存储单元601为存储器时,本发明实施例所涉及的认知计算服务器可以为图6B所示的认知计算服务器。
参阅图6B所示,该认知计算服务器610包括:处理器612、通信接口613、存储器66。可选的,认知计算服务器610还可以包括总线614。其中,通信接口613、处理器612以及存储器66可以通过总线614相互连接;总线614可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。所述总线614可以分为地址总线、数据总线、控制总线等。为便于表示,图6B中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述图6A或图6B所示的认知计算服务器也可以理解为一种用于认知计算服务器的装置,本发明实施例不限定。
在采用集成的单元的情况下,图7A示出了上述实施例中所涉及的从服务器的一种可能的结构示意图。从服务器700包括:处理单元702和通信单元703。处理单元702用于对从服务器的动作进行控制管理,例如,处理单元702用于支持从服务器执行图4中的步骤S406和/或用于本文所描述的技术的其它过程。又例如,处理单元702还用于支持图2中从服务器中的节点管理模块、内存计算框架作业主控模块、容器代理模块以及映射规约运算模块执行相应的操作。通信单元703用于支持从服务器与其他网络实体的通信,例如与图1中示出的客户端、主服务器、认知计算服务器等之间的通信,具体用于支持图2中从服务器执行图4中的步骤S405。从服务器还可以包括存储单元701,用于存储从服务器的程序代码和数据,具体用于支持如图2中从服务器中的HDFS中从属于该从服务器的存储资源存储的数据文件、以及支持Hbase中存储的容器预分配结果、从服务器与目标应用程序之间的映射关系、目标应用程序与多个任务之间的映射关系。
其中,处理单元702可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元703可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如可以包括:认知计算服务器与从服务器之间的接口和/或其他接口。存储单元701可以是存储器。
当处理单元702为处理器,通信单元703为通信接口,存储单元701为存储器时,本发明实施例所涉及的从服务器可以为图7B所示的从服务器。
参阅图7B所示,该从服务器710包括:处理器77、通信接口713、存储器711。可选的,从服务器710还可以包括总线714。其中,通信接口713、处理器77以及存储器711可以通过总线714相互连接;总线714可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。所述总线714可以分为地址总线、数据总线、控制总线等。为便于表示,图7B中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述图7A或图7B所示的从服务器也可以理解为一种用于从服务器的装置,本发明实施例不限定。
此外,本发明实施例还提供了的一种容器处理***,该容器处理***应用于如图2所示的分布式资源管理内存计算框架Spark on Yarn***,所述容器处理***包括上述任一实施例所描述的认知计算服务器和上述任一实施例所描述的从服务器。
本发明实施例所描述的方法或者算法的步骤可以以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read OnlyMemory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网关设备或移动性管理网元中。当然,处理器和存储介质也可以作为分立组件存在于网关设备或移动性管理网元中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明实施例的保护范围,凡在本发明实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明实施例的保护范围之内。

Claims (18)

1.一种容器分配的优化方法,其特征在于,应用于分布式资源管理内存计算框架Sparkon Yarn***中的认知计算服务器,所述Spark on Yarn***包括被选定用来分配容器的从服务器,所述从服务器与所述认知计算服务器通信连接,所述方法包括:
所述认知计算服务器获取N个任务,N为大于1的整数,所述N个任务由应用程序分解得到;
所述认知计算服务器对所述N个任务进行调用关系分析,确定至少一个任务关系组,每个所述任务关系组包括至少两个任务,所述至少两个任务中的任意两个任务之间存在调用关系,所述调用关系为所述任意两个任务之间对执行结果的依赖关系;
所述认知计算服务器根据所述确定的至少一个任务关系组生成容器分配调整信息,所述容器分配调整信息包括所述至少一个任务关系组与容器之间的映射关系;
所述认知计算服务器向所述被选定的从服务器发送所述容器分配调整信息;
其中,所述至少一个任务关系组包括第一任务关系组以及第二任务关系组,在所述认知计算服务器根据所述确定的至少一个任务关系组生成容器分配调整信息之前,所述方法还包括:
所述认知计算服务器对所述第一任务关系组以及所述第二任务关系组进行调用关系完备性分析;
若所述第一任务关系组中的任务和所述第二任务关系组中的任务之间存在调用关系,所述认知计算服务器将所述第一任务关系组和所述第二任务关系组合并为独立的任务关系组;
所述认知计算服务器对所述第一任务关系组和所述第二任务关系组与容器之间的映射关系进行调整。
2.根据权利要求1所述的方法,其特征在于,所述认知计算服务器对所述N个任务进行调用关系分析,确定至少一个任务关系组,包括:
所述认知计算服务器从所述N个任务中确定X个任务,所述X个任务中的任一任务与至少一个其他任务之间存在所述调用关系,所述其他任务为所述X个任务中除所述任一任务之外的任务,X为小于或等于N的正整数;
所述认知计算服务器从所述X个任务中确定至少一个任务关系组。
3.根据权利要求2所述的方法,其特征在于,所述认知计算服务器从所述X个任务中确定至少一个任务关系组,包括:
所述认知计算服务器对所述X个任务所包括的调用关系进行分析,确定所述X个任务中包括的Y个任务关系组,所述Y个任务关系组中的每一个任务关系组包括至少两个任务,所述至少两个任务中的任意两个任务之间存在所述调用关系,Y为小于X的正整数。
4.根据权利要求3所述的方法,其特征在于,所述认知计算服务器对所述X个任务所包括的调用关系进行分析,确定所述X个任务中包括的Y个任务关系组,包括:
所述认知计算服务器将所述X个任务和所述X个任务中存在的调用关系等效为图论中的有向图,其中,将所述X个任务等效为有向图中的顶点,将所述X个任务中存在的调用关系等效为所述有向图的顶点之间的有向连接线;
所述认知计算服务器求解所述有向图的Y个独立集,以得到所述Y个独立集对应的Y个任务关系组。
5.根据权利要求3或4所述的方法,其特征在于,所述认知计算服务器向所述被选定的从服务器发送所述容器分配调整信息,包括:
所述认知计算服务器检测所述被选定的从服务器中容器的可用资源;
若检测到所述被选定的从服务器中容器的可用资源小于所述Y个任务关系组所需要的资源,则向所述被选定的从服务器发送针对所述Y个任务关系组中的Y1个任务关系组的容器分配指示信息,Y1为小于Y的正整数。
6.一种容器分配的优化方法,其特征在于,应用于分布式资源管理内存计算框架Sparkon Yarn***中的从服务器,所述从服务器为被选定用来分配容器的从服务器,所述Sparkon Yarn***包括与所述从服务器通信连接的认知计算服务器,所述方法包括:
所述从服务器获取所述认知计算服务器发送的容器分配调整信息,所述容器分配调整信息包括至少一个任务关系组和容器之间的映射关系,所述至少一个任务关系组是对目标应用程序的N个任务进行调用关系分析而确定的,每个独立的任务关系组包括至少两个任务,所述至少两个任务中的任意两个任务之间存在调用关系,所述调用关系为所述任意两个任务之间对执行结果的依赖关系;
所述从服务器根据所述容器分配调整信息,为所述N个任务分配容器;
其中,所述至少一个任务关系组为Y个任务关系组,Y为小于N的正整数;
若所述被选定的从服务器中容器的可用资源小于所述Y个任务关系组所需要的资源,则所述容器分配调整信息为针对所述Y个任务关系组中的Y1个任务关系组的容器分配调整信息,Y1为小于Y的正整数。
7.根据权利要求6所述的方法,其特征在于,所述从服务器获取所述认知计算服务器发送的容器分配调整信息之前,所述方法还包括:
所述从服务器获取目标应用程序的数据文件;
所述从服务器对所述目标应用程序解析得到N个任务;
所述从服务器向所述认知计算服务器发送容器分配请求,所述容器分配请求用于请求所述认知计算服务器应用程序对所述N个任务进行调用关系分析,以确定所述N个任务的容器分配调整信息。
8.一种认知计算服务器,其特征在于,应用于分布式资源管理内存计算框架Spark onYarn***,所述Spark on Yarn***包括被选定用来分配容器的从服务器,所述从服务器与所述认知计算服务器通信连接,所述认知计算服务器包括:处理单元和通信单元,
所述通信单元,用于获取N个任务,N为大于1的整数,所述N个任务由应用程序分解得到,以及用于向所述被选定的从服务器发送所述容器分配调整信息;
所述处理单元,用于对所述N个任务进行调用关系分析,确定至少一个任务关系组,每个所述任务关系组包括至少两个任务,所述至少两个任务中的任意两个任务之间存在调用关系,所述调用关系为所述任意两个任务之间对执行结果的依赖关系;以及根据所述确定的至少一个任务关系组生成容器分配调整信息,所述容器分配调整信息包括所述至少一个任务关系组与容器之间的映射关系;
其中,所述至少一个任务关系组包括第一任务关系组以及第二任务关系组,所述处理单元还用于:
在所述认知计算服务器根据所述确定的至少一个任务关系组生成容器分配调整信息之前,对所述第一任务关系组以及所述第二任务关系组进行调用关系完备性分析;
若所述第一任务关系组中的任务和所述第二任务关系组中的任务之间存在调用关系,将所述第一任务关系组和所述第二任务关系组合并为独立的任务关系组;
对所述第一任务关系组和所述第二任务关系组与容器之间的映射关系进行调整。
9.根据权利要求8所述的认知计算服务器,其特征在于,在对所述N个任务进行调用关系分析,确定至少一个任务关系组时,所述处理单元具体用于:
从所述N个任务中确定X个任务,所述X个任务中的任一任务与至少一个其他任务之间存在所述调用关系,所述其他任务为所述X个任务中除所述任一任务之外的任务,X为小于或等于N的正整数;以及从所述X个任务中确定至少一个任务关系组。
10.根据权利要求9所述的认知计算服务器,其特征在于,在从所述X个任务中确定至少一个任务关系组时,所述处理单元具体用于:
对所述X个任务所包括的调用关系进行分析,确定所述X个任务中包括的Y个任务关系组,所述Y个任务关系组中的每一个任务关系组包括至少两个任务,所述至少两个任务中的任意两个任务之间存在所述调用关系,Y为小于X的正整数。
11.根据权利要求9或10所述的认知计算服务器,其特征在于,在对所述X个任务所包括的调用关系进行分析,确定所述X个任务中包括的Y个任务关系组时,所述处理单元具体用于:
将所述X个任务和所述X个任务中存在的调用关系等效为图论中的有向图,其中,将所述X个任务等效为有向图中的顶点,将所述X个任务中存在的调用关系等效为所述有向图的顶点之间的有向连接线;
求解所述有向图的Y个独立集,以得到所述Y个独立集对应的Y个任务关系组。
12.根据权利要求8-10任一项所述的认知计算服务器,其特征在于,在向所述被选定的从服务器发送所述容器分配调整信息时,所述处理单元具体用于:
检测所述被选定的从服务器中容器的可用资源;
若检测到所述被选定的从服务器中容器的可用资源小于所述Y个任务关系组所需要的资源,则通过所述通信单元向所述被选定的从服务器发送针对所述Y个任务关系组中的Y1个任务关系组的容器分配指示信息,Y1为小于Y的正整数。
13.根据权利要求11所述的认知计算服务器,其特征在于,在向所述被选定的从服务器发送所述容器分配调整信息时,所述处理单元具体用于:
检测所述被选定的从服务器中容器的可用资源;
若检测到所述被选定的从服务器中容器的可用资源小于所述Y个任务关系组所需要的资源,则通过所述通信单元向所述被选定的从服务器发送针对所述Y个任务关系组中的Y1个任务关系组的容器分配指示信息,Y1为小于Y的正整数。
14.一种从服务器,其特征在于,应用于分布式资源管理内存计算框架Spark on Yarn***,所述从服务器为被选定用来分配容器的从服务器,所述Spark on Yarn***包括与所述从服务器通信连接的认知计算服务器,所述从服务器包括:处理单元和通信单元,
所述通信单元,用于获取所述认知计算服务器发送的容器分配调整信息,所述容器分配调整信息包括至少一个任务关系组和容器之间的映射关系,所述至少一个任务关系组是对目标应用程序的N个任务进行调用关系分析而确定的,每个独立的任务关系组包括至少两个任务,所述至少两个任务中的任意两个任务之间存在调用关系,所述调用关系为所述任意两个任务之间对执行结果的依赖关系;
所述处理单元,用于根据获取到的所述容器分配调整信息,为所述N个任务分配容器;
其中,所述至少一个任务关系组为Y个任务关系组,Y为小于N的正整数;
若所述被选定的从服务器中容器的可用资源小于所述Y个任务关系组所需要的资源,则所述容器分配调整信息为针对所述Y个任务关系组中的Y1个任务关系组的容器分配调整信息,Y1为小于Y的正整数。
15.根据权利要求14所述的从服务器,其特征在于,所述处理单元还用于:
在通过所述通信单元获取所述认知计算服务器发送的容器分配调整信息之前,通过所述通信单元获取目标应用程序的数据文件;
对所述目标应用程序解析得到N个任务;
通过所述通信单元向所述认知计算服务器发送容器分配请求,所述容器分配请求用于请求所述认知计算服务器应用程序对所述N个任务进行调用关系分析,以确定所述N个任务的容器分配调整信息。
16.一种认知计算服务器,其特征在于,包括:处理器、存储器、通信接口,所述处理器与所述存储器和所述通信接口连接;
所述存储器存储有可执行程序代码,所述通信接口用于无线通信;
所述处理器用于调用所述存储器中的所述可执行程序代码,执行如权利要求1-5任一项所描述的方法。
17.一种从服务器,其特征在于,包括:处理器、存储器、通信接口,所述处理器与所述存储器和所述通信接口连接;
所述存储器存储有可执行程序代码,所述通信接口用于无线通信;
所述处理器用于调用所述存储器中的所述可执行程序代码,执行如权利要求6-7任一项所描述的方法。
18.一种容器处理***,其特征在于,应用与分布式资源管理内存计算框架Spark onYarn***,所述容器处理***包括如权利要求16所述的认知计算服务器和权利要求17所述的从服务器。
CN201680086973.9A 2016-09-08 2016-09-08 一种容器分配的优化方法及处理设备 Active CN109416646B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/098495 WO2018045541A1 (zh) 2016-09-08 2016-09-08 一种容器分配的优化方法及处理设备

Publications (2)

Publication Number Publication Date
CN109416646A CN109416646A (zh) 2019-03-01
CN109416646B true CN109416646B (zh) 2022-04-05

Family

ID=61561644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680086973.9A Active CN109416646B (zh) 2016-09-08 2016-09-08 一种容器分配的优化方法及处理设备

Country Status (2)

Country Link
CN (1) CN109416646B (zh)
WO (1) WO2018045541A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110427263B (zh) * 2018-04-28 2024-03-19 深圳先进技术研究院 一种面向Docker容器的Spark大数据应用程序性能建模方法、设备及存储设备
CN113452727B (zh) * 2020-03-24 2024-05-24 北京京东尚科信息技术有限公司 一种设备云化的业务处理方法、装置和可读介质
CN113568599B (zh) * 2020-04-29 2024-05-31 伊姆西Ip控股有限责任公司 用于处理计算作业的方法、电子设备和计算机程序产品
CN113849242A (zh) * 2020-06-12 2021-12-28 华为技术有限公司 生成、注册ui服务包、以及加载ui服务的方法及装置
CN112882818A (zh) * 2021-03-30 2021-06-01 中信银行股份有限公司 任务动态调整方法、装置以及设备
US11907693B2 (en) 2022-04-29 2024-02-20 Zhejiang Lab Job decomposition processing method for distributed computing
CN114579183B (zh) * 2022-04-29 2022-10-18 之江实验室 一种用于分布式计算的作业分解处理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478499A (zh) * 2009-01-08 2009-07-08 清华大学深圳研究生院 一种多协议标签交换网络中的流量分配方法及装置
CN103034475A (zh) * 2011-10-08 2013-04-10 ***通信集团四川有限公司 分布式并行计算方法、装置及***
CN104657214A (zh) * 2015-03-13 2015-05-27 华存数据信息技术有限公司 一种基于多队列和多优先级的大数据任务管理***和方法
CN105512083A (zh) * 2015-11-30 2016-04-20 华为技术有限公司 基于yarn的资源管理方法、装置及***
WO2016077367A1 (en) * 2014-11-11 2016-05-19 Amazon Technologies, Inc. System for managing and scheduling containers

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8230070B2 (en) * 2007-11-09 2012-07-24 Manjrasoft Pty. Ltd. System and method for grid and cloud computing
CN101615159B (zh) * 2009-07-31 2011-03-16 中兴通讯股份有限公司 离线测试***及其本地数据管理方法及相应的装置
CN105897826A (zh) * 2015-11-24 2016-08-24 乐视云计算有限公司 云平台服务创建方法及***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478499A (zh) * 2009-01-08 2009-07-08 清华大学深圳研究生院 一种多协议标签交换网络中的流量分配方法及装置
CN103034475A (zh) * 2011-10-08 2013-04-10 ***通信集团四川有限公司 分布式并行计算方法、装置及***
WO2016077367A1 (en) * 2014-11-11 2016-05-19 Amazon Technologies, Inc. System for managing and scheduling containers
CN104657214A (zh) * 2015-03-13 2015-05-27 华存数据信息技术有限公司 一种基于多队列和多优先级的大数据任务管理***和方法
CN105512083A (zh) * 2015-11-30 2016-04-20 华为技术有限公司 基于yarn的资源管理方法、装置及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向船舶建造的空间资源约束项目调度优化方法与工具;靳金涛;《中国优秀硕士学位论文全文数据库信息科技辑》;20140315(第3期);第I138-32页 *

Also Published As

Publication number Publication date
WO2018045541A1 (zh) 2018-03-15
CN109416646A (zh) 2019-03-01

Similar Documents

Publication Publication Date Title
CN109416646B (zh) 一种容器分配的优化方法及处理设备
US8863138B2 (en) Application service performance in cloud computing
US9854045B2 (en) Generic cloud enabling of stateful applications
US9753783B2 (en) System and method for accelerating mapreduce operation
CN104834722A (zh) 基于cdn的内容管理***
CN109117252B (zh) 基于容器的任务处理的方法、***及容器集群管理***
WO2017092505A1 (zh) 云计算环境下虚拟资源弹性伸展的方法,***和设备
US11132221B2 (en) Method, apparatus, and computer-readable medium for dynamic binding of tasks in a data exchange
CN111124589B (zh) 一种服务发现***、方法、装置及设备
CN105740085A (zh) 容错处理方法及装置
TWI647636B (zh) 區塊鏈負載平衡系統及其方法
CN105094981A (zh) 一种数据处理的方法及装置
CN108111337B (zh) 分布式***仲裁主节点的方法及设备
KR101765725B1 (ko) 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법
CN107566470B (zh) 云数据***中管理虚拟机的方法和装置
US20200272526A1 (en) Methods and systems for automated scaling of computing clusters
CN109413117B (zh) 分布式数据计算方法、装置、服务器及计算机存储介质
WO2018188607A1 (zh) 流处理方法及装置
CN110798358B (zh) 分布式服务标识方法、装置、计算机可读介质及电子设备
CN111427634A (zh) 一种原子服务调度的方法及装置
WO2023184917A1 (zh) 算力信息的处理方法、处理***及算力网关
CN114221971B (zh) 数据同步方法、装置、服务器、存储介质及产品
CN108023920B (zh) 一种数据包传输方法、设备及应用接口
WO2017185801A1 (zh) 分布式数据库***中的表连接方法及分布式数据库***
CN112380040B (zh) 一种消息处理的方法、装置、电子设备及存储介质

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