浅学Flink

1、简介


 1. Apache Flink就是近些年来在社区中比较活跃的分布式处理框架;Flink相对简单的编程模型加上其高吞吐、低延迟、高性能以及支持exactly-once语义的特性,让它在工业生产中较为出众。
 2. Flink 主页在其顶部展示了该项目的理念:“**Apache Flink 是为分布式、高性能、随时可用以及准确的流处理应用程序打造的开源流处理框架**” 。
 3. Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。
 4. Flink 被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算。


2、特性

1、支持高吞吐、 低延迟、 高性能的流处理
2、支持带有事件时间的窗口(Window) 操作
3、支持有状态计算的 Exactly-once 语义
4、支持高度灵活的窗口(Window) 操作, 支持基于 time、 count、 session,以及 data-driven 的窗口操作
5、支持具有 Backpressure 功能的持续流模型
6、支持基于轻量级分布式快照(Snapshot) 实现的容错
7、一个运行时同时支持 Batch on Streaming 处理和 Streaming 处理
8、Flink 在 JVM 内部实现了自己的内存管理
9、支持迭代计算
10、支持程序自动优化: 避免特定情况下 Shuffle、 排序等昂贵操作, 中间结果有必要进行缓存

3、Flink基石

Flink 之所以能这么流行,离不开它最重要的四个基石: Checkpoint、 State、 Time、Window。

首先是 Checkpoint 机制,这是 Flink 最重要的一个特性。 Flink 基于 Chandy-Lamport 算法实现了一个分布式的一致性的快照, 从而提供了一致性的语义。 Chandy-Lamport 算法实际上在 1985 年的时候已经被提出来, 但并没有被很广泛的应用,而 Flink 则把这个算法发扬光大了。Spark 最近在实现 Continue streaming, Continue streaming 的目的是为了降低它处理的延时,其也需要提供这种一致性的语义, 最终采用 Chandy-Lamport 这个算法, 说明 Chandy-Lamport 算法在业界得到了一定的肯定。

提供了一致性的语义之后, Flink 为了让用户在编程时能够更轻松、 更容易地去管理状态,还提供了一套非常简单明了的 State API, 包括里面的有 ValueState、 ListState、MapState,近期添加了 BroadcastState, 使用 State API 能够自动享受到这种一致性的语义。

除此之外,Flink 还实现了 Watermark 的机制,能够支持基于事件的时间的处理,或者说基于系统时间的处理, 能够容忍数据的延时、 容忍数据的迟到、 容忍乱序的数据。另外流计算中一般在对流数据进行操作之前都会先进行开窗, 即基于一个什么样的窗口上做这个计算。 Flink 提供了开箱即用的各种窗口, 比如滑动窗口、 滚动窗口、 会话窗口以及非常灵活的自定义的窗口。

添加链接描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值