一种流数据的分布式动态处理方法与流程

文档序号:14835486发布日期:2018-06-30 12:13阅读:310来源:国知局
一种流数据的分布式动态处理方法与流程

本发明涉及流数据处理技术领域,尤其涉及一种流数据的分布式动态处理方法。



背景技术:

在传统的数据处理流程中,先收集数据,然后将数据放到数据库中,在人们需要的时候通过数据库对数据进行查询,得到答案。这样的一个流程隐含了两个前提:1.数据是旧的。当人们对数据库做查询的时候,数据库的数据是过去某一个时刻数据的一个快照,数据已经过时了,并且很可能已经过期了。2.这样的流程中,需要人们主动的发出查询。也就是说,在人们查询的时候,数据才会被处理。但在某些时候,这两个前提都不存在。例如股票市场中,数据总是不断的产生,人们需要根据当前的数据实时的作出判断;由于数据量太大,人们希望设定某种条件,当数据满足这些条件时系统能够主动的通知人并且自动地进行操作。正是由于有这种需求,才会出现流数据处理。即根据人们设定的要求对实时信息流进行处理,并将结果保存或返回至发起端,这样人们能够实时掌握最新的数据动态。生产环境中很多场景需要使用实时流数据处理,比如实时购物推荐、社交数据实时分析、站点日志处理、智能电网的实时数据处理等。这些场景都具有数据量大、实时性要求高的特点。

当前针对流数据的流计算框架有两种执行方案:流水线模式和微批模式。流水线模式即是数据依次流过各个节点之后就完成处理,就像工厂流水线一样,每一个节点其操作是相对固定的,而流数据在这些节点中依照执行逻辑流动。流水线模式的优势在于它的表达方式。数据一旦到达立即处理,这些系统的延迟性远比其它微批处理要好。数据流模式将更多的资源用于保证低延迟,所以其数据吞吐量相应较低。微批模式即是将连续的数据流依照时间进行人为切分,分割成一个个小的批量数据,将数据放置在固定的节点中,然后由节点迭代操作逻辑完成计算,这样避免了大量数据在节点之间传输,具有较高吞吐量,但是由于有数据积累的过程,所以数据的处理延迟也会较大。

由上可以看到,当前的两种流数据分布式处理方案都有着自己的优缺点:流水线模式处理延迟低,但是吞吐量相应也低;微批模式吞吐量高,但是处理延迟相应也高。这两种处理方案都不能达到流数据处理的高吞吐量、低延迟的目标。即现有两种技术方案是处于对立面。同时,分析现有流处理逻辑发现,不同操作有不同的数据放大量。有些操作是数据放大形式,比如句子切分成单词这个操作,将一个句子切分成单词,造成了数据数量变大。还有的操作是数据缩小形式,比如过滤操作。这样,一个完整的流处理逻辑中,数据有放大有缩小。

本发明试图探寻一种流数据分布式处理方法,针对流数据在分布式处理下的高吞吐量和低延迟不能兼顾的问题,根据流数据处理逻辑执行前的预测和流数据处理过程中的外部数据源变化和集群执行能力变化,选择最适合的执行模式来执行该部分的流数据处理逻辑,在维持模式变化对用户透明的前提下,可有效地增加分布式流数据处理的吞吐量并降低分布式流数据处理的延迟,同时避免流数据重复处理,从而提高流数据分布式处理的性能。



技术实现要素:

针对现有技术之不足,本发明提供一种流数据的分布式动态处理方法,其特征在于,所述方法至少包括:分析并预测用户流数据处理程序数据中至少一个数据特征块的执行模式,基于流数据的平均排队时延的大小以及排队时延的阈值来动态调整所述执行模式,基于所述执行模式处理对应的至少一个所述数据特征块。将不相关的流水线模式和微批模式关联并进行动态转换,实现了流数据计算的吞吐量高和延迟低的良好效果。

根据一个优选实施方式,所述执行模式的动态调整步骤包括:统计分布式流数据集群中至少一个节点的当前状态数据,基于所述当前状态数据调整所述执行模式为:

其中,Tup为所述排队时延的上阈值,Tdown为所述排队时延的下阈值,gx为第x个操作数据放大量,m为平均输入数据量,n为平均输出数据量。

根据一个优选实施方式,所述上阈值Tup和下阈值Tdown的确定方式为:其中,T是用户的服务等级协议设定的标准时间,α是用户设定的系统最大宽容度。结合延迟时间与排队时延阈值来判断是否进行执行模式的转变,准确度高,能够明显提高执行模式的判断效率和转换效率。

根据一个优选实施方式,所述执行模式的动态调整步骤还包括:采用“暂停-调整-运行”方式动态调整所述执行模式,其中,所述“暂停-调整-运行”方式包括:在将数据源的流数据缓存于数据缓冲区内的同时调整所述执行模式,基于调整后的执行模式对所述数据缓存区内的流数据进行处理。在流数据缓存时调整执行模式,即不降低流数据处理速度,也不影响流数据的整体运行。

根据一个优选实施方式,所述方法还包括:以建立缓存数据的方式恢复失效节点的数据,和/或基于气球模型来动态调整节点数量以达到负载平衡。对失效节点进行恢复和调节负载平衡,能够有效的避免数据的丢失和流数据的数据处理效率,特别地,气球模型能够动态调节数据资源的增加和减少,实现负载平衡和节点数据以高效率的速度进行快速处理。

根据一个优选实施方式,所述分析并预测用户流数据处理程序数据中至少一个数据特征块的执行模式的步骤包括:将用户的至少一步操作整合成完整的操作链,以确定用户的操作逻辑;根据用户所调用的API函数以及初步的操作链结构将所述完整的操作链切分成至少一个数据特征块;判断所述数据特征块的逻辑特征并根据所述逻辑特征选择执行模式,生成“特征块ID-执行模式”列表;基于所述“特征块ID-执行模式”列表将数据特征块映射到相应的执行模式以执行数据特征块对应的部分程序。将划分的数据特征块以映射的方式选择执行模式是准确度高且速度快的一种优选的方式,能够避免流水线模式和微批模式的混乱,也能够避免数据特征块和执行模式在传输过程中的错误关联,降低了流数据计算处理的失误概率。

根据一个优选实施方式,所述执行模式的动态调整的步骤还包括:基于执行模式转换指令暂停所述数据特征块的数据输入,并且将所述数据特征块内接受的数据处理完成,将待发送至所述数据特征块的数据导向数据缓冲区来进行缓存并调整数据特征块的执行模式,所述数据特征块在调整恢复状态从所述缓冲区获取数据进行处理,在所述缓冲区的数据处理完成后恢复所述数据特征块的数据输入。

根据一个优选实施方式,所述基于气球模型来动态调整节点数量以达到负载平衡的步骤包括:所述数据特征块设置有用于调整数据需求的气球模型,所述气球模型基于所述数据特征块的当前状态调整充气状态和/或放气状态,所述述气球模型在充气状态下增加所述数据特征块的数据分配量,和/或所述述气球模型在放气状态下收回多余的所述数据特征块的数据,并将收回的所述数据特征块的数据分入资源池以重新分配。

本发明还提供一种流数据的分布式动态处理系统,其特征在于,所述系统至少包括调度单元、数据接收单元和执行单元,所述调度单元分析并预测所述数据接收单元接收的用户流数据处理程序数据中至少一个数据特征块的执行模式,并且基于流数据的平均排队时延的大小以及排队时延的阈值来动态调整所述执行模式,所述执行单元基于所述执行模式处理对应的至少一个所述数据特征块。

根据一个优选实施方式,所述调度单元包括中央调度器、流水线模式调度器和微批模式调度器,所述中央调度器对所述执行模式的动态调整步骤包括:统计分布式流数据集群中至少一个节点的当前状态数据,基于所述当前状态数据调整所述执行模式为:

其中,Tup为所述排队时延的上阈值,Tdown为所述排队时延的下阈值,gx为第x个操作数据放大量,m为平均输入数据量,n为平均输出数据量,所述流水线模式调度器和所述微批模式调度器分别对分配的数据进行相应处理。本发明的流数据的分布式动态处理系统,是在一个完整的流处理逻辑中,针对数据有放大有缩小的特征,对数据放大的特征使用微批模式的高吞吐量的特性来去解决大数据量的问题,在数据缩小的时候,使用流水线模式的低延迟特性来兼顾延迟要求。这样通过将一个完整的流处理逻辑切分成若干个特征块,使用最合适的执行逻辑来处理该特征块中的逻辑,达到高吞吐量和低延迟之间的平衡。

本发明的有益技术效果:

(1)本发明通过关联使用流数据处理的流水线模式和微批模式的方式,在维持模式变化对用户透明的前提下,能够有效地增加分布式流数据处理的吞吐量并降低分布式流数据处理的延迟,从而提高流数据分布式处理的性能;

(2)本发明通过利用数据缓冲区来应对失效节点的恢复,能够在流数据处理不停止的情况下快速恢复失效节点至失效之前的状态,对用户透明。能很好应对大规模集群环境下节点频繁失效的情况;

(3)本发明仅仅需要对流数据分布式处理系统进行修改,不需要修改用户的流数据处理执行逻辑,降低了整体成本,而且部署大规模的分布式流数据处理系统很方便。

附图说明

图1是本发明的整体逻辑模块示意图;

图2是本发明的任务调度的逻辑模块示意图,

图3是本发明的数据流处理模式的调整示意图,

图4是本发明的数据流处理模式的另一个优选的调整示意图,

图5是本发明方法中数据流的分析和映射步骤的细化流程图,

图6是本发明方法中动态决策模块的细化流程图;

图7是本发明方法中节点失效恢复模块的细化流程图;

图8是本发明方法中负载均衡模块的细化流程图;和

图9是本发明的气球模型的逻辑示意图。

附图标记列表

10:调度单元 20:数据接收单元

30:执行单元 40:反馈单元

31:流水线模式执行单元 32:微批模式执行单元

11:中央调度器 12:流水线模式调度器

13:微批模式调度器 14:数据集控制单元

111:逻辑分析模块 112:映射模块

113:动态决策模块 114:节点失效恢复模块

115:负载均衡模块 121:第一作业模块

122:第一任务集调度器 123:第一数据集调度器

131:第二作业模块 132:第二任务集调度器

133:第二数据集调度器 134:中间数据块控制模块

41:第一运行状态反馈模块 42:第二运行状态反馈模块

43:第三运行状态反馈模块 44:执行状态反馈模块

具体实施方式

下面结合附图进行详细说明。

为了便于理解,在可能的情况下,使用相同附图标记来表示各附图中共同的相似元件。

如在整篇本申请中所使用的那样,词语“可以”系容许含义(即,意味着有可能的)而不是强制性含义(即,意味着必须的)。类似地,词语“包括”、“包括”和“包括”意味着包括但不限于。

短语“至少一个”、“一个或多个”以及“和/或”系开放式表达,它们涵盖操作中的关联与分离两者。例如,表述“A、B和C中的至少一个”、“A、B或C中的至少一个”、“A、B和C中的一个或更多个”、“A、B或C”和“A、B和/或C”中的每个分别指单独A、单独B、单独C、A和B一起、A和C一起、B和C一起或A、B和C一起。

术语“一种”或“一个”实体指的是该实体中的一个或多个。这样,术语“一”(或“一”)、“一个或多个”以及“至少一个”在本文中可以交换地使用。还应该注意,术语“包括”、“包含”和“具有”可以交换地使用。

如本文中所使用的那样,术语“自动的”及其变型是指当执行过程或操作时在没有实质性人工输入的情况下完成的任何过程或操作。然而,如果在执行该过程或操作之前接收到该输入,则该过程或操作可以是自动的,即使该过程或操作的执行使用了实质性或非实质性的人工输入。如果这样的输入影响该过程或操作的执行方式,则该人工输入被认为是实质性的。准予执行该过程或操作的人工输入不被视为“实质性的”。

本发明的API是指应用程序编程接口。应用程序编程接口是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

本发明的数据特征块,表示的是具有某个特征的单个数据、多于或等于两个的数据构成的数据组或数据集群。因此,数据特征块还可以称为特征块、特征单元、特征组合、特征集群、特征部分、程序特征块等具有相近含义的词语。

实施例1

本实施例提供一种流数据的分布式动态处理方法,该方法的步骤至少包括:分析预测用户流数据处理程序的执行模式和动态调整执行模式。

分析预测用户流处理程序的执行模式,即通过分析用户流数据处理程序,将程序切分为若干特征块,根据特征块的特征将其初始映射到当前最适合的执行模式上执行。

具体地,S1:分析并预测用户流数据处理程序数据中至少一个数据特征块的执行模式。即在用户提交分布式流处理程序之后,通过分析用户在分布式流处理程序中所调用的执行API,以及程序的上下文中各个操作之间的相关关系来对用户所提交的分布式流处理程序进行初步的切分。将完整的分布式流处理程序划分成若干个数据特征块,然后根据每个数据特征块的显著特征,将其映射到当前最合适于该特征块的执行模式进行执行。通过前期用户流数据处理程序的分析预测,达到减少后续动态调整带来性能损失的目的。

S2:基于流数据的平均排队时延的大小以及排队时延的阈值来动态调整所述执行模式。

流数据分布式处理集群在应用程序执行过程中,集群的计算能力会受到多方面影响而变化,外部数据源的数据流量也会随着时间的变化而有所波动。所以根据预测结果所分配的执行模式会随着时间的变化而需要有所调整。优选的,调整时采用“暂停-调整-运行”的方式。

S3:基于所述执行模式处理对应的至少一个所述数据特征块。

优选的,如图5所示,所述分析并预测用户流数据处理程序数据中至少一个数据特征块的执行模式的步骤包括:

S11:开始。

S12:将用户的至少一步操作整合成完整的操作链,以确定用户的操作逻辑。优选的,将用户的每一步操作整合成一套完整的操作链来确定用户的操作逻辑

S13:根据用户所调用的API函数以及初步的操作链结构将一条完整的操作链切分成至少一个数据特征块。

S14:判断所述数据特征块的逻辑特征并根据所述逻辑特征选择执行模式,生成“特征块ID-执行模式”列表。

S15:基于所述“特征块ID-执行模式”列表将数据特征块映射到相应的执行模式以执行数据特征块对应的部分程序。

S16:结束。

优选的,如图6所示,执行模式的动态调整步骤包括:

S21:开始。

S22:统计分布式流数据集群中至少一个节点的当前状态数据。当前数据状态包括平均输入数据量m,平均输出数据量n,流数据的平均排队时间t和操作吞吐量T。

S23:计算第x个操作数据放大量

S24:基于所述当前状态数据判断并调整执行模式为:

其中,Tup为所述排队时延的上阈值,Tdown为所述排队时延的下阈值。

上阈值Tup和下阈值Tdown的确定是根据用户的服务等级协议(SLA)所设定的标准时间T和用户设定的系统最大宽容度α来确定的。

上阈值Tup和下阈值Tdown的确定方式为:

其中,T是用户的服务等级协议设定的标准时间,α是用户设定的系统最大宽容度。

若不需要调整执行模式,则对数据特征块的输入数据进行执行模式的循环判断。若需要调整执行模式,则采用“暂停-调整-运行”的方式动态调整执行模式。即,先暂停该数据特征块的数据处理任务,调整其执行模式,调整完毕之后继续运行。

优选的,在将数据源的流数据缓存于数据缓冲区内的同时调整所述执行模式,基于调整后的执行模式对所述数据缓存区内的流数据进行处理。

S25:基于执行模式转换指令暂停所述数据特征块的数据输入,并且将所述数据特征块内接受的数据处理完成。

S26:将待发送至所述数据特征块的数据导向数据缓冲区来进行缓存,在缓存数据的同时对数据特征块的执行模式进行调整。

S27:所述数据特征块在调整恢复状态从所述缓冲区获取数据来进行处理。

S28:在所述缓冲区的数据处理完成后恢复所述数据特征块的数据输入。即在缓冲区数据执行完毕后,从上游获取数据进行后续正常执行。

图3为本发明的一个优选实施例。一个完整的流处理程序包含{1,2,3,4,5,6}这6个操作,不同的操作因为调用了不同的API,其数据放大率不完全相同。例如,操作1将一条数据放大为了8条;操作2将8条数据缩小为了5条;操作3没有改变数据量;操作4将5条数据缩小为了0.5条,操作5将0.5条数据缩小为了0.1条,以此类推。则将流处理程序切分的依据以及数据特征块的显著特征为数据的放大率。虚线框内的操作2、3和4部分是属于需要处理大数据量的部分。而非虚线框的部分就是小数据量处理部分。数据量的大小评判就是和最开始输入的数据量相比较的。此时,将一个完整的流处理程序切分为3个特征块,分别是{1},{2,3,4}和{5,6}。特征块的显著特征在于:特征块{1}和{5,6}只需要处理小数据量,特征块{2,3,4}需要处理大数据量。

在流计算执行中,有两种执行模式,微批模式W适用于大吞吐量,但是有较高延迟;流水线模式L有较低延迟,但是吞吐量较小。{2,3,4}是需要使用大吞吐量特性来进行数据处理的。如果虚线框内操作部分依然采用流水线模式L进行处理,则数据吞吐量较小,大量数据在操作1和2之间积累,造成平均排队时间增长。当排队延迟时间增长到上阈值Tup时,需要将虚线框处操作的执行模式调整为微批模式W。虚线框的大小由决定。

以图3数据来说明,g1=8/1=8,g2=5/8=0.625,g3=5/5=1,g4=0.5/5=0.1。g1*g2*g3*g4=0.5≤1满足执行模式的转换条件,所以调整操作2,3,4从流水线模式L至微批模式W。未将操作1纳入调整范围是因为1之后产生的大量数据可以在后续操作中进行数据均衡操作,避免数据倾斜问题。当数据量减小以后,更需要低延迟。在数据平均排队时间tdown的时候,将操作2,3,4从微批模式W调整回流水线模式L。

如图4所示,假设有n个操作。在第p个操作中等待队列的长度阈值为Lup和Ldown,并且λm是第m个操作的放大率。则,虚线框的范围是从第p个操作到第q个操作。操作q确认为:

如图4所示的数据为例,λ1=8/1=8,λ2=5/8=0.625,λ3=5/5=1,λ4=0.5/5=0.1,则操作q为Q的最小值,即q=0.5。

实施例2

本实施例是对实施例1的进一步改进,重复的内容不再赘述。

本实施例提供一种流数据的分布式动态处理方法,所述方法不仅包括:

S1:分析并预测用户流数据处理程序数据中至少一个数据特征块的执行模式,

S2:基于流数据的平均排队时延的大小以及排队时延的阈值来动态调整所述执行模式,和

S3:基于所述执行模式处理对应的至少一个所述数据特征块,

还包括步骤:

S4:以建立缓存数据的方式恢复失效节点,和/或

S5:基于气球模型来动态调整节点数量以达到负载平衡。

在流数据处理过程中由用户设置批量时间间隔,每个时间间隔之内,每个操作所输出的数据均需要建立一份缓存以支持数据一致性。若后续操作因节点崩溃而造成数据丢失的情况,则从前一个操作的输出缓存中再次取出数据进行计算,以恢复所丢失的数据,达到节点失效恢复的目的。

如图7所示,在失效节点的恢复过程中,若后续操作因节点崩溃而造成数据丢失的情况,则从前一个操作的输出缓存中再次取出数据进行计算,以恢复所丢失的数据。

优选的,恢复失效节点的步骤包括:

S31:开始;

S32:在超时时间内未接受到节点的心跳包,判定该节点失效,进入失效恢复模式;

S33:失效节点所承担的操作的前一个操作暂停向该节点发送数据,将输出数据缓存于缓冲区内;

S34:获取失效节点的检查点信息,将失效节点恢复到最近一次检查点状态;

S35:从前一个操作的缓冲区获取失效节点在最近一次检查点之后所执行的数据进行重复执行,用以恢复到失效时的状态;

S36:恢复完毕,进入正常执行状态进行后续的程序执行。

由于分布式流数据处理过程中,对于资源的需求会随着时间的变化而变化,故需要根据处理集群当前的状态,采用气球模型来动态调配资源,达到整个系统的均衡负载。在资源需求增大的时候,会对该部分资源气球充气,触发系统的资源分配,增加处理节点,分流数据。在资源需求减少的时候,会对该部分资源气球放气,触发系统的资源回收。

如图8所示,所述基于气球模型来动态调整节点数量以达到负载平衡的步骤包括:

S41:开始;

S42:每个数据特征块设置有用于调整数据需求的气球模型,以确定数据的需求情况;

S43:气球模型基于数据特征块的当前状态调整充气状态和/或放气状态,即根据特征块的数据资源需求变化进行充气和放气。若气球模型需要充气,则进行步骤S44。若气球模型需要放气,则进行步骤S46。否则,直接结束。

S44:气球模型进行充气;

S45:气球模型在充气状态下增加所述数据特征块的数据分配量;

S46:气球模型进行放气;

S47:所述述气球模型在放气状态下收回多余的数据特征块的数据资源,并将收回的数据资源分入资源池以重新分配;即再次进行步骤S45。

S46:结束。

如图9所示,气球模型的大小情况为用户初始设定资源大小。气球A表示数据特征块A占用的数据资源。气球B表示数据特征块B占用的数据资源。方框C标识系统剩余资源。若需要增加资源,气球模型充气,扩大资源使用,如果剩余资源满足不了扩张的需求,那么气球模型最多只能扩张剩余资源的大小,而不能无限扩张。减少资源则是资源气球模型放气。

优选的,增加和回收特征块资源出现于两种条件,(1)数据特征块执行过程中的正常资源需求与资源释放。(2)数据特征块执行过程中根据数据量变化和执行环境的变化需要调整执行模式,所以需要申请新资源或者释放多余资源。

在增加数据特征块资源的时候,包括以下实施步骤:

S51:将数据资源气球充气的时候所纳入的新资源计入数据特征块所使用的资源中;

S52:将新资源上锁,赋予该数据特征块新加资源的独享锁;和

S53:数据特征块使用新资源进行数据的计算处理。

在减少数据特征块资源的时候,包括以下实施步骤:

S61:将数据资源气球放气的时候所释放的资源计入待回收资源;

S62:等待待回收资源上的任务处理完毕,资源空闲;

S63:释放数据特征块在待回收资源上的独享锁;和

S64:待回收资源正式纳入系统剩余资源池中,等待下次被分配。

本发明针对流数据在分布式处理下的高吞吐量和低延迟不能兼顾的问题,提出的一种流数据的分布式动态处理方法根据流数据处理逻辑执行前的预测和流数据处理过程中的外部数据源变化和集群执行能力变化,在维持模式变化对用户透明的前提下,通过动态选择最适合的执行模式来执行该部分的流数据处理逻辑,从而增加分布式流数据处理的吞吐量并降低分布式流数据处理的延迟,同时避免流数据重复处理,从而提高流数据分布式处理的性能。

实施例3

本实施例是对实施例1和实施例2及其结合的进一步改进,重复的内容不再赘述。

本发明还提供一种流数据的分布式动态处理系统,如图1所示。一种流数据的分布式动态处理系统至少包括调度单元10、数据接收单元20和执行单元30和反馈单元40。

在流数据分布式处理的时候,用户将其流数据处理逻辑提交至流数据分布式处理系统的调度单元10。调度单元10包括用于对流处理任务发起调度的专用集成芯片、处理器、服务器和云服务器中的一种或几种。调度单元10将流处理任务部署于计算节点上。

根据用户的流处理任务逻辑,数据接收单元20开始从外部数据源接收数据准备执行。数据接收单元20包括用于传输和存储数据的数据端口、专用集成芯片、CPU、微处理器、存储器中的一种或几种。

执行单元30根据用户的执行逻辑处理所接收到的数据。执行单元30包括流水线模式执行单元31和微批模式执行单元32。执行单元30包括用于执行数据计算和处理的专用集成芯片、CPU、微处理器、存储器中的一种或几种。

反馈单元40将处理完毕的数据写入永久存储器或返回至用户处。反馈单元40包括用于存储数据计算和处理的专用集成芯片、CPU、微处理器、存储器、服务器中的一种或几种。

特别地,调度单元10和执行单元30的执行决定着整个流数据分布式系统的性能。

如图2所示,调度单元10包括中央调度器11、流水线模式调度器12和微批模式调度器13。中央调度器11包括逻辑分析模块111、逻辑拆分模块112、动态决策模块113、节点失效处理模块114和节点负载平衡模块115。

逻辑分析模块111包括用于逻辑分析的专用集成芯片、CPU、微处理器、存储器、服务器中的一种或几种。逻辑拆分模块112包括用于逻辑分析、拆分、预测和逻辑数据计算的专用集成芯片、CPU、微处理器、存储器、服务器中的一种或几种。动态决策模块113包括用于逻辑分析和数据处理的专用集成芯片、CPU、微处理器、存储器、服务器中的一种或几种。节点失效处理模块114包括用于节点数据量的分析、处理和控制的专用集成芯片、CPU、微处理器、控制器、存储器、服务器中的一种或几种。

其中,逻辑分析模块111与数据接收单元20连接,用以对接收的用户的流数据分布处理程序进行逻辑分析。逻辑拆分模块112用于根据动态调整方式将拆分得到的数据特征块进行执行模式的预测和调整,并将数据特征块发送至对应的流水线模式调度器12或微批模式调度器13。动态决策模块113用于根据整体的流数据的分布式动态处理系统的运行状态做出决策,并指示逻辑拆分模块112对用户流数据分布处理程序进行动态拆分和执行模式的重新预测。节点失效处理模块114用于对失效节点进行恢复。节点负载平衡模块115用于对数据特征块的节点量进行调节以实现节点负载平衡。流水线模式调度器12包括第一作业模块121、第一任务集调度器122和第一数据集调度器123。

第一作业模块121用于生成流水线模式类型作业。第一任务集调度器122用于对流水线模式的任务集进行调度。第一数据集调度器123用于对流水线模式的数据集进行调度。流水线模式调度器13包括第二作业模块131、第二任务集调度器132、第二数据集调度器133和中间数据块控制模块134。

优选的,第一作业模块121和第二作业模块131包括用于生成流水线模式或微批模式类型作业的专用集成芯片、CPU、微处理器、存储器、服务器中的一种或几种。

第一任务集调度器122第二任务集调度器132包括用于对流水线模式或微批模式的任务集进行调度的专用集成芯片、CPU、微处理器、存储器、服务器中的一种或几种。

第一数据集调度器123和第二数据集调度器133包括用于进行统一数据集调度的专用集成芯片、CPU、微处理器、存储器、服务器中的一种或几种。

中间数据块控制模块134包括用于对微批模式的中间数据块进行控制的专用集成芯片、CPU、微处理器、控制器、存储器、服务器中的一种或几种。

第二作业模块131用于生成微批模式类型作业。第二任务集调度器132用于对微批模式的任务集进行调度。第二数据集调度器133用于对流水线模式的数据集进行调度。中间数据块控制模块134用于对微批模式的中间数据块进行控制。本发明的流数据的分布式动态处理系统的执行部分包括数据集控制单元14和执行单元30。

数据集控制单元14用于根据流水线模式调度器中的第一数据集调度器123、微批模式调度器中第二数据集调度器133和中间数据块控制模块134发送的数据集调度数据进行统一控制。

执行单元30用于根据第一任务集调度器122和第二任务集调度器132发送的数据特征块以对应的执行模式进行程序部分的执行。其中,流水线模式执行单元31用于执行第一任务集调度器122发送的数据特征块。微批模式执行单元32用于执行第二任务集调度器132发送的数据特征块。

本发明提供的一种流数据的分布式动态处理系统,所述调度单元10分析并预测所述数据接收单元接收的用户流数据处理程序数据中至少一个数据特征块的执行模式,并且基于流数据的平均排队时延的大小以及排队时延的阈值来动态调整所述执行模式。所述执行单元30基于所述执行模式处理对应的至少一个所述数据特征块。节点失效处理模块114以建立缓存数据的方式恢复失效节点的数据。节点负载平衡模块115基于气球模型来动态调整节点数量以达到负载平衡。

中央调度器11对所述执行模式的动态调整步骤包括:

逻辑分析模块111统计分布式流数据集群中至少一个节点的当前状态数据,

动态决策模块113基于所述当前状态数据调整所述执行模式为:

其中,Tup为所述排队时延的上阈值,Tdown为所述排队时延的下阈值,gx为第x个操作数据放大量,

m为平均输入数据量,n为平均输出数据量,

逻辑拆分模块112基于动态决策模块113的执行模式调整指令或逻辑分析模块111的分析结果,对数据特征块进行拆分,并且将拆分后的数据特征块分别发送至对应的流水线模式调度器12和所述微批模式调度器13,以使流水线模式调度器12和所述微批模式调度器13对分配的数据进行相应处理。

优选的,逻辑拆分模块112对执行模式的动态调整步骤还包括:采用“暂停-调整-运行”方式动态调整所述执行模式。

其中,所述“暂停-调整-运行”方式包括:动态决策模块113在数据集控制单元14将数据源的流数据缓存于数据缓冲区内的同时,指示逻辑拆分模块112调整所述执行模式。执行单元30基于调整后的执行模式对所述数据缓存区内的流数据进行处理。

优选的,逻辑分析模块111将用户的至少一步操作整合成完整的操作链,以确定用户的操作逻辑;

逻辑拆分模块112根据用户所调用的API函数以及初步的操作链结构将所述完整的操作链切分成至少一个数据特征块,判断所述数据特征块的逻辑特征并根据所述逻辑特征选择执行模式,生成“特征块ID-执行模式”列表,和基于所述“特征块ID-执行模式”列表将数据特征块映射到相应的执行模式以执行数据特征块对应的部分程序。

优选的,执行模式的动态调整的步骤还包括:

流水线模式调度器12中的第一作业模块121或微批模式调度器13中的第二作业模块131基于中央调度器11的执行模式转换指令暂停数据特征块的数据输入,并且执行单元30将所述数据特征块内接收的数据处理完成。第一作业模块121或第二作业模块131将待发送至数据特征块的数据分别通过第一数据集调度器123、第二数据集调度器133和中间数据块控制模块导向数据集控制单元14中的数据缓冲区来进行缓存并调整数据特征块的执行模式。所述数据特征块在调整恢复状态,数据集控制单元14从所述缓冲区获取对应的数据进行处理。在所述缓冲区的数据处理完成后,第一作业模块121或第二作业模块131恢复所述数据特征块的数据输入。

优选的,节点负载平衡模块115基于气球模型来动态调整节点数量以达到负载平衡的步骤包括:

所述数据特征块设置有用于调整数据需求的气球模型;所述气球模型基于所述数据特征块的当前状态调整充气状态和/或放气状态;所述述气球模型在充气状态下增加所述数据特征块的数据分配量;和/或所述述气球模型在放气状态下收回多余的所述数据特征块的数据,并将收回的所述数据特征块的数据分入资源池以重新分配。

优选的,反馈单元40包括第一运行状态反馈模块41、第二运行状态反馈模块42、第三运行状态反馈模块43和执行状态反馈模块44,用于对各个执行模式进行运行状态的监控和反馈。优选的,第一运行状态反馈模块41、第二运行状态反馈模块42、第三运行状态反馈模块43和执行状态反馈模块44均包括用于数据采集、数据处理和数据反馈的专用集成芯片、CPU、微处理器、控制器、存储器、服务器中的一种或几种。

其中,执行状态反馈模块44与执行单元30连接,用于监控执行单元30中的各个数据特征块在各个执行模式的当前执行状态。

第二运行状态反馈模块42用于对流水线模式的数据特征块的执行状态进行跟踪和反馈。第三运行状态反馈模块43用于对微批模式的数据特征块的执行状态进行跟踪和反馈。执行状态反馈模块44将当前执行状态数据分别发送至对应的第二运行状态反馈模块42和第三运行状态反馈模块43。

第一运行状态反馈模块41设置在中央调度器11中,用于对整体的流数据的分布式动态处理系统的运行状态进行跟踪和反馈。第一运行状态反馈模块41接收第二运行状态反馈模块42和第三运行状态反馈模块43发送的当前执行状态数据,并且将数据汇总发送至动态决策模块113、节点失效处理模块114和节点负载平衡模块115,以便动态决策模块113基于执行状态数据进行执行模式的转换决策,节点失效处理模块114对失效节点进行恢复处理和节点负载平衡模块115调节资源的补充和收回。

因此,本发明的流数据的分布式动态处理系统是一个动态循环反馈的系统,通过动态的调整来保证流数据的分布式处理的最高效率,实现了低延迟、吞吐量高的双重优势系统。

虽然已经详细描述了本发明,但是在本发明的精神和范围内的修改对于本领域技术人员将是显而易见的。这样的修改也被认为是本公开的一部分。鉴于前面的讨论、本领域的相关知识以及上面结合背景讨论的参考或信息(均通过引用并入本文),进一步的描述被认为是不必要的。此外,应该理解,本发明的各个方面和各个实施例的各部分均可以整体或部分地组合或互换。而且,本领域的普通技术人员将会理解,前面的描述仅仅是作为示例,并不意图限制本发明。

已经出于示例和描述的目的给出了本公开的前述讨论。这并不意图将本公开限制于本文公开的形式。在前述的具体实施方式中,例如,为了简化本公开的目的,本公开的各种特征在一个或多个实施例、配置或方面中被组合在一起。实施例、配置或方面的特征可以以除上面讨论的那些之外的替代实施例、配置或方面组合。本公开的该方法不应被解释为反映本公开需要比每个权利要求中明确记载的更多特征的意图。相反,如以下权利要求所反映的,创造性方面在于少于单个前述公开的实施例、配置或方面的所有特征。因此,以下权利要求由此被并入本具体实施方式中,其中每个权利要求其自身作为本公开的单独实施例。

而且,虽然本公开的描述已经包括对一个或多个实施例、配置或方面以及某些变型和修改的描述,但是其他变型、组合和修改也在本公开的范围内,例如在本领域技术人员的技能和知识范围内,在理解了本公开之后。旨在获得在允许的程度上包括替代实施例、配置或方面的权利,所述权利包括那些要求保护的替代的、可互换的和/或等效的结构、功能、范围或步骤的权利,无论这种替代的、可互换的和/或等效的结构、功能、范围或步骤是否在本文中公开,并且无意公开奉献任何可专利的主题。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1