Streaming with Apache Training

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: Apache Flink流式传输本次培训主要专注在四个重要的概念:连续处理流数据,事件时间,有状态的流处理和状态快照。流处理流是数据天然的栖息地,无论是来自Web服务器的事件,来自证券交易所的交易,还是来自工厂车间的机器传感器读数,数据都是作为流的一部分创建的。

Apache Flink流式传输

本次培训主要专注在四个重要的概念:连续处理流数据,事件时间,有状态的流处理和状态快照。

流处理

流是数据天然的栖息地,无论是来自Web服务器的事件,来自证券交易所的交易,还是来自工厂车间的机器传感器读数,数据都是作为流的一部分创建的。但是当我们分析数据时,我们可以围绕有界或无界流组织我们的处理过程,我们选择的范式会产生生远的影响。

bounded-unbounded

批处理 是我们处理有界数据流时的工作范例。这种操作模式中我们可以选择在产生任何结果之前注入整个数据集,例如,对数据进行排序,计算全局统计信息或生成汇总所有输入的最终报告。

流处理 另一方面,流处理涉及无界数据流。从概念上来说,至少输入可能永远不会结束,因此我们被迫在数据抵达时进行连续处理。

在Flink中,应用程序由用户定义的算子转换的数据流组成。这些数据流形成有向图,这些图以一个或多个源开头,并以一个或多个接收器结束。

source-transform-sink-update

一个应用可能从流式源消费实时数据如消息队列或分布式日志,例如Apache Kafka或Kinesis。但是Flink也可以从很多数据源中获取有界的,历史的数据。类似的,Flink应用程序生成的结果流可以发送到各种系统,Flink中保存的状态可以通过REST API访问。

flink-application-sources-sinks

实时流处理

对于大多数流式应用而言,使用处理实时数据的相同代码重新处理历史数据并生成确定的,一致的结果是非常有价值的

同样关键的是注意时间触发的顺序,而不是事件被处理的顺序,以及能够推断一组事件何时完成。例如考虑电子商务交易或者金融交易中涉及的一系列事件。

这些对于实时流处理要求使用记录在数据流中的事件时间的时间戳,而不是使用处理数据的机器时间。

状态流处理

Flink的操作是有状态的。这意味着一个事件如何被处理取决于在此之前的事件所积累的影响。状态可能被用于一些简单的事情,例如计算每分钟显示在面板上的事件,或者用于一些复杂的事情,例如用于欺诈检测模型计算特征。

Flink应用程序在分布式集群上并行运行。给定运算符的各种并行实例将在单独的线程中独立执行,并且通常将在不同的机器上运行。

有状态运算符的并行实例集实际上是分片键值存储。每个并行实例负责处理特定键组的事件,并且这些键的状态保存在本地。

下图显示了作业图中前三个运算符的并行度为2的作业,终止于并行度为1的接收器。第三个运算符是有状态的,我们看到第二个和第三个运算符之间正在发生完全连接的网络洗牌。这样做是为了通过某个键对流进行分区,以便一起处理所有需要处理的事件。

parallel-job

状态始终在本地访问,这有助于Flink应用程序实现高吞吐量和低延迟。您可以选择在JVM堆上保持状态,或者它太大了,有效的组织在磁盘数据结构上。

local-state

强大的流处理

Flink能够通过状态快照和流重放的组合提供容错和精确一次语义。这些快照捕捉分布式管道的全部状态,将偏移记录到输入队列中,以及整个作业图中的状态,这是因为已经将数据摄取到该点。当发生故障时,源被倒带,状态恢复,并且恢复处理。如上所述,这些状态快照是异步捕获的,而不会妨碍正在进行的处理。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
3月前
|
分布式计算 API Apache
Dask与Apache Spark的对比
【8月更文挑战第10天】随着数据量激增,高效处理成为关键。本文对比了Python领域的两大工具——Dask与Apache Spark。Dask提供类似NumPy和Pandas的API,适用于中小规模数据;而Spark作为内存型处理引擎,擅长超大规模数据处理。我们通过代码实例展示了两者的使用方式,并分析了它们在性能、API及生态系统方面的异同。无论您追求易用性还是高性能,都能从中找到合适的选择。
101 4
|
6月前
|
存储 消息中间件 分布式计算
Spark Streaming
Spark Streaming
69 1
|
6月前
|
存储 SQL 分布式计算
Apache Paimon:Streaming Lakehouse is Coming
Apache Paimon:Streaming Lakehouse is Coming
247 57
|
6月前
|
SQL API 数据处理
The Next Generation of Apache Flink
本文整理自阿里云智能 Flink 分布式执行负责人、Apache Flink PMC 成员、Flink 2.0 Release Manager 宋辛童老师在 Flink Forward Asia 2023 主会场的分享。本次分享将介绍 Apache Flink 社区未来一年的主要技术方向及规划,以及 Flink 2.0 版本的筹备情况。
608 0
The Next Generation of Apache Flink
|
6月前
|
消息中间件 分布式计算 Kafka
【Spark Streaming】Spark Day11:Spark Streaming 学习笔记
【Spark Streaming】Spark Day11:Spark Streaming 学习笔记
47 0
|
6月前
|
分布式计算 监控 大数据
【Spark Streaming】Spark Day10:Spark Streaming 学习笔记
【Spark Streaming】Spark Day10:Spark Streaming 学习笔记
78 0
|
分布式计算 Apache Spark
《Building Robust ETL Pipelines with Apache Spark》电子版地址
Building Robust ETL Pipelines with Apache Spark
85 0
《Building Robust ETL Pipelines with Apache Spark》电子版地址
|
分布式计算 Apache Spark
《Apache Spark MLlib 2.xHow to Productionize your Machine Learning Models》电子版地址
Apache Spark MLlib 2.x:How to Productionize your Machine Learning Models
74 0
《Apache Spark MLlib 2.xHow to Productionize your Machine Learning Models》电子版地址
|
消息中间件 分布式计算 网络协议
Spark-Streaming的学习使用
SparkStreaming Spark Streaming可以轻松构建可扩展的容错流应用程序。 便于使用 把之前学过的处理离线数据的算子直接拿来使用 容错 sparkStreaming可以保证数据被消费一次 保证不丢失,不重复消费数据。 集成
125 0
Spark-Streaming的学习使用
|
分布式计算 流计算 Spark
Spark Streaming 的saveAsTextFiles遇到的坑
使用sparkStreaming消费数据,并使用Dstream的 saveAsTextFile保存数据到hdfs中,通过使用这个方法,生成的文件夹存在问题, 代码例子如下:     resultRdd.
3293 0

推荐镜像

更多
下一篇
无影云桌面