第12章 运用Apache Flink

在本章,我们将向读者介绍实时处理的候选方案Apache Flink。这里大多数数据源在跟踪和接收方面附件都保持不变,但在计算方法改为Flink、集成和拓扑时,会非常不同。通过学习本章的内容,读者将理解并实现端到端的Flink过程,以便在实时流数据上解析、转换和聚合计算。

本章主要包括以下内容

  • Flink体系结构和执行引擎
  • Flink的基本组件和进程
  • 将源流集成到Flink
  • Flink处理和计算
  • Flink持久化
  • Flink CEP
  • Gelly
  • 小试牛刀
  • 源到sink:Flink的执行
  • 在Flink上运行Storm拓扑

Flink是一个分布式流和批数据处理平台。Flink的内核是一个流处理数据流引擎。Flink基于Kappa架构——Kappa架构是Jay Kreps于2014年提出的,该架构弥补了Lambda架构的缺陷。因此,在讨论Flink的细节之前,让我们先了解一下Flink的基础:Kappa体系结构。Kappa体系结构被设计使用单个数据流来实现实时数据处理和连续数据再处理。与Lambda架构有关的两个主要问题是:在同一源数据上维护两个不同的代码库,即实时分析和批分析代码库;事件的再处理需要更改代码,如图12-1所示,代码更改并不容易维护。

..\19-1078 二校改图传回(后)\12-1.tif

图12-1

因此,在Kappa体系结构中,流数据包含所有内容。当发生故障和进行事件再处理时,将从再处理事件的ETL工具中开始一个新的进程,并使用另一个流将其反馈到服务层。事件的批具有可定义的开始和结束,并且流是无限的。换句话说,批是有界的,流是无界的。因此,批是流的一个子集,可以使用流处理进行处理,如图12-2所示。 ...

Get 实时数据处理和分析指南 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.