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学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
5月前
|
分布式计算 API Apache
Dask与Apache Spark的对比
【8月更文挑战第10天】随着数据量激增,高效处理成为关键。本文对比了Python领域的两大工具——Dask与Apache Spark。Dask提供类似NumPy和Pandas的API,适用于中小规模数据;而Spark作为内存型处理引擎,擅长超大规模数据处理。我们通过代码实例展示了两者的使用方式,并分析了它们在性能、API及生态系统方面的异同。无论您追求易用性还是高性能,都能从中找到合适的选择。
147 4
|
8月前
|
存储 消息中间件 分布式计算
Spark Streaming
Spark Streaming
86 1
|
8月前
|
分布式计算 监控 大数据
【Spark Streaming】Spark Day10:Spark Streaming 学习笔记
【Spark Streaming】Spark Day10:Spark Streaming 学习笔记
86 0
|
8月前
|
消息中间件 分布式计算 Kafka
【Spark Streaming】Spark Day11:Spark Streaming 学习笔记
【Spark Streaming】Spark Day11:Spark Streaming 学习笔记
53 0
|
8月前
|
消息中间件 分布式计算 Kafka
Spark【Spark Streaming】
Spark【Spark Streaming】
|
消息中间件 分布式计算 网络协议
Spark-Streaming的学习使用
SparkStreaming Spark Streaming可以轻松构建可扩展的容错流应用程序。 便于使用 把之前学过的处理离线数据的算子直接拿来使用 容错 sparkStreaming可以保证数据被消费一次 保证不丢失,不重复消费数据。 集成
134 0
Spark-Streaming的学习使用
|
消息中间件 SQL 分布式计算
Apache Spark™ 3.0中全新的Structured Streaming UI
Spark 3.0中新的Structured Streaming UI会提供一些有用的信息和统计数据,以此来监视所有流作业,便于在开发调试过程中排除故障。同时,开发者还能够获得实时的监测数据,这能使生产流程更直观。
Apache Spark™ 3.0中全新的Structured Streaming UI
|
分布式计算 流计算 Spark
Spark Streaming 的saveAsTextFiles遇到的坑
使用sparkStreaming消费数据,并使用Dstream的 saveAsTextFile保存数据到hdfs中,通过使用这个方法,生成的文件夹存在问题, 代码例子如下:     resultRdd.
3306 0
|
分布式计算 Spark 流计算
Apache Spark 系列技术直播 - 从 Spark Streaming 到 Structured Streaming
本期分享主题:From Spark Streaming to Structured Streaming 视频地址:https://admin-yq.aliyun.com/admin/op/OssUpload PPT地址:https://yq.
1821 0
|
分布式计算 关系型数据库 MySQL

推荐镜像

更多