CN112887407A - 用于分布式集群的作业流量控制方法和装置 - Google Patents
用于分布式集群的作业流量控制方法和装置 Download PDFInfo
- Publication number
- CN112887407A CN112887407A CN202110105510.5A CN202110105510A CN112887407A CN 112887407 A CN112887407 A CN 112887407A CN 202110105510 A CN202110105510 A CN 202110105510A CN 112887407 A CN112887407 A CN 112887407A
- Authority
- CN
- China
- Prior art keywords
- node
- time
- consumption
- job
- last
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 3
- 230000000737 periodic effect Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000001121 heart beat frequency Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了用于分布式集群的作业流量控制方法和装置,涉及云计算领域,进一步涉及大数据云领域。分布式集群包括主节点和作业节点,该方法的一具体实施方式包括:接收作业节点在本次时间窗口到达时发送的心跳请求;基于心跳请求确定作业节点的本次可消费最大数据量;将本次可消费最大数据量发送给作业节点,以使作业节点基于本次可消费最大数据量从数据源端获取作业的数据并写入。该实施方式提供了一种用于分布式集群的作业流量控制方案,避免因为作业任务产生的压力进一步导致数据源端的读写压力,从而对数据源端进行一定的保护。
Description
技术领域
本申请涉及云计算领域,进一步涉及大数据云领域,尤其涉及用于分布式集群的作业流量控制方法、装置、设备、存储介质以及程序产品。
背景技术
作业流量控制是对分布式集群下的大数据作业的数据获取与写入进行合理的流量管控的技术。流量控制可以保证系统的可用性,防止因为突发流量降低系统的稳定性,导致系统的正常功能不可用。对于大数据作业,往往考虑的是数据量太大要如何进行有效的切割分片以让集群进行合理的执行,会让作业尽可能快的读取或者写入数据。这种方案在面对大数据作业下尽可能高效的情况下能更好的提升机器利用率,然而在面对一些读写线上的数据库大数据作业场景时,数据源端会因为大数据作业产生很大的压力。
发明内容
本申请提供了一种用于分布式集群的作业流量控制方法、装置、设备、存储介质以及程序产品。
根据本申请的第一方面,提供了一种用于分布式集群的作业流量控制方法,分布式集群包括主节点和作业节点,该方法包括:接收作业节点在本次时间窗口到达时发送的心跳请求;基于心跳请求确定作业节点的本次可消费最大数据量;将本次可消费最大数据量发送给作业节点,以使作业节点基于本次可消费最大数据量从数据源端获取作业的数据并写入。
根据本申请的第二方面,提供了一种用于分布式集群的作业流量控制装置,分布式集群包括主节点和作业节点,该装置包括:接收模块,被配置成接收作业节点在本次时间窗口到达时发送的心跳请求;确定模块,被配置成基于心跳请求确定作业节点的本次可消费最大数据量;发送模块,被配置成将本次可消费最大数据量发送给作业节点,以使作业节点基于本次可消费最大数据量从数据源端获取作业的数据并写入。
根据本申请的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面中任一实现方式描述的方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如第一方面中任一实现方式描述的方法。
根据本申请的第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现根据如第一方面中任一实现方式描述的方法。
本申请提供的用于分布式集群的作业流量控制方法、装置、设备、存储介质以及程序产品,首先接收作业节点在本次时间窗口到达时发送的心跳请求;然后基于心跳请求确定作业节点的本次可消费最大数据量;最后将本次可消费最大数据量发送给作业节点,以使作业节点基于本次可消费最大数据量从数据源端获取作业的数据并写入。提供了一种用于分布式集群的作业流量控制方案,避免因为作业任务产生的压力进一步导致数据源端的读写压力,从而对数据源端进行一定的保护。此外,还能避免导致作业节点的读写压力,更不会对日志、元数据等其他模块产生过大的请求压力。
本申请适用于跨集群分布式流水线技术的流控架构,适用于分布式集群下的各个作业节点的流量控制,可以将流量分配到分布式集群的各个作业节点上。为各个作业节点提供了一种通用的流量控制机制,各个作业节点不需要重新实现一套流量控制服务,同时做到隔离各个服务,即不同的服务可以用到不同的流量控制。提供了方便的流量控制配置,可以方便的进行流量控制的开启和关闭。
本申请提供动态数据处理节点发现与均衡策略,通过对各个作业节点的心跳监听机制,可以动态的获取作业节点的状态并进行均衡处理,满足跨集群分布式作业在集群不稳定下可以自动进行故障处理。并且,针对分布式集群下不同作业节点的不同消费能力,根据作业节点处理性能进行流量的相应均衡策略。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公申请的限定。其中:
图1是本公开可以应用于其中的示例性系统架构;
图2是根据本申请的用于分布式集群的作业流量控制方法的一个实施例的流程图;
图3是根据本申请的用于分布式集群的作业流量控制方法的又一个实施例的流程图;
图4是用于分布式集群的流量控制方法的系统组件及结构图;
图5是用于分布式集群的流量控制方法的时序图;
图6是根据本申请的用于分布式集群的流量控制装置的一个实施例的结构示意图;
图7是用来实现本申请实施例的用于分布式集群的流量控制方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于分布式集群的作业流量控制方法或用于分布式集群的作业流量控制装置的实施例的示例性系统架构100。
如图1所示,系统架构100中可以包括数据源端101、分布式集群102和网络103。网络103用以在数据源端101和分布式集群102之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
数据源端101可以用于存储作业的数据,例如数据库。
分布式集群102可以包括节点1021、1022、1023。节点1021、1022、1023可以是硬件,也可以是软件。当节点1021、1022、1023为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机和服务器等等。当节点1021、1022、1023为软件时,可以安装在上述电子设备中。其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
分布式集群102中可以包括主节点(例如节点1021)和作业节点(例如节点1022、1023)。主节点可以体现为服务端,用于控制作业流量。作业节点可以体现为客户端,用于获取与写入作业的数据。
需要说明的是,本申请实施例所提供的用于分布式集群的作业流量控制方法一般由主节点执行,相应地,用于分布式集群的作业流量控制装置一般设置于主节点中。
应该理解,图1中的数据源端、网络和分布式集群,以及分布式集群包括的节点的数目仅仅是示意性的。根据实现需要,可以具有任意数目的数据源端、网络和分布式集群,以及分布式集群包括的节点。
继续参考图2,其示出了根据本申请的用于分布式集群的作业流量控制方法的一个实施例的流程200。该用于分布式集群的作业流量控制方法包括以下步骤:
步骤201,接收作业节点在本次时间窗口到达时发送的心跳请求。
在本实施例中,用于分布式集群的作业流量控制方法的执行主体(例如图1所示的主节点1021)可以接收作业节点(例如图1所示的作业节点1022、1023)在本次时间窗口到达时发送的心跳请求。
实践中,分布式集群可以由大量节点组成,包括主节点和作业节点。主节点可以开启一个流量控制服务端,成为服务端。相应地,作业节点会成为客户端。分布式集群中的节点可以被确定为主节点。例如,预先配置节点为主节点,当需要进行作业流量控制时,该节就会被确定为主节点。又例如,从分布式集群中随机确定节点作为主节点。分布式集群中,主节点的数量通常是一个。除主节点之外的其他节点均可以是作业节点,作业节点的数量通常是多个。
作业节点中可以设置一个时钟计时器,用于时间窗口周期心跳汇报。具体地,当本次时间窗口到达时,时钟计时器会向作业节点汇报,作业节点向主节点发送心跳请求。其中,时间窗口可以用来均匀各个作业节点的流量。时间窗口大小可通过配置进行修改。通过设置时间窗口,可以通过动态调节的方式了解各个作业节点的状态,据此进行流量调节。然而,若时间窗口过大,则调节速度变慢,不能很好地及时发现作业节点的状态;若时间窗口过小,频繁的心跳会导致业务服务受到影响。实践中,综合考虑调节速度和心跳频率,时间窗口设定为10秒。
每次时间窗口到达时,作业节点都会向主节点发送心跳请求。心跳请求可以包括但不限于以下至少一项具体任务信息:上次实际消费数据量、上次可消费最大数据量、上次消费用时、上次消费时延和最大消费时长等等。其中,上次实际消费数据量是上一次时间窗口内作业节点的实际消费数据量。上次可消费最大数据量可以是上一次时间窗口内允许作业节点消费的最大数据流量。上次消费用时可以是上一次时间窗口内作业节点消费数据的用时。上次消费时延可以是上一次时间窗口内作业节点消费数据的时延。最大消费时长可以是每个时间窗口内作业节点消费数据的用时上限。
步骤202,基于心跳请求确定作业节点的本次可消费最大数据量。
在本实施例中,上述执行主体可以基于心跳请求确定作业节点的本次可消费最大数据量。通常,上述执行主体可以基于心跳请求包括的内容计算本次可消费最大数据量。其中,本次可消费最大数据量可以是本次时间窗口内允许作业节点消费的最大数据流量,即,本次时间窗口需要分配的流量。
步骤203,将本次可消费最大数据量发送给作业节点,以使作业节点基于本次可消费最大数据量从数据源端获取作业的数据并写入。
在本实施例中,上述执行主体可以将本次可消费最大数据量发送给作业节点。作业节点可以基于本次可消费最大数据量从数据源端获取作业的数据并写入。其中,数据源端可以存储有作业的数据,例如数据库。作业可以是大数据作业。
作业节点可以基于本次可消费最大数据量对其进行流量的控制。具体地,作业节点可以基于本次可消费最大数据量配置每分钟可接收的最大流量,保证消费数据时不能超过本次时间窗口内可消费最大数据量。
本申请提供的用于分布式集群的作业流量控制方法,首先接收作业节点在本次时间窗口到达时发送的心跳请求;然后基于心跳请求确定作业节点的本次可消费最大数据量;最后将本次可消费最大数据量发送给作业节点,以使作业节点基于本次可消费最大数据量从数据源端获取作业的数据并写入。提供了一种用于分布式集群的作业流量控制方案,避免因为作业任务产生的压力进一步导致数据源端的读写压力,从而对数据源端进行一定的保护。此外,还能避免导致作业节点的读写压力,更不会对日志、元数据等其他模块产生过大的请求压力。
本申请适用于跨集群分布式流水线技术的流控架构,适用于分布式集群下的各个作业节点的流量控制,可以将流量分配到分布式集群的各个作业节点上。为各个作业节点提供了一种通用的流量控制机制,各个作业节点不需要重新实现一套流量控制服务,同时做到隔离各个服务,即不同的服务可以用到不同的流量控制。提供了方便的流量控制配置,可以方便的进行流量控制的开启和关闭。
本申请提供动态数据处理节点发现与均衡策略,通过对各个作业节点的心跳监听机制,可以动态的获取作业节点的状态并进行均衡处理,满足跨集群分布式作业在集群不稳定下可以自动进行故障处理。并且,针对分布式集群下不同作业节点的不同消费能力,根据作业节点处理性能进行流量的相应均衡策略。
进一步参考图3,其示出了根据本申请的用于分布式集群的作业流量控制方法的又一个实施例的流程300。该用于分布式集群的作业流量控制方法包括以下步骤:
步骤301,接收第三方设备发送的作业启动命令,开启流量控制服务端。
在本实施例中,用于分布式集群的作业流量控制方法的执行主体可以接收第三方设备发送的作业启动命令,开启流量控制服务端。
通常,当需要启动作业时,第三方式设备可以从分布式集群中确定主节点,并向主节点发送作业启动命令。在接收到主节点启动命令之后,主节点可以开启一个流量控制服务端,成为服务端。
步骤302,将主节点的主机端口信息通过配置分发到作业节点,以使作业节点将主节点的主机端口信息写入配置中。
在本实施例中,上述执行主体可以将主节点的主机端口信息通过配置分发到作业节点。作业节点可以将主节点的主机端口信息写入配置中。这样,在时间窗口到达时,作业节点就可以根据配置查找到主机端口信息,以向主节点发送心跳请求。
通常,作业节点可以根据提供的spark或者mapreduce作业将主机端口信息写入配置中。
步骤303,接收作业节点在本次时间窗口到达时发送的心跳请求。
在本实施例中,步骤303具体操作已在图2所示的实施例中步骤201进行了详细的介绍,在此不再赘述。
在本实施例的一些可选的实现方式中,主节点开启流量控制服务端可以排除其他无关请求,以避免无关请求扰乱流量控制机制,使得流量控制过小消费数据不足。主节点开启流量控制服务端后,会对心跳请求进行过滤,保留预先注册服务的作业节点的心跳请求。只有对预先注册服务的作业节点的心跳请求进行处理,其他无关请求不能影响本次时间窗口的数据量控制。其中,注册的服务只能是通过平台配置的服务。
在本实施例的一些可选的实现方式中,作业节点可以通过线程异步的方式发送心跳请求。其中,心跳请求为线程异步的方式进行,不会因为限流功能阻塞业务服务。当设定的时间窗口到达时,会异步地发送本次状态信息。
步骤304,基于心跳请求包括的内容计算本次作业消费能力。
在本实施例中,上述执行主体可以基于心跳请求包括的内容计算本次作业消费能力。其中,心跳请求可以包括但不限于以下至少一项:上次实际消费数据量、上次可消费最大数据量、上次消费用时、上次消费时延和最大消费时长等等。本次作业消费能力可以是本次时间窗口内作业节点的消费能力。
在本实施例的一些可选的实现方式中,在心跳请求包括上次实际消费数据量、上次可消费最大数据量、上次消费用时、上次消费时延和最大消费时长的情况下,上述执行主体可以通过如下步骤计算本次作业消费能力cap:
首先,计算上次实际消费数据量与上次可消费最大数据量的比值,即,上次(实际消费数据量/上次可消费最大数据量)。
然后,确定上次消费用时与上次消费时延的和,以及最大消费时长两者中的最小值,即,Min(上次消费用时+次消费时延,最大消费时长)。
最后,将比值乘以最小值,得到本次作业消费能力,即,cap=(实际消费数据量/上次可消费最大数据量)*Min(上次消费用时+次消费时延,最大消费时长)。
对于同时存在多个作业节点的情况,上述执行主体可以循环算出各个作业节点的本次作业消费能力caps,并逆序排序,优先满足消费能力较高的作业节点。
步骤305,基于总限流量、本次作业节点数和本次作业消费能力,计算本次可消费最大数据量。
在本实施例中,上述执行主体可以基于总限流量、本次作业节点数和本次作业消费能力,计算本次可消费最大数据量。其中,总限流量可以是作业节点指定的最大流量。本次作业节点数可以是本次时间窗口内作业节点的个数,本次可消费最大数据量可以是本次时间窗口内允许作业节点消费的最大数据流量。
在本实施例的一些可选的实现方式中,上述执行主体可以通过如下步骤计算本次可消费最大数据量:
首先,计算本次作业节点数与本次作业消费能力的乘积,即,本次作业节点数jobs*cap。
然后,计算总限流量与乘积的比值,得到本次可消费最大数据量,即,总限流量total/本次作业节点数jobs*cap。
步骤306,将本次可消费最大数据量发送给作业节点,以使作业节点基于本次可消费最大数据量从数据源端获取作业的数据并写入。
在本实施例中,步骤306具体操作已在图2所示的实施例中步骤203进行了详细的介绍,在此不再赘述。
随后,当作业节点进行下一次时间窗口的心跳请求时,将返作业节点下一次相应的可消费最大数据量。流量的量大小由统计类别决定,例如是流量级别的统计,可以做到多少兆流量;作业数据个数数量的统计,统计本次有多少个数据个数;服务接口调用次数级别的统计等等。用户可以自定义统计类别,当作业节点接收到数据时,用该方式进行统计并心跳告知主节点流量大小。流量控制可以细粒度到平台作业流量级别、接口调用次数、作业流量个数等级别,不同的流量控制粒度都可以在业务上进行统计并自动通过心跳请求发送到主节点。
在实施例的一些可选的实现方式中,若主节点因为各种原因故障导致失败挂掉之后,没有办法及时的回复作业节点的心跳请求。此时,就会及时进行故障转移。第三方设备通过定期轮训服务状态来了解分布式集群中的节点是否正常。当主节点异常的情况下,第三方设备可以从服务状态正常的作业节点中确定备用主节点,将流量控制服务转移到备用主节点。同时,计算本次流量控制总量与本次作业节点数的比值,作为默认平均值,以及将默认平均值发送给作业节点。作业节点按照默认的平均值从数据源端获取作业的数据并写入,从而实现流量控制服务的降级功能。无需作业节点空等一轮,提升数据写入效率。
需要说明的是,作业节点在每个时间窗口到达时都会向主节点发送心跳请求。若作业节点因某些原因失败退出,主节点没有收到本次心跳请求,那么主节点将不会对该节点分配本次可消费最大数据量,而是通过分配算法将流量分配给其他作业节点。主节点实时接收各个作业节点的心跳请求,根据这些心跳请求不仅可以做到动态数据处理,还可以进行故障作业节点发现以及进一步的流量均衡。对没有接收到心跳请求的作业节点将不会获取本次可消费最大数据量,并将这些剩余流量根据算法均衡分配给其他在线的作业节点。对于分布式集群出现故障的作业节点,提供了微批分压与熔断机制。
从图3中可以看出,与图2对应的实施例相比,本实施例中的用于分布式集群的作业流量控制方法计算本次可消费最大数据量的步骤。由此,本实施例描述的方案当同时接收到多个作业节点的心跳情求时,能够根据每个作业节点的实际消费能力进行分配。并且,分配算法可随着时间进行调整,以满足不同时间段不同服务有不同的消费能力。
为了便于理解,图4示出了用于分布式集群的流量控制方法的系统组件及结构图。如图4所示,作业配置描述包括流控每分钟限流量、自定义流控规则和自定义免流控规则。分布式集群中的主节点为服务端,作业节点为客户端。主节点包括流量服务控制模块和流控心跳控制模块。流量服务控制模块设置有一个时钟计时器,不仅可以对时间窗口周期心跳检测,还可以计算各个客户端流量。流控心跳控制模块设置有一个时钟计时器,不进可以向服务端汇报数据,还可以向客户端发送流量。此外,流控心跳控制模块还可以在模块异常时进行熔断。作业节点包括流量客户端模块。流量客户端模块设置有一个时钟计时器,可以对时间窗口周期心跳汇报。流量客户端模块还可以获取数据进行ETL(Extract-Transform-Load,抽取、转换、加载)处理。其中,ETL可以用来描述将数据从来源端经过抽取、转换、加载至目的端的过程。
为了便于理解,图5示出了用于分布式集群的流量控制方法的时序图。如图5所示,用于分布式集群的流量控制方法的时序包括以下步骤:
步骤501,第三方设备向主节点发送作业启动命令。
步骤502,主节点开启流量控制服务端。
步骤503,主节点将主节点的主机端口信息通过配置分发到作业节点。
步骤504,作业节点将主节点的主机端口信息写入配置中。
步骤505,作业节点在本次时间窗口到达时向主节点发送心跳请求。
步骤506,主节点基于心跳请求包括的内容计算本次作业消费能力。
步骤507,主节点基于总限流量、本次作业节点数和本次作业消费能力,计算本次可消费最大数据量。
步骤508,主节点将本次可消费最大数据量发送给作业节点。
步骤509,作业节点基于本次可消费最大数据量从数据源端获取作业的数据并写入。
进一步参考图6,作为对上述各图所示方法的实现,本申请提供了一种用于分布式集群的作业流量控制装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的用于分布式集群的作业流量控制装置600可以包括:接收模块601、确定模块602和发送模块603。其中,接收模块601,被配置成接收作业节点在本次时间窗口到达时发送的心跳请求;确定模块602,被配置成基于心跳请求确定作业节点的本次可消费最大数据量;发送模块603,被配置成将本次可消费最大数据量发送给作业节点,以使作业节点基于本次可消费最大数据量从数据源端获取作业的数据并写入。
在本实施例中,用于分布式集群的作业流量控制装置600中:接收模块601、确定模块602和发送模块603的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-203的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,心跳请求包括以下至少一项:上次实际消费数据量、上次可消费最大数据量、上次消费用时、上次消费时延和最大消费时长;以及确定模块602包括:第一计算子模块,被配置成基于心跳请求包括的内容计算本次作业消费能力;第二计算子模块,被配置成基于总限流量、本次作业节点数和本次作业消费能力,计算本次可消费最大数据量。
在本实施例的一些可选的实现方式中,心跳请求包括上次实际消费数据量、上次可消费最大数据量、上次消费用时、上次消费时延和最大消费时长;以及第一计算子模块进一步被配置成:计算上次实际消费数据量与上次可消费最大数据量的比值;确定上次消费用时与上次消费时延的和,以及最大消费时长两者中的最小值;将比值乘以最小值,得到本次作业消费能力。
在本实施例的一些可选的实现方式中,第二计算子模块进一步被配置成:计算本次作业节点数与本次作业消费能力的乘积;计算总限流量与乘积的比值,得到本次可消费最大数据量。
在本实施例的一些可选的实现方式中,用于分布式集群的作业流量控制装置600还包括:开启模块,被配置成接收第三方设备发送的作业启动命令,开启流量控制服务端;分发模块,被配置成将主节点的主机端口信息通过配置分发到作业节点,以使作业节点将主节点的主机端口信息写入配置中。
在本实施例的一些可选的实现方式中,用于分布式集群的作业流量控制装置600还包括:转移模块,被配置成若主节点故障,将流量控制服务转移到第三方设备通过定期轮训服务状态确定的备用主节点;计算模块,被配置成计算本次流量控制总量与本次作业节点数的比值,作为默认平均值,以及将默认平均值发送给作业节点。
在本实施例的一些可选的实现方式中,用于分布式集群的作业流量控制装置600还包括:过滤模块,被配置成对心跳请求进行过滤,保留预先注册服务的作业节点的心跳请求。
在本实施例的一些可选的实现方式中,作业节点通过线程异步的方式发送心跳请求。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示出了可以用来实施本申请的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如用于分布式集群的作业流量控制方法。例如,在一些实施例中,用于分布式集群的作业流量控制方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的用于分布式集群的作业流量控制方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行用于分布式集群的作业流量控制方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (19)
1.一种用于分布式集群的作业流量控制方法,所述分布式集群包括主节点和作业节点,所述方法包括:
接收所述作业节点在本次时间窗口到达时发送的心跳请求;
基于所述心跳请求确定所述作业节点的本次可消费最大数据量;
将所述本次可消费最大数据量发送给所述作业节点,以使所述作业节点基于所述本次可消费最大数据量从数据源端获取作业的数据并写入。
2.根据权利要求1所述的方法,其中,所述心跳请求包括以下至少一项:上次实际消费数据量、上次可消费最大数据量、上次消费用时、上次消费时延和最大消费时长;以及
所述基于所述心跳请求确定所述作业节点的本次可消费最大数据量,包括:
基于所述心跳请求包括的内容计算本次作业消费能力;
基于总限流量、本次作业节点数和所述本次作业消费能力,计算所述本次可消费最大数据量。
3.根据权利要求2所述的方法,其中,所述心跳请求包括所述上次实际消费数据量、所述上次可消费最大数据量、所述上次消费用时、所述上次消费时延和所述最大消费时长;以及
所述基于所述心跳请求包括的内容计算本次作业消费能力,包括:
计算所述上次实际消费数据量与所述上次可消费最大数据量的比值;
确定所述上次消费用时与所述上次消费时延的和,以及所述最大消费时长两者中的最小值;
将所述比值乘以所述最小值,得到所述本次作业消费能力。
4.根据权利要求2或3所述的方法,其中,所述基于总限流量、本次作业节点数和所述本次作业消费能力,计算所述本次可消费最大数据量,包括:
计算所述本次作业节点数与所述本次作业消费能力的乘积;
计算所述总限流量与所述乘积的比值,得到所述本次可消费最大数据量。
5.根据权利要求1所述的方法,其中,在所述接收所述作业节点在本次时间窗口到达时发送的心跳请求之前,还包括:
接收第三方设备发送的作业启动命令,开启流量控制服务端;
将所述主节点的主机端口信息通过配置分发到所述作业节点,以使所述作业节点将所述主节点的主机端口信息写入配置中。
6.根据权利要求5所述的方法,其中,所述方法还包括:
若所述主节点故障,将流量控制服务转移到所述第三方设备通过定期轮训服务状态确定的备用主节点;
计算本次流量控制总量与所述本次作业节点数的比值,作为默认平均值,以及将所述默认平均值发送给所述作业节点。
7.根据权利要求1所述的方法,其中,在所述基于所述心跳请求确定所述作业节点的本次可消费最大数据量之前,还包括:
对所述心跳请求进行过滤,保留预先注册服务的作业节点的心跳请求。
8.根据权利要求1所述的方法,其中,所述作业节点通过线程异步的方式发送所述心跳请求。
9.一种用于分布式集群的作业流量控制装置,所述分布式集群包括主节点和作业节点,所述装置包括:
接收模块,被配置成接收所述作业节点在本次时间窗口到达时发送的心跳请求;
确定模块,被配置成基于所述心跳请求确定所述作业节点的本次可消费最大数据量;
发送模块,被配置成将所述本次可消费最大数据量发送给所述作业节点,以使所述作业节点基于所述本次可消费最大数据量从数据源端获取作业的数据并写入。
10.根据权利要求9所述的装置,其中,所述心跳请求包括以下至少一项:上次实际消费数据量、上次可消费最大数据量、上次消费用时、上次消费时延和最大消费时长;以及
所述确定模块包括:
第一计算子模块,被配置成基于所述心跳请求包括的内容计算本次作业消费能力;
第二计算子模块,被配置成基于总限流量、本次作业节点数和所述本次作业消费能力,计算所述本次可消费最大数据量。
11.根据权利要求10所述的装置,其中,所述心跳请求包括所述上次实际消费数据量、所述上次可消费最大数据量、所述上次消费用时、所述上次消费时延和所述最大消费时长;以及
所述第一计算子模块进一步被配置成:
计算所述上次实际消费数据量与所述上次可消费最大数据量的比值;
确定所述上次消费用时与所述上次消费时延的和,以及所述最大消费时长两者中的最小值;
将所述比值乘以所述最小值,得到所述本次作业消费能力。
12.根据权利要求10或11所述的装置,其中,所述第二计算子模块进一步被配置成:
计算所述本次作业节点数与所述本次作业消费能力的乘积;
计算所述总限流量与所述乘积的比值,得到所述本次可消费最大数据量。
13.根据权利要求9所述的装置,其中,所述装置还包括:
开启模块,被配置成接收第三方设备发送的作业启动命令,开启流量控制服务端;
分发模块,被配置成将所述主节点的主机端口信息通过配置分发到所述作业节点,以使所述作业节点将所述主节点的主机端口信息写入配置中。
14.根据权利要求13所述的装置,其中,所述装置还包括:
转移模块,被配置成若所述主节点故障,将流量控制服务转移到所述第三方设备通过定期轮训服务状态确定的备用主节点;
计算模块,被配置成计算本次流量控制总量与所述本次作业节点数的比值,作为默认平均值,以及将所述默认平均值发送给所述作业节点。
15.根据权利要求9所述的装置,其中,所述装置还包括:
过滤模块,被配置成对所述心跳请求进行过滤,保留预先注册服务的作业节点的心跳请求。
16.根据权利要求9所述的装置,其中,所述作业节点通过线程异步的方式发送所述心跳请求。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的方法。
19.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110105510.5A CN112887407B (zh) | 2021-01-26 | 2021-01-26 | 用于分布式集群的作业流量控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110105510.5A CN112887407B (zh) | 2021-01-26 | 2021-01-26 | 用于分布式集群的作业流量控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112887407A true CN112887407A (zh) | 2021-06-01 |
CN112887407B CN112887407B (zh) | 2023-01-17 |
Family
ID=76052114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110105510.5A Active CN112887407B (zh) | 2021-01-26 | 2021-01-26 | 用于分布式集群的作业流量控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112887407B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312359A (zh) * | 2021-06-28 | 2021-08-27 | 北京筑云慧建软件技术有限公司 | 一种分布式作业进度计算方法、装置和存储介质 |
CN117076157A (zh) * | 2023-09-21 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 请求管理方法、装置、计算机可读存储介质及计算机设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096602A (zh) * | 2009-12-15 | 2011-06-15 | 中国移动通信集团公司 | 一种任务调度方法及其系统和设备 |
CN102222174A (zh) * | 2011-02-22 | 2011-10-19 | 深圳华大基因科技有限公司 | 一种基因计算系统和方法 |
CN103763378A (zh) * | 2014-01-24 | 2014-04-30 | 中国联合网络通信集团有限公司 | 基于分布式流式计算系统的任务处理方法、系统及节点 |
CN105227488A (zh) * | 2015-08-25 | 2016-01-06 | 上海交通大学 | 一种用于分布式计算机平台的网络流组调度方法 |
US20160188426A1 (en) * | 2014-12-31 | 2016-06-30 | International Business Machines Corporation | Scalable distributed data store |
US20190138638A1 (en) * | 2016-09-26 | 2019-05-09 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
CN111104450A (zh) * | 2019-12-18 | 2020-05-05 | 杭州网易再顾科技有限公司 | 目标数据导入方法、介质、装置和计算设备 |
-
2021
- 2021-01-26 CN CN202110105510.5A patent/CN112887407B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096602A (zh) * | 2009-12-15 | 2011-06-15 | 中国移动通信集团公司 | 一种任务调度方法及其系统和设备 |
CN102222174A (zh) * | 2011-02-22 | 2011-10-19 | 深圳华大基因科技有限公司 | 一种基因计算系统和方法 |
CN103763378A (zh) * | 2014-01-24 | 2014-04-30 | 中国联合网络通信集团有限公司 | 基于分布式流式计算系统的任务处理方法、系统及节点 |
US20160188426A1 (en) * | 2014-12-31 | 2016-06-30 | International Business Machines Corporation | Scalable distributed data store |
CN105227488A (zh) * | 2015-08-25 | 2016-01-06 | 上海交通大学 | 一种用于分布式计算机平台的网络流组调度方法 |
US20190138638A1 (en) * | 2016-09-26 | 2019-05-09 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
CN111104450A (zh) * | 2019-12-18 | 2020-05-05 | 杭州网易再顾科技有限公司 | 目标数据导入方法、介质、装置和计算设备 |
Non-Patent Citations (1)
Title |
---|
潘佳艺等: "异构Hadoop集群下的负载自适应反馈调度策略", 《计算机工程与科学》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312359A (zh) * | 2021-06-28 | 2021-08-27 | 北京筑云慧建软件技术有限公司 | 一种分布式作业进度计算方法、装置和存储介质 |
CN117076157A (zh) * | 2023-09-21 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 请求管理方法、装置、计算机可读存储介质及计算机设备 |
CN117076157B (zh) * | 2023-09-21 | 2024-01-12 | 腾讯科技(深圳)有限公司 | 请求管理方法、装置、计算机可读存储介质及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112887407B (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559182B (zh) | 资源分配方法、装置、设备及存储介质 | |
CN114448989B (zh) | 调整消息分发的方法、装置、电子设备、存储介质及产品 | |
CN112887407B (zh) | 用于分布式集群的作业流量控制方法和装置 | |
CN112650575B (zh) | 资源调度方法、装置和云端服务系统 | |
CN113114504B (zh) | 用于分配资源的方法、装置、设备、介质和产品 | |
CN112579304A (zh) | 基于分布式平台的资源调度方法、装置、设备及介质 | |
EP3399413B1 (en) | Component logical threads quantity adjustment method and device | |
CN114911598A (zh) | 任务调度方法、装置、设备以及存储介质 | |
CN113590329A (zh) | 资源处理方法及装置 | |
CN113986497B (zh) | 基于多租户技术的队列调度方法、装置及系统 | |
CN116016276A (zh) | 服务器健康状态检测方法和装置 | |
CN117785465A (zh) | 一种资源调度方法、装置、设备及存储介质 | |
CN114253683B (zh) | 任务处理方法、装置、电子设备及存储介质 | |
CN115145769A (zh) | 一种智能网卡及其供电方法、装置以及介质 | |
CN113392984B (zh) | 用于训练模型的方法、装置、设备、介质和产品 | |
CN115237595A (zh) | 数据处理方法、装置、分发服务器、系统及存储介质 | |
US10705885B2 (en) | Autoscaling of data processing computing systems based on predictive queue length | |
CN113347238A (zh) | 基于区块链的消息分区方法及系统、设备、存储介质 | |
CN113656239A (zh) | 针对中间件的监控方法、装置及计算机程序产品 | |
CN112615795A (zh) | 流量控制方法、装置、电子设备、存储介质及产品 | |
CN116594563A (zh) | 分布式存储扩容方法、装置、电子设备和存储介质 | |
CN115967677A (zh) | 服务调用的流量控制方法、装置、设备及存储介质 | |
CN115577958A (zh) | 一种风险处理方法、装置、设备以及存储介质 | |
CN114265692A (zh) | 服务调度方法、装置、设备以及存储介质 | |
CN113971082A (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 |