大规模流处理引擎概述
1. 引言
在当今大数据时代,用户与机器的连接不断增加,产生了海量的数据。这就要求计算架构和大规模数据处理机制进行范式转变。尽管 MapReduce 框架在批处理方面表现出色,但它并不适用于实时流处理任务。移动设备、定位服务、传感器以及实时网络监控等的普及,使得构建可扩展的并行架构来处理海量流数据变得至关重要。
流处理系统支持多种应用,这些应用中的数据从多个源异步推送到负责处理的服务器。流处理应用通常作为连续作业部署,从提交时开始运行,直到被取消。许多领域的应用,如电信、网络安全和大规模传感器网络,都需要对连续数据流进行在线处理,这就需要聚合多个节点的处理能力。与传统数据库系统不同,流处理引擎会即时处理元组,因为输入数据量过大,不适合持久存储,且需要快速提供结果。流处理应用的查询通常是连续且有状态的,一旦注册,就会开始处理事件,直到系统终止或查询被注销。查询通常会维护状态,如窗口聚合或局部变量,查询状态保存在执行查询的同一节点上。
2. 主要流处理系统介绍
2.1 Aurora
Aurora 是一个集中式流处理器,本质上是一个数据流系统,采用了常见的“盒子与箭头”范式。在 Aurora 中,流被建模为具有统一类型(模式)的元组的追加序列,每个元组都有一个时间戳,用于指定其在 Aurora 网络中的起源时间。Aurora 数据模型支持乱序数据到达,元组通过无环有向图的处理运算符流动,最终输出流呈现给应用程序。
Aurora Stream Query Algebra (SQuAl) 支持七种运算符,可分为两类:
- 顺序无关运算符 :
-
超级会员免费看
订阅专栏 解锁全文
2962

被折叠的 条评论
为什么被折叠?



