Flink 简介

Flink:

大数据流式处理框架:Flink 和 spark streaming

Flink 延迟更小,实时性更好

低延迟、高吞吐,准确性高

 

API:

source 

transform

sink

 

一、Flink简介:

Flink(德语:快速、灵巧)

Flink 是一个框架,分布式处理引擎,对有界和无界数据流进行状态计算

2015年至今,快速增长,在国内大公司应用广泛

 

二、为什么用Flink:

1) 流数据,更真实的反映我们的生活

2)传统的数据架构是是基于有限的数据集

3)目标:低延迟、高吞吐、结果的准确性和良好的容错性

 

场景:电商、物联网(传感器)、广告投放、实时报警、实时异常监测、实时结算和推送

Flink 可以做到,毫秒级别的延迟

 

银行家时间(下午三点下班),随着技术的发展,比如转账之前需要24小时,现在可以实时到账。

 

三、传统数据处理架构

事物处理(实时)

分析处理(离线)

有状态的流式处理

1)第一代,分布式流式框架

000000000------>应用逻辑------>***********

                             |

                        local state

                             |

            remote storage (checkpoint)

 高并发、高吞吐,分布式计算下,一致性不好

 

2)流处理第二代架构(lambda 架构,两套系统,同时保证低延迟和结果的准确性)

批处理 :批处理,一致性没问题,实时性差一些

流处理:实时性好,但是一致性差

 

3)第三代架构(Flink)

Storm:低延迟

Spark streaming (微批处理的架构):高吞吐、高压力下正确性好,但延迟稍高

Flink: 结合上面的架构的所有的优点

struct  streaming...

 

四、Flink的主要特点:

1)事件驱动,来一个处理一个(数据管道,Kafka)

事件----> Event log(kafka) ----->Application state ----> Event log(kafka) -----> other appliation 

                                                       (持久化存储)

 

2)基于流的世界观:流

离线数据:有界流

实时数据:无界流

相对的,spark 中一切都是批

 

3)分层API

越顶层越抽象,使用方便、含义简明

越底层越具体,使用灵活、能力丰富

最上层:SQL、TABLE API

中间层:DataStream API

最底层:ProcessFunction

 

其他特点

支持事件时间和处理时间,不同的时间语义

精确一次的状态一致性(exactly-once)

低延迟,每秒数百万事件,毫秒延迟

和众多存储系统链接,HDFS等

高可用,动态扩展,实现7*24H全天运行

 

对比sparkstreaming 和 FLINK:

1)流和微批的区别

2)sparkstreaming,秒级延迟,需要等批处理

3)数据模型:

spark 采用RDD模型,spark streaming 的Dstream实际就是一组组小批数据的RDD集合

flink基本的数据模型是数据流,以及事件序列

4)运行架构:

spark是批计算,将DAG划分为不同的stage,一个完成后才可以进行下一个

flink是标准的流执行模式,一个节点处理完,马上发向下一个节点进行处理即可

 

 

 

 

 

 

 

 

 

 

 

 

 

           

   

 

posted @ 2021-04-23 14:50  静悟生慧  阅读(2073)  评论(0编辑  收藏  举报