买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】流计算系统中的数据处理方法、控制节点及流计算系统_华为技术有限公司_201710947537.2 

申请/专利权人:华为技术有限公司

申请日:2014-03-06

公开(公告)日:2021-09-21

公开(公告)号:CN107729147B

主分类号:G06F9/50(20060101)

分类号:G06F9/50(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.09.21#授权;2018.03.20#实质审查的生效;2018.02.23#公开

摘要:本发明公开了一种流计算系统中的数据处理方法、控制节点及流计算系统,该方法包括:收集每个工作节点与其它工作节点之间的数据流量信息和每个工作节点的处理速度信息;根据收集到的数据流量信息和处理速度信息确定每个工作节点的优化并发度;根据工作节点的优化并发度对工作节点的并发度进行调整。本发明公开的方法和装置根据流计算系统中的实时数据对工作节点的并发度进行实时调整,使得工作节点的处理能力能够符合业务处理的实时需求。

主权项:1.一种流计算系统,其特征在于,包括:控制节点和多个工作节点;所述多个工作节点中的每个工作节点用于,根据所述工作节点的并发度,调用对应数目的执行单元来对接收到的元组进行处理;其中,所述工作节点的并发度表征所述工作节点可调用的执行单元的数目;所述工作节点的并发度被配置在描述业务处理逻辑的流图中;所述控制节点用于,收集所述工作节点的处理速度信息,以及在所述流图中具有逻辑上下游关系的工作节点间的数据流量信息;根据收集到的数据流量信息和处理速度信息确定与所述工作节点当前的负载情况相匹配的优化并发度;若确定所述工作节点的优化并发度与所述工作节点的并发度不相同,则按照所述工作节点的优化并发度对所述工作节点的并发度进行调整。

全文数据:流计算系统中的数据处理方法、控制节点及流计算系统技术领域[0001]本发明涉及计算机技术领域,尤其涉及一种流计算系统中的数据处理方法、控制节点及流计算系统。背景技术[0002]当前,数据密集型业务己经得到了广泛的应用,典型的数据密集型业务包括金融服务、网络监控、电信数据管理、Web应用等等。在数据密集型业务中,数据具有量大、快速、时变的特点,因此数据不宜用持久稳定关系建模,而适宜用瞬态数据流建模,由此产生了数据流计算的研宄。数据流计算是一种类似流水线式的数据处理模式,数据流计算来自于一个理念:数据的价值随着时间的流逝而降低,所以由事件触发生成数据之后必须尽快地对其进行处理,最好数据产生时便立刻对其进行处理,即发生一个事件就立即进行一次数据处理,而不是将数据缓存起来批量处理。[0003]在流计算系统中,数据流计算是基于流式数据处理模型进行的,如图1所示,业务数据处理逻辑通常需要转化为无回路有向图DirectedAcyclicGraph,DAG;或称为流图)所示的数据处理模式,图中的算子Operator承载实际的数据处理操作,数据流(stream代表各Operator间的数据传输,其中所有Operator可以被分布化执行。[0004]现有技术中,一种设置数据流计算的流式数据处理模型的方案是:物理单元physicalequipment,PE,或者称为执行单元)与逻辑单元(在DAG图中一般用Operator标示,或称为工作节点)为多对一的关系,该方案支持静态配置Operator的并发度,即根据用户静态配置的Operator的并发度,每个Operator在业务执行过程中,根据该并发度调用对应个数的执行单元对业务产生的数据流进行处理。[0005]因为流计算系统通常是分布式的实时流处理系统,所以系统中各种任务的处理情况都是实时变化的。针对实时变化的情况,最初用户设置的并发度很多时候都不是最优的,所以根据最初用户设置的并发度生成的流式数据处理模型并不能适应系统的实时变化,从而会导致流计算系统的资源浪费,数据处理能力受到较大限制。发明内容[0006]本发明提供一种流计算系统中的数据处理方法、控制节点及流计算系统,以根据业务处理情况实时调整流计算系统中工作节点的并发度,从而提升流计算系统的数据处理能力及资源利用率。[0007]第一方面,本发明提供一种流计算系统中的数据处理方法,所述流计算系统包括控制节点和多个工作节点,该方法包括:[0008]所述控制节点根据配置的各个工作节点的并发度,调用所述多个工作节点中的一个或多个工作节点对数据流进行处理;[0009]所述控制节点收集所述一个或多个工作节点中每个工作节点与其它工作节点之间的数据流量信息和所述一个或多个工作节点中每个工作节点的处理速度信息;[0010]所述控制节点根据收集到的数据流量信息和处理速度信息确定所述一个或多个工作节点中的每个工作节点的优化并发度;[0011]所述控制节点分别确定所述一个或多个工作节点中的每个工作节点的优化并发度与该工作节点的并发度是否相同,如果不相同,则按照该工作节点的优化并发度对该工作节点的并发度进行调整。[0012]结合第一方面,在第一种可能的实现方式中,每个工作节点包含一个或多个执行单元,且当工作节点被调用对数据流进行处理时,具体由工作节点所包含的执行单元处理数据流;工作节点的并发度表示工作节点包含的执行单元的个数;则所述控制节点按照该工作节点的优化并发度对该工作节点的并发度进行调整,包括:[0013]所述控制节点根据该工作节点的优化并发度为该工作节点新增至少一个执行单元,或删除该工作节点的至少一个执行单元,使得该工作节点当前包含的执行单元个数所表征的该工作节点的并发度与该工作节点的优化并发度相同。[0014]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述控制节点根据该工作节点的优化并发度为该工作节点新增至少一个执行单元,或删除该工作节点的至少一个执行单元,包括:[0015]当该工作节点的优化并发度大于该工作节点的并发度时:所述控制节点生成用于创建新的执行单元的第一控制指令并发送给该工作节点,使得该工作节点接收到所述第一控制指令后创建至少一个新执行单元,并创建所述新执行单元与其它执行单元的数据通道,其中该工作节点当前包含的执行单元的总个数所表征的该工作节点的并发度与该工作节点的优化并发度相同;[0016]当所述工作节点的优化并发度小于该工作节点的并发度时:所述控制节点生成用于删除所述工作节点的执行单元的第二控制指令并发送给该工作节点,使得该工作节点接收到所述第二控制指令后删除该工作节点的至少一个执行单元,并删除与所述删除的执行单元连接的数据通道,其中该工作节点当前包含的执行单元的总个数所表征的该工作节点的并发度与该工作节点的优化并发度相同。[0017]结合第一方面的第一或二种可能的实现方式,在第三种可能的实现方式中,在根据该工作节点的优化并发度为该工作节点新增至少一个执行单元,或删除该工作节点的至少一个执行单元之后,该方法还包括:[0018]所述控制节点根据新增或删除的至少一个执行单元,调整该工作节点对应的上游工作节点的数据派发策略,所述数据派发策略用于表示工作节点在派发数据时,接收数据的设备以及接收数据的设备在接收数据时的数据量;[0019]所述控制节点向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,在确定下游的目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单元。[0020]结合第一方面的第一或二种可能的实现方式,在第四种可能的实现方式中,在根据该工作节点的优化并发度为该工作节点新增至少一个执行单元,或删除该工作节点的至少一个执行单元之后,该方法还包括:[0021]控制节点根据新增或删除的至少一个执行单元,调整该工作节点对应的上游工作节点的数据派发策略;[0022]控制节点向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,确定所述目标工作节点所属的工作节点组,所述工作节点组包括至少一个工作节点;并从所述工作节点组中确定下游的目标工作节点,以及在确定所述目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单元。[0023]第二方面,本发明提供一种流计算系统中的控制节点,所述流计算系统包括所述控制节点和多个工作节点,该控制节点包括:[0024]调用单元,用于根据配置的各个工作节点的并发度,调用所述多个工作节点中的一个或多个工作节点对数据流进行处理;[0025]信息收集单元,用于收集所述一个或多个工作节点中每个工作节点与其它工作节点之间的数据流量信息和所述一个或多个工作节点中每个工作节点的处理速度信息;[0026]计算单元,用于根据所述信息收集单元收集到的数据流量信息和处理速度信息确定所述一个或多个工作节点中的每个工作节点的优化并发度;[0027]调整单元,用于分别确定所述一个或多个工作节点中的每个工作节点的优化并发度与该工作节点的并发度是否相同,如果不相同,则按照该工作节点的优化并发度对该工作节点的并发度进行调整。[0028]结合第二方面,在第一种可能的实现方式中,每个工作节点包含一个或多个执行单元,且每个工作节点通过调用自身的执行单元处理数据流;工作节点的并发度表示工作节点包含的执行单元的个数;在所述按照该工作节点的优化并发度对该工作节点的并发度进行调整的方面,所述调整单元具体用于,[0029]根据该工作节点的优化并发度为该工作节点新增至少一个执行单元,或删除该工作节点的至少一个执行单元,使得该工作节点当前包含的执行单元个数所表征的该工作节点的并发度与该工作节点的优化并发度相同。[0030]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述根据该工作节点的优化并发度为该工作节点新增或删除至少一个执行单元的方面,所述调整单元包括:[0031]第一调整模块,用于当该工作节点的优化并发度大于该工作节点的并发度时:生成用于新增执行单元的第一控制指令并发送给该工作节点,使得该工作节点接收到所述第一控制指令后创建至少一个新的执行单元,并创建所述新的执行单元与其它执行单元的数据通道;其中,该工作节点当前包含的执行单元的总个数所表征的该工作节点的并发度与该工作节点的优化并发度相同;[0032]第二调整模块,当所述工作节点的优化并发度小于该工作节点的并发度时:生成用于删除与所述工作节点的执行单元的第二控制指令并发送给该工作节点,使得该工作节点接收到所述第二控制指令后删除该工作节点的至少一个执行单元,并删除与所述删除的执行单元连接的数据通道;其中,该工作节点当前包含的执行单元的总个数所表征的该工作节点的并发度与该工作节点的优化并发度相同。[0033]结合第二方面的第一或二种可能的实现方式,在第三种可能的实现方式中,该控制节点还包括:[0034]第一派发策略调整单元,用于根据新增或删除的至少一个执行单元,调整该工作节点对应的上游工作节点的数据派发策略,并向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,在确定下游的目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单元,其中,所述数据派发策略用于表示工作节点在派发数据时,接收数据的设备以及接收数据的设备在接收数据时的数据量。[0035]结合第二方面的第一至二种可能的实现方式,在第四种可能的实现方式中,该控制节点还包括:[0036]第二派发策略调整单元,用于根据新增或删除的至少一个执行单元,调整该工作节点对应的上游工作节点的数据派发策略,并向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,确定所述目标工作节点所属的工作节点组,所述工作节点组包括至少一个工作节点;并从所述工作节点组中确定下游的目标工作节点,以及在确定所述目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单元。[0037]第三方面,本发明提供一种流计算系统,所述流计算系统包括:控制节点和多个工作节点;[0038]所述控制节点用于,根据所述流计算系统中配置的各个工作节点的并发度,调用所述多个工作节点中的一个或多个工作节点对数据流进行处理;[0039]所述工作节点,用于在所述控制节点的调用下,对所述数据流进行处理;[0040]所述控制节点还用于,收集所述一个或多个工作节点中每个工作节点与其他工作节点之间的数据流量信息和所述一个或多个工作节点中每个工作节点的处理速度信息;根据收集到的数据流量信息和处理速度信息确定所述一个或多个工作节点中的每个工作节点的优化并发度;并分别确定所述一个或多个工作节点中的每个工作节点的优化并发度与该工作节点的并发度是否相同,如果不相同,则按照该工作节点的优化并发度对该工作节点的并发度进行调整。[0041]结合第三方面,在第一种可能的实现方式中,所述工作节点包含一个或多个执行单元,且当工作节点被调用对数据流进行处理时,具体由工作节点所包含的执行单元处理数据流;工作节点的并发度表示工作节点包含的执行单元的个数;则在所述按照该工作节点的优化并发度对该工作节点的并发度进行调整的方面,所述控制节点具体用于:[0042]根据该工作节点的优化并发度为该工作节点新增至少一个执行单元,或删除该工作节点的至少一个执行单元,使得该工作节点当前包含的执行单元个数所表征的该工作节点的并发度与该工作节点的优化并发度相同。[0043]结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述控制节点还用于根据新增或删除的至少一个执行单元,调整该工作节点对应的上游工作节点的数据派发策略,并向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,在确定下游的目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单元,其中,所述数据派发策略用于表示工作节点在派发数据时,接收数据的设备以及接收数据的设备在接收数据时的数据量。[0044]结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述控制节点还用于控制节点根据新增或删除的至少一个执行单元,调整该工作节点对应的上游工作节点的数据派发策略,并向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,确定所述目标工作节点所属的工作节点组,所述工作节点组包括至少一个工作节点;并从所述工作节点组中确定下游的目标工作节点,以及在确定所述目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单yL〇[0045]本发明实施例提供的技术方案,通过在系统运行的过程中实时收集各个工作节点的处理速度信息和工作节点间的流量信息,并根据实时收集的信息对工作节点的并发度进行调整,使得工作节点的处理能力能够符合业务处理的实时需求,从而达到动态提升流计算系统的数据处理能力和资源利用率。附图说明[0046]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0047]图1为现有技术中一个DAG图的示意图;[0048]图2为本发明实施例提供的一种流计算系统中的数据处理方法的流程图;[0049]图3为本发明实施例元组处理时间和元组到达时间的对应关系示意图;[0050]图4为本发明实施例中优化并发度计算示意图;[0051]图5为本发明实施例中一个DAG图片段的示意图;[0052]图6为本发明实施例提供的另一种流计算系统中的数据处理方法的流程图;[0053]图7为本发明实施例提供的一种流计算系统中的控制节点的结构示意图;[0054]图8为本发明实施例提供的一种流计算系统的示意图;[0055]图9为本发明实施例提供的另一种流计算系统中的控制节点结构示意图。具体实施方式[0056]为使本发明的目的、技术方案、及优点更加清楚明白,下面结合附图并举实施例,对本发明提供的技术方案进一步详细描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0057]下面结合附图对本申请实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。[0058]如图2所示,本发明实施例提供一种流计算系统中的数据处理方法,本发明实施例所提供的方法可以使用在流计算系统中,通常流计算系统包括控制节点和多个工作节点也称为算子,Operator,控制节点可以发送对应的控制指令给下属的工作节点,从而使得工作节点根据控制指令调用执行单元对业务产生的数据流进行处理。[0059]本发明实施例提供的数据处理方法该方法包括:[0060]步骤2〇1,所述控制节点根据配置的各个工作节点的并发度,调用所述多个工作节点中的一个或多个工作节点对数据流进行处理;[0061]需要说明的是,本发明所说的工作节点,在流计算系统中一般也称为算子Operator,本发明实施例不对两者作特别区分;流计算系统中各个工作节点的并发度是被配置在描述业务处理逻辑的流图(也称为无回路有向图)中的,在流计算系统中部署业务时,通常会根据业务需求,配置各个工作节点的并发度的初始值也称为初始并发度),然后,控制节点根据配置的各个工作节点的并发度调用一个或多个工作节点对业务产生的数据流进行处理,其中,流图是流计算系统中业务数据处理逻辑的一种通用表示形式,关于流图的具体介绍,请参见背景技术部分的描述,此处不再赘述。[0062]还需要说明的是,每个工作节点包含一个或多个执行单元,当工作节点被调用对数据流进行处理时,具体由工作节点所包含的执行单元来处理数据流;执行单元具体可以为线程或进程;工作节点的并发度用于表征工作节点与执行单元之间的对应关系,具体而言,工作节点的并发度就表示工作节点包含的执行单元的个数,例如工作节点A的并发度为5,就表示工作节点可以调用5个执行单元来对数据流进行处理,本步骤中工作节点的并发度,是指为工作节点初始配置的并发度。[0063]步骤202,所述控制节点收集所述一个或多个工作节点中每个工作节点与其他工作节点之间的数据流量信息和所述一个或多个工作节点中每个工作节点的处理速度信息;[0064]需要说明的是,工作节点之间流量信息是指:在流图中具有逻辑上下游关系的工作节点间的数据流量信息;工作节点的速度信息表征工作节点处理数据的速度,工作节点处理数据的速度是由工作节点的并发度、数据流量等因素决定的。[0065]步骤203,所述控制节点通过收集到的数据流量信息和处理速度信息确定所述一个或多个工作节点中的每个工作节点的优化并发度;[0066]工作节点的优化并发度,是指与工作节点当前的负载情况相匹配的并发度,因为现有技术中,只是依据初始配置的并发度调用执行单元进行数据流处理,但是因为在进行实际的数据处理之前不能估算到具体的处理情况,所以很多时候初始并发度并不能达到最优化的效果。所以针对现有技术中的上述问题,本发明实施例所提供的方法会对流计算系统中各工作节点的实际负载情况进行采集即收集到的流量信息和处理速度信息),然后根据采集的负载情况计算出相匹配的优化并发度。该优化并发度能够与工作节点的数据处理情况匹配,从而避免资源浪费以及执行单元不能满足数据处理需求的问题。[0067]步骤204,所述控制节点分别确定所述一个或多个工作节点中的每个工作节点的优化并发度与该工作节点的并发度是否相同,如果不相同,则按照该工作节点的优化并发度对该工作节点的并发度进行调整。[0068]可以理解的是,如果工作节点的优化并发度与其并发度相同,则不需要对其调整,维持其当前的并发度即可。另外,通过收集到的实时数据流量信息和处理速度信息确定每个工作节点的优化并发度的具体算法可以采用多种实现形式,下面以一个具体的实例来阐述,但不应将其理解为实现本发明的唯一方式。[0069]在流计算系统中,如果数据流中的元组或称作数据包到达工作节点的时间与执行单元处理元组的时间匹配时,系统的资源利用率最优,这有利于充分发挥系统的处理能力。如果元组到达时间小于元组处理时间则代表执行单元过载,系统会出现元组堆积。[0070]如图3所示,对于一个执行单元而言:如果元组到达执行单元的时间1大于元组业务处理时间(即元组业务处理时间),则代表所述执行单元较空闲(如图3中元组达到时间1与元组处理时间的关系);如果元组到达时间a小于元组业务处理时间则代表执行单元负载过大(如图3中元组达到时间2与元组处理时间的关系)。其中,元组到达时间为元组到达执行单元的平均时间间隔,元组业务处理时间为执行单元平均处理一个元组所需时间,元组到达时间和元组业务处理时间根据收集的工作节点间流量信息、处理单元的处理速度数据计算获得。[0071]针对图3所示的两种情况都需要对工作节点的并发度进行调整,从而实现元组业务处理时间与元组到达时间一致。元组到达时间与工作节点并发度的运算关系为:并发度越大,元组到达时间越大。[0072]以图4所示的流图为例,对本发明实施例中,计算所示优化并发度方法作进一步详细的说明:[0073]从流图卿DAG图)的源头开始逐层进行计算每个算子的并发度,计算顺序为A、B、:、03、?。0〇?代表并发度值,计算公式1叩〜元组处理时间元组到达时间。元组处理时间和元组发出时间是根据实际业务处理的统计信息上报获得。元组到达时间是根据上游节点的元组发出时间计算获得,例如图4中工作节点A或称为算子A为源头节点,元组到达时间根据吞吐量获得,即1s67〜15ms,图中节点C的元组到达时间根据A、B的元组发出时间计算,由于A并发度为2,则相当于A在15ms中发射2个元组,B在15ms发射1个元组,所以C的元组到达时间为1511131+2=51113。所以节点3的优化3^^;155。[0074]以上优化并发度的计算方式是本发明实施例的一种可选实现方式,本发明的优化并发度计算方式并不局限于上述方式。因为在具体的应用环境中,不同流计算系统的需求不同、具体设备性能不同等各种因素的影响,使得计算优化并发度的方式各不相同,本发明实施例所提供的方法适用于任何一种根据实时情况计算出优化并发度后,再根据优化并发度对流计算系统中的处理逻辑进行调整的场景。[0075]当每个工作节点包含一个或多个执行单元,且当工作节点被调用对数据流进行处理时,根据上述方法算出每个工作节点的优化并发度后,就可以利用算出来的优化并发度确定最初设置的每个工作节点的并发度是否符合当前的处理情况,如果不匹配则可以对工作节点的并发度进行调整,则所述按照所述优化并发度对所述任一工作节点的并发度进行调整包括:[0076]根据需要调整的工作节点的优化并发度为该工作节点新增至少一个执行单元,或删除该工作节点的至少一个执行单元,使得调整后的该工作节点的并发度与对应的优化并发度相同。[0077]在本发明实施例中,调整后的并发度与所述优化并发度相同是最优,也是最理想的实现方式,但在具体的实施过程中,由于受到其它客观条件的限制,可以根据实际情况调整并发度使得调整后的并发度与所述优化并发度相关或者是接近。调整后的具体效果是,所述工作节点的数据处理能力更能适应当前系统数据处理的需求。[0078]最初设置的并发度相对于实际需要的并发度而言存在两种情况,即过高或者是过低,针对这两种情况以下对删除或是增加执行单元的可选实现方式进行详细的说明,具体包括:[0079]一、当需要调整执行单元的工作节点的优化并发度大于该工作节点的初始并发度时:[0080]控制节点生成用于创建新的执行单元的第一控制指令并发送给该工作节点,使得该工作节点接收到所述第一控制指令后创建至少一个新执行单元,并创建所述新执行单兀与其它执行单元的数据通道;经过调整后,该工作节点当前包含的执行单元的总个数所表征的该工作节点的并发度与该工作节点的优化并发度相同。[0081]其中:创建所述新执行单元与其他执行单元的数据通道的具体实现可以是:[0082]根据所述工作节点在所述流图中的逻辑位置确定与所述新的执行单元逻辑相连的第一上游工作节点和第一下游工作节点;所述第一上游工作节点对应至少一个第一上游执行单元,所述第一下游工作节点对应至少一个第一下游执行单元;[0083]根据所述第一控制指令创建所述新的执行单元与所述第一上游执行单元以及第一下游执行单元间的数据通道。[0084]在该实施例中,建立新的执行单元与上下游执行单元的数据通道时,为了避免数据遗漏,一般先建立所述新执行单元与下游执行单元的数据通道,再对应建立与上游的数据通道。[0085]二、当所述工作节点的优化并发度小于该工作节点的初始并发度时:[0086]控制节点生成用于删除与所述工作节点的执行单元的第二控制指令并发送给该工作节点,使得该工作节点接收到所述第二控制指令后删除该工作节点的至少一个执行单元,以及与删除的执行单元连接的数据通道;经过调整后,该工作节点当前包含的执行单元的总个数所表征的该工作节点的并发度与该工作节点的优化并发度相同。[0087]其中,工作节点删除执行单元的具体实现步骤可以是:[0088]根据所述工作节点在所述流图中的逻辑位置确定与所述待删除的执行单元逻辑相连的第二上游工作节点和第二下游工作节点;所述第二上游工作节点对应至少一个第二上游执行单元,所述第二下游工作节点对应至少一个第二下游执行单元;[0089]删除所述第二上游执行单元和第二下游执行单元与所述待删除的执行单元间的数据通道;[0090]删除所述待删除的执行单元。[0091]在该实施例中,需要删除一个或一些执行单元,为了保证数据的顺利处理,在删除执行单元时的具体操作可以是:[0092]先断开待删除执行单元与上游执行单元的数据通道;然后等待待删除工作节点对未处理完的数据进行处理,处理完数据后,删除待删除执行单元与下游执行单元之间的数据通道;最后删除待删除的执行单元。[0093]在本发明实施例中,因为新增或删除了执行单元,并发度进行调整的工作节点的上游工作节点在派发数据时,则需要对数据派发策略作对应的调整。例如:新加入了执行单元,则需要将数据派发到新加入的执行单元进行处理。所以本发明实施例所提供的方法在执行步骤204之后,还进一步包括:[0094]若一工作节点对应新增或删除了至少一个执行单元,则对应调整所述工作节点对应的上游工作节点的数据派发策略。[0095]在本发明实施例所提供的方法中,调整了工作节点的并发度,即相对于原有的工作节点而言,需要新增加或删除一定数量的执行单元。在调整执行单元的时候,如果不调整上游工作节点的数据派发策略则会造成数据处理出现问题。[0096]在具体的应用场景中,需要根据下游执行单元的个数以及每个执行单元的处理能力对应生成所述数据派发策略,所以所述数据派发策略的具体实例中包括数据派发的路径以及数据派发所对应的具体执行部件。[0097]在本发明实施例中,为了提高数据派发的效率,提供以下两种可选的数据派发策略规划方案,具体包括:[0098]方式一、二级数据派发:[0099]根据新增或删除的至少一个执行单元,调整所述任一工作节点对应的上游工作节点的数据派发策略;[0100]控制节点根据新增或删除的至少一个执行单元,调整该工作节点对应的上游工作节点的数据派发策略,所述数据派发策略用于表示工作节点在派发数据时,接收数据的设备以及接收数据的设备在接收数据时的数据量;[0101]所述控制节点向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略将数据包派发到下游的目标工作节点时;确定所述目标工作节点对应的目标执行单元,将所述数据包对应派发到所述目标执行单元。[0102]如图5中以一个DAG图片段为例,其中no代表上游operator,nl、n2、n3分别代表no的下游〇perator,n0发射两条流si和s2,其中nl和n2订阅si流,n3订阅s2流。nl的并发度为1,由一个PE来执行,即由pel执行nl;n2并发度为2,由两个PE来执行,即由pe2和pe3执行n2;n3并发度为3,由三个PE来执行,即由pe4、pe5、pe6执行n3。[0103]当n〇发射si流的tupleO元组)时,进行第一级派发,即选择目标operator,如图5所不,该实例中可选择的目标operator是nl和n2,然后针对nl和n2分别作第二级派发;当针对nl进行二级派发时,由于nl的并发度为1,所以直接确定将tupleO派发至pel;当针对n2进行二级派发时,由于n2的并发度为2,需要根据n2配置的派发策略进行数据派发。在该实施例中可以配置为哈希派发,即首先对tupleO的一些属性字段进行哈希计算得到对应哈希值,然后按并发度求模,结果可作为索引值选取n2对应的PE。对于下游operator如果设定的多并发,并且该下游operator订阅上游某operator发射的流时,需设定相应的数据派发策略,该派发策略可以根据具体的实施例进行扩展,如对应的实施例可以支持随机数据派发即将流随机发给下游operator对应的某个PE、全派发(即将流发给下游operator对应的所有PE、哈希派发即根据哈希求模的方式确定流发往某个pe等。[0104]方式二、多级数据派发:[0105]控制节点根据新增或删除的至少一个执行单元,调整该工作节点对应的上游工作节点的数据派发策略;[0106]控制节点向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,确定所述目标工作节点所属的工作节点组,所述工作节点组包括至少一个工作节点;并从所述工作节点组中确定下游的目标工作节点,以及在确定所述目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单元。[0107]本发明实施例所提供的方案在调整算子并发度的基础上还提供一种多级数据派发方案,所以能够在提升算子并发度的同时,还能保证数据的正确派发的效果。[0108]如图6所示,为了更详细的说明本发明所提供的方法,以下结合本发明方法的适用环境对本发明所提供的方法做进一步的说明,本发明实施例所提供的方法适用于流计算系统,该流计算系统的控制节点根据配置的流图调用一个或多个工作节点对业务产生的数据流进行处理,所述流图中包含预先为各个工作节点设置的初始并发度,具体步骤包括:[0109]步骤601,工作节点收集自身处理数据流的处理处理速度信息和与其他工作节点的数据流量信息,将收集到的处理速度信息和数据流量信息组合生成处理能力描述信息发送到对应的控制节点;[0110]步骤602,所述控制节点收集调用的每个工作节点的处理能力描述信息;[0111]步骤603,所述控制节点通过收集到的实时处理能力描述信息和所述流图确定每个工作节点的优化并发度;[0112]步骤604,所述控制节点确定每个工作节点的优化并发度与该工作节点在所述流图中的初始并发度是否相同,如果不相同,根据所述优化并发度生成控制指令,并发送所述控制指令到该工作节点;[0113]步骤605,该工作节点接收到所述控制指令后,根据所述控制指令对自身的并发度进行调整。[0114]针对分布式的实时流处理系统中各种任务的处理情况实时变化的特点,本发明实施例提供的方法是在系统运行的过程中实时的采集各个工作节点的处理情况,然后根据实时的处理情况对工作节点的并发度进行调整,使得工作节点的处理能力能够符合业务处理的实时需求,从而达到动态提升流计算系统的数据处理能力和资源利用率的效果。[0115]如图7所示,根据上述方法本发明还提供一种流计算系统中的控制节点700,所述流计算系统包括控制节点和多个工作节点,该控制节点包括:[0116]调用单元701,用于根据配置的各个工作节点的并发度,调用所述多个工作节点中的一个或多个工作节点对数据流进行处理;[0117]信息收集单元702,用于收集所述一个或多个工作节点中每个工作节点与其他工作节点之间的数据流量信息和所述一个或多个工作节点中每个工作节点的处理速度信息;[0118]计算单元703,用于根据信息收集单元702收集到的数据流量信息和处理速度信息确定所述一个或多个工作节点中的每个工作节点的优化并发度;[0119]调整单元704,用于分别确定所述一个或多个工作节点中的每个工作节点的优化并发度与该工作节点的初始并发度是否相同,如果不相同,则按照该工作节点的优化并发度对该工作节点的并发度进行调整。[0120]可选的,每个工作节点包含一个或多个执行单元,且每个工作节点通过调用自身的执行单元处理数据流;工作节点的并发度表示工作节点包含的执行单元的个数;在所述按照该工作节点的优化并发度对该工作节点的并发度进行调整的方面;所述调整单元704具体用于:[0121]根据该工作节点的优化并发度为该工作节点新增至少一个执行单元,或删除该工作节点的至少一个执行单元,使得调整后的该工作节点的并发度与对应的优化并发度一致。[0122]最初设置的并发度相对于实际需要的并发度而言存在两种情况:过高或者是过低。则在所述根据该工作节点的优化并发度为该工作节点新增或删除至少一个执行单元的方面,所述则所述调整单元704包括:[0123]第一调整模块,用于当该工作节点的优化并发度大于该工作节点的初始并发度时:用于生成用于新增执行单元的第一控制指令并发送给该工作节点,使得该工作节点接收到所述第一控制指令后创建至少一个新的执行单元,并创建所述新的执行单元与其它执行单元的数据通道;[0124]第二调整模块,当所述工作节点的优化并发度小于该工作节点的初始并发度时:用于生成用于删除与所述工作节点的执行单元的第二控制指令并发送给该工作节点,使得该工作节点接收到所述第二控制指令后删除该工作节点的至少一个执行单元,并删除与所述删除的执行单元连接的数据通道。[0125]可选的,本发明实施例所提供的方案在提升算子并发度的同时,还需要保证数据的正确派发,所以该装置还包括:[0126]第一派发策略调整单元705,用于根据新增或删除的至少一个执行单元,调整该工作节点对应的上游工作节点的数据派发策略,并向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,在确定下游的目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单元,其中,所述数据派发策略用于表示工作节点在派发数据时,接收数据的设备以及接收数据的设备在接收数据时的数据量。[0127]第二派发策略调整单元706,用于根据新增或删除的至少一个执行单元,调整该工作节点对应的上游工作节点的数据派发策略,并向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,确定所述目标工作节点所属的工作节点组,所述工作节点组包括至少一个工作节点;并从所述工作节点组中确定下游的目标工作节点,以及在确定所述目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单元。[0128]本发明实施例提供的流计算系统中的控制节点700用于实现前述方法实施例中描述的数据处理方法,其具体的实现细节可以参照前述方法实施例,此处不再赘述。[0129]本发明实施例提供的流计算系统中的控制节点,在流计算系统运行的过程中实时的采集各个工作节点的处理情况,然后根据实时的处理情况对工作节点的并发度进行调整,使得工作节点的处理能力能够符合业务处理的实时需求,从而达到动态提升流计算系统的数据处理能力和资源利用率的效果。[0130]如图8所示,基于上述实施例所提供的数据处理方法,本发明实施例还提供一种流计算系统800,所述流计算系统800包括:控制节点801和多个工作节点802;[0131]所述控制节点801用于,根据所述流计算系统中配置的各个工作节点802的并发度,调用所述多个工作节点中的一个或多个工作节点对业务产生的数据流进行处理;[0132]工作节点802,用于在所述控制节点801的调用下,对业务产生的数据流进行处理;[0133]控制节点801还用于,收集所述一个或多个工作节点中每个工作节点与其他工作节点间的数据流量信息,以及所述一个或多个工作节点中每个工作节点的处理速度信息;通过收集到的数据流量信息和处理速度信息确定所述一个或多个工作节点中的每个工作节点的优化并发度;并分别确定所述一个或多个工作节点中的每个工作节点的优化并发度与该工作节点的并发度是否相同,如果不相同,则按照该工作节点的优化并发度对该工作节点的并发度进行调整。[0134]优选地,工作节点包含一个或多个执行单元,且当工作节点被调用对数据流进行处理时,具体由工作节点所包含的执行单元处理数据流;工作节点的并发度表示工作节点包含的执行单元的个数;则在所述按照工作节点的优化并发度对工作节点的并发度进行调整的方面;所述控制节点801具体用于:[0135]向工作节点802发送控制指令,所述控制指令根据工作节点802的优化并发度生成;[0136]相应地,工作节点802还用于,根据所述控制指令新增至少一个执行单元,或删除工作节点802的至少一个执行单元,使得工作节点802当前包含的执行单元个数所表征的工作节点802的并发度与工作节点802的优化并发度相同。[0137]优选地,所述控制节点801还用于根据新增或删除的至少一个执行单元,调整工作节点802对应的上游工作节点的数据派发策略,并向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,在确定下游的目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单元,其中,所述数据派发策略用于表示工作节点在派发数据时,接收数据的设备以及接收数据的设备在接收数据时的数据量。[0138]优选地,控制节点801还用于根据新增或删除的至少一个执行单元,调整工作节点对应的上游工作节点的数据派发策略,并向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,确定所述目标工作节点所属的工作节点组,所述工作节点组包括至少一个工作节点;并从所述工作节点组中确定下游的目标工作节点,以及在确定所述目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单元。[0139]本发明实施例提供的流计算系统,通过在系统运行的过程中实时收集各个工作节点的处理速度信息和工作节点间的流量信息,并根据实时收集的信息对工作节点的并发度进行调整,使得工作节点的处理能力能够符合业务处理的实时需求,从而达到动态提升流计算系统的数据处理能力和资源利用率。[0140]如图9所示,本发明坯提供一种控制节点,用于执行前述各个实施例中的数据处理方法,该控制节点包括至少一个处理器901例如CPU,至少一个网络接口902或者其他通信接口,存储器903,和至少一个通信总线904,用于实现这些装置之间的连接通信。处理器901用于执行存储器903中存储的可执行模块,例如计算机程序。存储器903可能包含高速随机存取存储器(RAM:RandomAccessMemory,也可能还包括非不稳定的存储器(nonvolatilememory,例如至少一个磁盘存储器。通过至少一个网络接口902可以是有线或者无线实现该系统网关与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。[0141]在一些实施方式中,存储器存储了程序9031,程序可以被处理器执行,以用于:根据配置的各个工作节点的并发度,调用所述多个工作节点中的一个或多个工作节点对数据流进行处理;收集所述一个或多个工作节点中每个工作节点与其它工作节点之间的数据流量信息和所述一个或多个工作节点中每个工作节点的处理速度信息;根据收集到的数据流量信息和处理速度信息确定所述一个或多个工作节点中的每个工作节点的优化并发度;分别确定所述一个或多个工作节点中的每个工作节点的优化并发度与该工作节点的并发度是否相同,如果不相同,则按照该工作节点的优化并发度对该工作节点的并发度进行调整。[0142]本申请实施例中的上述一个或多个技术方案,至少具有如下的技术效果:[0143]针对分布式的实时流处理系统中各种任务的处理情况实时变化的特点,本发明实施例提供的方法是在系统运行的过程中实时的采集各个工作节点的处理情况,然后根据实时的处理情况对工作节点的并发度进行调整,使得工作节点的处理能力能够符合业务处理的实时需求,从而达到动态提升流计算系统的数据处理能力和资源利用率的效果。[0144]本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。[0145]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

权利要求:1.一种流计算系统,其特征在于,包括:控制节点和多个工作节点;所述多个工作节点中的每个工作节点用于,根据自身的并发度,调用对应数目的执行单元来对接收到的元组进行处理;其中,工作节点的并发度表征工作节点可调用的执行单元的数目;各个工作节点的并发度被配置在描述业务处理逻辑的流图中;所述控制节点用于,收集所述每个工作节点的处理速度信息,以及在所述流图中具有逻辑上下游关系的工作节点间的数据流量信息;根据收集到的数据流量信息和处理速度信息确定所述每个工作节点的优化并发度;若确定所述每个工作节点的优化并发度与所述每个工作节点的并发度不相同,则按照所述每个工作节点的优化并发度对所述每个工作节点的并发度进行调整。2.如权利要求1所述的流计算系统,其特征在于,所述控制节点具体用于:当所述每个工作节点的优化并发度大于所述每个工作节点的并发度时,根据所述每个工作节点的优化并发度为所述每个工作节点新增至少一个执行单元,或当所述工作节点的优化并发度小于该工作节点的并发度时,删除所述每个工作节点的至少一个执行单元,使得所述每个工作节点当前的并发度与所述每个工作节点的优化并发度相同。3.如权利要求2所述的流计算系统,其特征在于,所述控制节点具体用于:生成用于创建新的执行单元的第一控制指令并发送给所述每个工作节点;所述每个工作节点用于,根据所述第一控制指令创建至少一个新执行单元,并创建所述新执行单元与其它执行单元的数据通道,其中,所述每个工作节点当前可调用的执行单元的数目与所述每个工作节点的优化并发度所表征的执行单元数目相同。4.如权利要求2所述的流计算系统,其特征在于,所述控制节点具体用于:生成用于删除所述每个工作节点的执行单元的第二控制指令并发送给所述每个工作节点;所述每个工作节点用于,根据所述第二控制指令删除所述每个工作节点的至少一个执行单元,并删除与所述删除的执行单元连接的数据通道,其中,所述每个工作节点当前可调用的执行单元的数目与所述每个工作节点的优化并发度所表征的执行单元数目相同。5.如权利要求2至4任一项所述的流计算系统,其特征在于,所述控制节点还用于,根据新增或删除的至少一个执行单元,调整所述每个工作节点对应的上游工作节点的数据派发策略,并向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,在确定下游的目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单元,其中,所述数据派发策略用于表示所述每个工作节点在派发数据时,接收数据的所述目标执行单元以及所述目标执行单元在接收数据时的数据量。6.如权利要求2至4任一项所述的流计算系统,其特征在于,所述控制节点还用于,根据新增或删除的至少一个执行单元,调整所述每个工作节点对应的上游工作节点的数据派发策略,并向所述上游工作节点发送调整后的数据派发策略,使得所述上游工作节点根据调整后的数据派发策略,确定目标工作节点所属的工作节点组,所述工作节点组包括至少一个工作节点;并从所述工作节点组中确定下游的目标工作节点,以及在确定所述目标工作节点对应的目标执行单元后,将数据包对应派发到所述目标执行单元。7.如权利要求2至6任一项所述的流计算系统,其特征在于,所述控制节点具体用于,根据元组到达时间和元组处理时间来确定所述每个工作节点的优化并发度;其中,所述元组到达时间表示元组到达所述每个工作节点的时间,所述元组处理时间表示所述每个工作节点的执行单元处理所述元组的时间。8.如权利要求7所述的流计算系统,其特征在于,所述每个工作节点的优化并发度近似等于所述元组处理时间与所述元组到达时间的比值。9.一种控制节点,包括:至少一个处理器、通过通信总线与所述至少一个处理器通信连接的存储器、以及存储在所述存储器上并可被所述至少一个处理器执行的计算机程序,其特征在于,所述至少一个处理器执行所述程序时实现权利要求1至8任一项所述的流计算系统中控制节点的功能。10.—种计算机可读存储介质,其上存储有计算机程序指令),其特征在于,所述程序指令被处理器执行时实现权利要求丨至8任一项所述的流计算系统中控制节点的功能。

百度查询: 华为技术有限公司 流计算系统中的数据处理方法、控制节点及流计算系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。