这是我参与「第四届青训营 」笔记创作活动的第3天
今天的文章内容是对于大数据第二节课《流/批/OLAP一体的Flink引擎介绍》的其中第一大部分,Flink概述的整理,希望大家看完之后可以对于Flink有一个比较清晰的概念,这次主要分为三个部分吧
Flink概述
Apache Flink的诞生背景
什么是大数据
大数据(Big Data):指无法在一定时间内用常规软件对其进行获取、存储、管理和处理的数据集合,下图是大数据的一些特点
海量化:他的量非常非常大
多样化:大数据的数据源和数据种类,是非常多样的,比如,它不仅仅有格式化的数据,还有很多半结构的数据,以及结构化的数据
快速化:目前随着互联网信息化时代的发展,数据产生的速度越来越快,信息量也越来越大
价值化:数据价值密度非常低,但是数据还是具有很大价值
为什么Apache Flink会脱颖而出
大数据计算架构发展历史
从传统数仓->Hadoop(分布式、Map-Reduce)->Spark(批处理、流处理、SQL高阶API、内存迭代计算)->Flink(流计算、实时、流批一体)
为什么Flink
主要是因为业内对于数据的实施性有了更高的要求,而Flink他是一个流式计算框架,会带来一个更好的性能,并且他在流和批这一块都能支持SQL的使用,所以Flink慢慢取代了别的框架,业内现在也用Flink来进行处理
为什么需要流式计算
因为大数据的实时性带来的价值更大
如:监控场景:如果能实时发现业务系统的健康状态,就能提前避免业务故障
金融风控:如果实时监测出异常交易的行为,就能及时阻断风险的发生
实施推荐:比如在抖音,如果可以根据用户的行为数据发掘用户的兴趣,偏好,就能向用用户推荐更感兴趣的内容
大数据实时性的需求,带来了大数据架构模式的变化
从批式计算->流式计算
批式计算的特点
- 离线计算,非实时
- 静态数据集
- 小时/天等周期性计算
流式计算特点
- 实时计算,快速,低延迟
- 无限流,动态,无边界
- 7*24h持续运行
- 流批一体 业内目前对大数据的处理还是以批示计算为主,简单来说,其实就是等数据都传过来了,再进行处理。而流式计算,是实时的。
流式计算引擎对比
流式框架对比:
| storm | Spark Streaming | Flink | |
|---|---|---|---|
| Steaming Model | Native | mini-batch | Native |
| 一致性保证 | At least/Most Once | Exactly-once | Exactly-once |
| 延误 | 低延误(毫秒级) | 延迟较高(秒级) | 低延误(毫秒级) |
| 吞吐 | low | high | high |
| 容错 | ACK | RDD Based Checkpoint | Checkpoint(Chandy-Lamport) |
| StateFul | No | yes(Dstream) | yes(Operator) |
| SQL支持 | No | Yes | Yes |