欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

大数据学习-Flink(一、Flink流式处理概览)

时间:2023-05-01
文章目录

Flink 是什么为什么选择 Flink二、传统数据处理架构

1.事务处理2、分析处理 流处理的演变

1.有状态的流式处理2.lambda 架构3、Flink Flink 的主要特点

1.事件驱动(Event-driven)2.基于流的世界观3.分层API Flink和Spark Streaming


Flink 是什么

Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams.
Apache Flink 是一个 框架和分布式处理引擎,用于对无界和有界数据流进行状态计算。

为什么选择 Flink

流数据更真实地反映了我们的生活方式传统的数据架构是基于有限数据集的目标
1 、低延迟
2 、高吞吐
3 、结果的准确性和良好的容错性 二、传统数据处理架构 1.事务处理 2、分析处理

将数据从业务数据库复制到数仓,再进行分析和查询

流处理的演变 1.有状态的流式处理

使用本地内存中的状态代替了关系型数据库中存储的数据,及Local State使用checkpoint快照机制来实现容灾并发不够并且事件处理的准确性不能保证 2.lambda 架构

使用批处理和流处理两套系统整合来保证低延迟和结果准确批处理慢而准,流处理快但不准,二者在合并得到最终准确的数据使用两套系统开发和维护较为困难 3、Flink

低延迟,高吞吐,压力下保证数据的准确性操作简单表现力好 Flink 的主要特点 1.事件驱动(Event-driven) 2.基于流的世界观

在 Flink 的世界观中,一切都是由流组成的,离线数据是有界的流;实时数据是一个没有界限的流:这就是所谓的有界流和无界流
3.分层API

越顶层越抽象,表达含义越简明,使用越方便越底层越具体,表达能力越丰富,使用越灵活
SQL/Table API: Table API 是用于 Scala 和 Java 语言的查询 API,它可以用一种非常直观的方式来 组合使用选取、过滤、join 等关系型算子。Flink SQL 是基于 Apache Calcite 来实现的标准 SQL。这两种 API 中的查询对于 批(DataSet)和流(DataStream)的输入有相同的语义,也会产生同样的计算结果。

DataStream API:
Flink中的DataStream程序是对数据流进行转换的常规程序(例如,过滤,更新状态,定义窗口,聚合)。数据流的最初的源可以从各种来源(例如,消息队列,套接字流,文件)创建,并通过sink返回结果,例如可以将数据写入文件或标准输出。Flink程序以各种上下文运行,独立或嵌入其他程序中。执行可能发生在本地JVM或许多机器的集群上。ProcessFunction

ProcessFunction是一个低阶的流处理操作,它可以访问流处理程序的基础构建模块:

1.事件(event)(流元素)。
2.状态(state)(容错性,一致性,仅在keyed stream中)。
3.定时器(timers)(event time和processing time, 仅在keyed stream中)。

Flink和Spark Streaming

flink是流处理,spark streaming是微批处理,等待形成一批的时间是无可避免的延时数据模型 spark 采用 RDD 模型,spark streaming 的 DStream 实际上也就是一组 组小批数据 RDD 的集合flink 基本数据模型是数据流,以及事件(Event)序列

运行时架构 spark 是批计算,将 DAG 划分为不同的 stage,一个完成后才可以计算下一个flink 是标准的流执行模式,一个事件在一个节点处理完后可以直接发往下一个节点进行处理

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。