云中的分布式流处理制造技术

技术编号:14763758 阅读:64 留言:0更新日期:2017-03-03 17:33
低延迟云规模计算环境包括查询语言、优化、调度、错误容错和错误恢复。事件模型可以用于扩展声明性查询语言,使得可以执行事件流的事件的时间分析。提取器和输出器可用于定义和实现扩展基于事件的查询语言的能力的功能。以被扩展的查询语言编写的脚本可以被转换为最优并行连续执行计划。可以由调度可用计算机器上的顶点的流传输作业管理器来编排计划的执行。流传输作业管理器可以监视整个作业执行。可以通过跟踪每个顶点中的执行进度和数据依赖性来提供容错。在故障的情况下,可以调度故障顶点的另一个实例。可以基于检查点和数据依赖性来确定最优恢复点。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
今天,许多公司依靠云规模数据计算的结果,来改进服务质量、支持新颖特征、并且检测随着时间的模式中的变化。对于收集信息(该信息将提供实时的业务洞察)的需求日益增长。这种类型的分析可以涉及捕获近期的处理历史和用户交互的大规模系统日志的处理。
技术实现思路
描述了可以支持分布式低延迟流处理的云规模计算环境。该框架包括查询语言、优化、调度、错误(fault)容错和错误恢复(recovery)。事件模型可以用于扩展声明性查询语言,使得可以执行时间分析(temporalanalysis)。流提取器和流输出器可以用于定义和实现扩展基于事件的查询语言的功能。结构化和非结构化数据集可以被转换为时间事件流。以被扩展的查询语言编写的脚本可以被转换为最优并行的连续执行计划。执行计划可以包括顶点的有向无环图(DAG)。计划的执行可以由调度可用计算机器上的顶点的流传输作业管理器来编排(orchestrate)。流传输作业管理器可以监视整个作业执行。顶点的全部或某些部分可以同时运行。顶点的全部或某些部分可以连续地运行。可以通过跟踪每个顶点中的执行进度和数据依赖性来提供容错。可以通过执行定期检查点设置(checkpointing)来跟踪执行进度。序列号可以用于描述和跟踪顶点的输入、输出和状态之间的依赖性。在故障的情况下,可以调度故障顶点的另一个实例。在检测到顶点的故障和相关联的状态丢失时,可以通过重新执行(replay)适当的事件历史来恢复(recover)状态。可以通过频繁地检查点设置状态并使用序列号来保持跟踪数据依赖性,来减少必须被重新执行的历史的量。可以通过使用检查点和序列号来确定最优恢复点,以支持以最小重新计算来重新开始(resume)顶点执行。所描述的特征可以线性扩展到云大小,即,可以扩展到数百个计算设备或更多,甚至在高的事件速率下以低延迟操作。提供本
技术实现思路
以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。此
技术实现思路
并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。附图说明在附图中:图1a示出了根据本文描述的主题的各方面的执行分布式流处理的系统100的示例;图1b示出了根据本文描述的主题的各方面的其执行由流传输作业管理器编排的顶点的示例;图1c示出了根据本文描述的主题的各方面的其中顶点中的一个顶点已经失败的图1b的示例;图2示出了根据本文所公开的主题的各方面的包括执行分布式流处理的方法的方法200的示例;以及图3是根据本文所公开的主题的各方面的计算环境的示例的框图。具体实施方式概述处理大量数据的一种方式是针对特定时间段来收集日志、并运行循环作业以处理收集的数据。该方法固有地引起从事件被生成的时间到其被反映在查询逻辑的输出中的时间的延迟。增加作业被运行的频率可能导致高昂(prohibitive)的开销,这是因为例如作业启动和清理成为资源的大的消费者。因为查询逻辑需要跨越更大时间跨度来处理事件,开销也可能变得高昂。例如,为了可靠地理解用户行为,可能需要分析几个小时内生成的日志。因此,每个作业迭代不但消耗新的事件,而且读取、更新和写入长期用户特定状态。针对数秒的每个迭代而言读取和写入整个用户状态可能变得非常昂贵。另一种方案依赖于流数据库系统。处理互联网规模的大量的数据流和递送高吞吐量可能需要流处理透明地扩展到大的硬件群。在不牺牲延迟的情况下处理伴随大群集的不可避免的错误,这可能是具有挑战性的。因为从最开始重新加载数据是不可行的,基于重新计算的故障恢复并不总是适用于流处理。根据本文所描述的主题,分布式和连续流处理组合了来自传统并行数据库和基于批处理(batch-based)的恢复执行引擎(例如MapReduce)的益处,以便通过高级优化来支持容易的可编程性并提供大量可扩展性和高性能。大规模批量处理可以支持用于数万计算机器的各种数据分析和数据挖掘应用。复杂事件处理技术可以被集成到支持分布式流处理的云规模查询执行平台。事件模型可以被用于扩展声明性语言,以执行时间分析并将时间运算符的实现添加到分布式和连续的流处理。云中的分布式流处理图1a示出了根据本文描述的主题的各方面的包括执行分布式流处理的系统的系统100的示例。系统100的全部或部分可以驻留在一个或多个计算机或计算设备上,例如下面参照图3描述的计算机。系统100或其部分可以包括从服务(例如,在云中)获得的信息、或可以在云计算环境中操作。云计算环境可以是其中计算服务不被拥有但是按需被提供的环境。例如,信息可以驻留在联网云中的多个设备上和/或数据可以存储在云内的多个设备上。系统100可以包括一个或者多个计算设备,例如计算设备102。预期的计算设备包括但不限于台式计算机、平板式计算机、膝上型计算机、笔记本计算机、个人数字助理、智能电话、蜂窝电话、移动电话等。诸如计算设备102的计算设备可以包括诸如处理器142等的一个或多个处理器、以及诸如与一个或多个处理器通信的存储器144的存储器。系统100可以包括以下的任何组合:诸如脚本处理器112的脚本处理器,诸如优化器114的优化器和/或诸如流传输作业管理器106之类的流传输作业管理器。脚本处理器112可以编译诸如由脚本110的脚本。由系统100接收的脚本可以包括命令序列。命令可以是数据操纵运算符,其将一个或多个事件流作为输入,对数据执行一些操作并输出事件流。用户可以为输出事件流命名。此功能可以使输出流更容易被后续操作所消耗。脚本处理器112可以包括优化器(例如优化器114)或与其相关联。优化器114可以创建优化的执行计划,例如执行计划120。执行计划120可以是最优并行连续执行计划。最优并行连续执行计划可以在多个计算设备上执行。执行计划可以包括顶点的有向无环图(DAG)。顶点是图中的一个节点。诸如流传输作业管理器106之类的流传输作业管理器可以接收优化的执行计划,并且可以在一个或多个计算设备上编排查询执行。流传输作业管理器可以创建并监视运行执行计划所需的顶点。与根据需要在不同时间调度顶点的面向批处理的作业管理器相反,流传输作业管理器106可以在执行开始时调度DAG中的所有顶点。每个顶点可以在单独的计算设备上执行。可以在同一计算设备上调度多个顶点。系统100的顶点可以是流提取器(例如流提取器104a、...、流提取器104n),其消耗来自一个或多个事件源(例如事件源116a、...、事件源116n)的事件。系统100的顶点可以是流输出器,例如流输出器108a、...、流输出器108n。每个流提取器顶点可以连续地等待其输入流,并对数据执行计算。结果可以通过网络被发送到下游顶点。结果还可以异步地缓冲到本地存储(未示出)。因此,可以实现流提取器以从连续地产生事件的各种源(例如事件源116a、...、事件源116n)生成事件。来自输入源的事件可以用单调递增的序列号标记。连续产生事件的源包括但不限于传感器,执行实时日志记录(logging)的源等。流提取器可以从以具有时间运算符的查询语言编写的查询或脚本(例如,脚本110)来调用。流提取器可以指示每个事件的时间信息。时间信息可以包括事件开始的时间(例如,STARTTIME)和事件结束的时间(例如,ENDTIME)。时间信息可以包括事件为活动本文档来自技高网
...
云中的分布式流处理

【技术保护点】
一种用于执行分布式流处理的系统,包括:至少一个处理器;连接到所述至少一个处理器的存储器;以及至少一个程序模块,包括流传输作业管理器,所述流传输作业管理器监视关于由在多个计算设备上执行的多个顶点执行的流传输作业的执行信息,所述流传输作业管理器接收针对所述多个顶点的执行进度信息和数据依赖性,所述流传输作业管理器响应于检测到所述多个顶点中的故障顶点来调度新顶点,所述流传输作业管理器确定在所述新顶点上从其重新开始处理的最近的检查点。

【技术特征摘要】
【国外来华专利技术】2014.07.01 US 14/320,7061.一种用于执行分布式流处理的系统,包括:至少一个处理器;连接到所述至少一个处理器的存储器;以及至少一个程序模块,包括流传输作业管理器,所述流传输作业管理器监视关于由在多个计算设备上执行的多个顶点执行的流传输作业的执行信息,所述流传输作业管理器接收针对所述多个顶点的执行进度信息和数据依赖性,所述流传输作业管理器响应于检测到所述多个顶点中的故障顶点来调度新顶点,所述流传输作业管理器确定在所述新顶点上从其重新开始处理的最近的检查点。2.根据权利要求1所述的系统,所述流传输作业管理器计算所述新顶点从其重新开始处理的事件序列号的最小序列号。3.根据权利要求1所述的系统,还包括至少一个程序模块,所述至少一个程序模块包括脚本处理器,所述脚本处理器接收以声明性查询语言编写的脚本,所述声明性查询语言通过对输入事件流的时间分析来支持分布式流处理。4.根据权利要求1所述的系统,还包括至少一个程序模块,所述至少一个程序模块包括流传输执行计划优化器,所述流传输执行计划优化器接收以声明性查询语言编写的已编译脚本,所述声明性查询语言具有接收用户定义的功能以消耗事件流的能力。5.根据权利要求1所述的系统,还包括至少一个程序模块,所述至少一个程序模块向事件流中的事件分配序列号以跟踪顶点的输入、输出和状态之间的依赖性。6.一种用于执行分布式流处理的方法...

【专利技术属性】
技术研发人员:周靖人钱正平P·扎巴克林伟
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

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

1