Flink系列一(Flink理论基础)-1 Flink简介

本文介绍了Apache Flink这一先进的流处理框架,包括其应用场景、特点及与Spark Streaming的对比。Flink支持低延迟处理、精确的状态一致性保障,并提供丰富的API层级供开发者选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 Flink简介

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

1.1 Flink的应用场景

1.1.1 为什么选择Flink

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

使用Flink的目标是: 低延迟,高吞吐,结果的准确性和良好的容错性。

1.1.2 应用场景

但不限于以上场景。

1.2 流式处理

1.2.1 数据处理架构

1)传统数据处理架构

1.1)事务处理

1.2)分析处理

将数据从业务数据库复制到数据仓库,再进行分析和查询。关键是有ETL过程。离线处理

2)流式处理

有状态的流式处理。

1.2.2 流处理的演变

1) lambda架构

逐渐再被淘汰!

2)Flink

Storm: 典型的第一代流处理架构。

Lambda流处理架构:第二代。

Spark Streaming:依然是将流数据转成微小的批次进行处理。

Flink:解决了上面三个架构中的所有问题。第三代。

1.2.3 Flink的特点

1)事件驱动

2)基于流的世界观

在Flink的世界观中,一切都是由流组成的,离线数据是有界的流;实时数据是一个没有界限的流:这就是有界流无界流

3)分层API

  • 越顶层越抽象,表达含义越简明,使用越方便;
  • 越底层越具体,表达能力越丰富,使用越灵活。

其中,最上层仍然在完善中,阿里推出了blink等。

4)其它特点

  • 支持事件时间(event-time)和处理时间(processing-time)语义;
  • 精确一次(exactly-once)的状态一致性保证;
  • 低延迟,每秒处理数百万个事件,毫秒级延迟;
  • 与众多常用寸尺系统的连接;
  • 高可用,动态扩展,实现7*24小时全天候运行。

5)Flink与Spark Streaming的对比

5.1)真正的流(stream)和微批(micro-batching)的区别

5.2)数据模型

  • spark采用RDD模型,spark streaming的DStream实际上也就是一组组小批数据RDD的集合;
  • flink基本数据模型是数据流,以及事件(Event)序列。

5.3)运行时架构

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值