一种流式计算系统的资源调度方法和装置制造方法及图纸

技术编号:14537230 阅读:80 留言:0更新日期:2017-02-02 22:59
本发明专利技术提供了一种流式计算系统的资源调度方法和装置,其中方法包括:S1、获取输入的计算工作信息;S2、依据所述计算工作信息确定的进程数目,将对应数目的进程分配给工作节点;S3、将依据所述计算工作信息确定的线程列表中的各线程依据以下原则中的至少一种进行分配:属于相同处理单元的线程优先被分配在不同进程上;具有通信关系的线程优先被分配在相同进程上。本发明专利技术能够提高流式计算系统的容灾能力或系统性能。

Resource scheduling method and device for flow calculation system

The present invention provides a method and apparatus for resource scheduling of a stream computing system, wherein the method comprises the following steps: calculating the information of S1, obtain input; S2, according to the calculated number of process work information to determine the number of the corresponding process of work assigned to a node; S3, according to the distribution of at least one kind of work information to determine the list of the threads in the thread based on the following principles: belong to the same processing unit is assigned the thread priority in different processes; with communication between the thread priority is allocated in the same process. The invention can improve the disaster recovery ability or the system performance of the flow calculation system.

【技术实现步骤摘要】

本专利技术涉及计算机应用
,特别涉及一种流式计算系统的资源调度方法和装置
技术介绍
JStorm是参考storm的实时流式计算框架,在网络IO、线程模型、资源调度、可用性及稳定性上做了持续改进,已被越来越多企业使用。JStorm集群由一个调度节点和多个工作节点组成。调度节点主要负责进行任务调度,并将调度结果送至zookeeper。工作节点分别监听zookeeper,获取分配给自身的任务并执行任务,主要架构如图1中所示。在每个工作节点上都拥有一定的Slot资源。每一个Job(工作)都可以看做Topology(计算拓扑),其中包含多级处理单元,每个处理单元运行的实例被称作Task(任务),一个Task为一个线程。运行Task的进程称为Worker,Job的总进程数为Worker数。每个工作节点的一个Slot资源上能够运行一个Worker。目前无论是JStorm还是Storm,使用的调度方式都是平均分配原则,虽然提高了资源利用率,但并没有考虑容灾能力和系统性能。
技术实现思路
有鉴于此,本专利技术提供了一种资源调度的方法和装置,以便于提高流式计算系统的容灾能力或系统性能。具体技术方案如下:本专利技术提供了一种流式计算系统的资源调度方法,该方法包括:S1、获取输入的计算工作信息;S2、依据所述计算工作信息确定的进程数目,将对应数目的进程分配给工作节点;S3、将依据所述计算工作信息确定的线程列表中的各线程依据以下原则中的至少一种进行分配:属于相同处理单元的线程优先被分配在不同进程上;具有通信关系的线程优先被分配在相同进程上。根据本专利技术一优选实施方式,依据所述计算工作信息确定进程数目包括:将所述计算工作信息中包含的进程数目、线程的总数以及工作节点当前剩余的Slot总数中的最小值,作为确定出的进程数目。根据本专利技术一优选实施方式,所述S2包括:将所述对应数目的进程逐一进行分配,按照当前剩余Slot数目从多到少的顺序分别将进程分配给工作节点,每个Slot上分配一个进程。根据本专利技术一优选实施方式,依据所述属于相同处理单元的线程优先被分配在不同进程上的原则对线程列表中的线程进行分配包括:A11、确定在所述S2分配的进程中,已经被分配与当前待分配的线程属于相同处理单元的线程数目最小的进程;A12、将当前待分配的线程分配至所述A11确定的进程中的一个。根据本专利技术一优选实施方式,所述A12包括:如果所述A11确定出的进程仅有一个,则将当前待分配的线程分配至该确定出的进程;如果所述A11确定出的进程多于一个,则继续执行A13;A13、在所述A11确定出的进程中,确定符合以下条件的进程:该进程所在工作节点上所有进程已被分配的与当前待分配的线程属于相同处理单元的线程总数最小;A14、将当前待分配的线程分配至所述A13确定的进程中的一个。根据本专利技术一优选实施方式,所述A14包括:如果所述A13确定出的进程仅有一个,则将当前待分配的线程分配至该确定出的进程;如果所述A14确定出的进程多于一个,则继续执行A15;A15、在所述A13确定出的进程中,确定已被分配线程数目最小的进程;A16、将当前待分配的线程分配至所述A15确定的进程中的一个。根据本专利技术一优选实施方式,所述A16包括:如果所述A15确定出的进程仅有一个,则将当前待分配的线程分配至该确定出的进程;如果所述A15确定出的进程多于一个,则继续执行A17;A17、在所述A15确定出的进程中,确定符合以下条件的进程:该进程所在工作节点上所有进程已被分配的线程总数最小;A18、将当前待分配的线程分配至所述A17确定的进程中的一个。根据本专利技术一优选实施方式,依据所述具有通信关系的线程优先被分配在相同进程上的原则对线程列表中的线程进行分配包括:A21、确定在所述S2分配的进程中,已经被分配与当前待分配的线程具有通信关系的线程总数最大的进程;A22、将当前待分配的线程分配至所述A21确定的进程中的一个。根据本专利技术一优选实施方式,所述A22包括:如果所述A21确定出的进程仅有一个,则将当前待分配的线程分配至该确定出的进程;如果所述A21确定出的进程多于一个,则继续执行A23;A23、在所述A21确定出的进程中,确定符合以下条件的进程:该进程所在工作节点上已被分配的与当前待分配的线程具有通信关系的线程总数最大;A24、将当前待分配的线程分配至所述A23确定的进程中的一个。根据本专利技术一优选实施方式,该方法还包括:每分配一个线程给进程后,判断该进程上已被分配的线程总数是否超过线程数目均值,如果是,则将该进程排除于后续的分配;其中所述线程数目均值由依据所述计算工作信息确定的线程总数与进程数目求均值后确定。本专利技术还提供了一种流式计算系统的资源调度装置,该装置包括:获取单元,用于获取输入的计算工作信息;进程分配单元,用于依据所述计算工作信息确定的进程数目,将对应数目的进程分配给工作节点;线程分配单元,用于将依据所述计算工作信息确定的线程列表中的各线程依据以下原则中的至少一种进行分配:属于相同处理单元的线程优先被分配在不同进程上;具有通信关系的线程优先被分配在相同进程上。根据本专利技术一优选实施方式,所述进程分配单元在依据所述计算工作信息确定进程数目时,具体用于:将所述计算工作信息中包含的进程数目、线程的总数以及工作节点当前剩余的Slot总数中的最小值,作为确定出的进程数目。根据本专利技术一优选实施方式,所述进程分配单元,具体用于:将所述对应数目的进程逐一进行分配,按照当前剩余Slot数目从多到少的顺序分别将进程分配给工作节点,每个Slot上分配一个进程。根据本专利技术一优选实施方式,所述线程分配单元在依据所述属于相同处理单元的线程优先被分配在不同进程上的原则对线程列表中的线程进行分配时,具体执行以下操作:A11、确定在所述进程分配单元分配的进程中,已经被分配与当前待分配的线程属于相同处理单元的线程数目最小的进程;A12、将当前待分配的线程分配至所述A11确定的进程中的一个。根据本专利技术一优选实施方式,所述线程分配单元在执行操作A12时,具体执行:如果在所述A11中确定出的进程仅有一个,则将当前待分配的线程分配至该确定出的进程;如果所述A11确定出的进程多于一个,则继续执行A13;A13、在所述A11确定出的进程中,确定符合以下条件的进程:该进程所在工作节点上所有进程已被分配的与当前待分配的线程属于相同处理单元的线程总数最小;A14、将当前待分配的线程分配至所述A13确定的进程中的一个。根据本专利技术一优选实施方式,所述线程分配单元在执行操作A14时,具体执行:如果在所述A13中确定出的进程仅有一个,则将当前待分配的线程分配至该确定出的进程;如果所述A14确定出的进程多于一个,则继续执行A15;A15、在所述A13确定出的进程中,确定已被分配线程数目最小的进程;A16、将当前待分配的线程分配至所述A15确定的进程中的一个。根据本专利技术一优选实施方式,所述线程分配单元在执行所述A16时,具体执行:如果在所述A15中确定出的进程仅有一个,则将当前待分配的线程分配至该确定出的进程;如果所述A156确定出的进程多于一个,则继续执行A17;A17、在所述A15确定出的进程中,确定符合以下条本文档来自技高网...

【技术保护点】
一种流式计算系统的资源调度方法,其特征在于,该方法包括:S1、获取输入的计算工作信息;S2、依据所述计算工作信息确定的进程数目,将对应数目的进程分配给工作节点;S3、将依据所述计算工作信息确定的线程列表中的各线程依据以下原则中的至少一种进行分配:属于相同处理单元的线程优先被分配在不同进程上;具有通信关系的线程优先被分配在相同进程上。

【技术特征摘要】
1.一种流式计算系统的资源调度方法,其特征在于,该方法包括:S1、获取输入的计算工作信息;S2、依据所述计算工作信息确定的进程数目,将对应数目的进程分配给工作节点;S3、将依据所述计算工作信息确定的线程列表中的各线程依据以下原则中的至少一种进行分配:属于相同处理单元的线程优先被分配在不同进程上;具有通信关系的线程优先被分配在相同进程上。2.根据权利要求1所述的方法,其特征在于,依据所述计算工作信息确定进程数目包括:将所述计算工作信息中包含的进程数目、线程的总数以及工作节点当前剩余的资源块Slot总数中的最小值,作为确定出的进程数目。3.根据权利要求1或2所述的方法,其特征在于,所述S2包括:将所述对应数目的进程逐一进行分配,按照当前剩余Slot数目从多到少的顺序分别将进程分配给工作节点,每个Slot上分配一个进程。4.根据权利要求1所述的方法,其特征在于,依据所述属于相同处理单元的线程优先被分配在不同进程上的原则对线程列表中的线程进行分配包括:A11、确定在所述S2分配的进程中,已经被分配与当前待分配的线程属于相同处理单元的线程数目最小的进程;A12、将当前待分配的线程分配至所述A11确定的进程中的一个。5.根据权利要求4所述的方法,其特征在于,所述A12包括:如果所述A11确定出的进程仅有一个,则将当前待分配的线程分配至该确定出的进程;如果所述A11确定出的进程多于一个,则继续执行A13;A13、在所述A11确定出的进程中,确定符合以下条件的进程:该进程所在工作节点上所有进程已被分配的与当前待分配的线程属于相同处理单元的线程
\t总数最小;A14、将当前待分配的线程分配至所述A13确定的进程中的一个。6.根据权利要求5所述的方法,其特征在于,所述A14包括:如果所述A13确定出的进程仅有一个,则将当前待分配的线程分配至该确定出的进程;如果所述A14确定出的进程多于一个,则继续执行A15;A15、在所述A13确定出的进程中,确定已被分配线程数目最小的进程;A16、将当前待分配的线程分配至所述A15确定的进程中的一个。7.根据权利要求6所述的方法,其特征在于,所述A16包括:如果所述A15确定出的进程仅有一个,则将当前待分配的线程分配至该确定出的进程;如果所述A15确定出的进程多于一个,则继续执行A17;A17、在所述A15确定出的进程中,确定符合以下条件的进程:该进程所在工作节点上所有进程已被分配的线程总数最小;A18、将当前待分配的线程分配至所述A17确定的进程中的一个。8.根据权利要求1所述的方法,其特征在于,依据所述具有通信关系的线程优先被分配在相同进程上的原则对线程列表中的线程进行分配包括:A21、确定在所述S2分配的进程中,已经被分配与当前待分配的线程具有通信关系的线程总数最大的进程;A22、将当前待分配的线程分配至所述A21确定的进程中的一个。9.根据权利要求8所述的方法,其特征在于,所述A22包括:如果所述A21确定出的进程仅有一个,则将当前待分配的线程分配至该确定出的进程;如果所述A21确定出的进程多于一个,则继续执行A23;A23、在所述A21确定出的进程中,确定符合以下条件的进程:该进程所在工作节点上已被分配的与当前待分配的线程具有通信关系的线程总数最大;A24、将当前待分配的线程分配至所述A23确定的进程中的一个。10.根据权利要求1、4至9任一权项所述的方法,其特征在于,该方法还包括:每分配一个线程给进程后,判断该进程上已被分配的线程总数是否超过线程
\t数目均值,如果是,则将该进程排除于后续的分配;其中所述线程数目均值由依据所述计算工作信息确定的线程总数与进程数目求均值后确定。11.一种流式计算系统的资源调度装置,其特征在于,该装置包括:获取单元,用于获取输入的计算工作信息;进程分配单元,用于依据所述计算工作信息确定的进程数目,将对应数目的进程分配给工作节...

【专利技术属性】
技术研发人员:陈昱刘键封仲淹
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1