其他分享
首页 > 其他分享> > Flink概述

Flink概述

作者:互联网

Flink产生缘由

随着大数据时代的发展,海量数据和多种业务的实时处理需求激增,比如:

传统的批处理方式和早期的流式处理框架因其自身的局限性,难以在延迟性、吞吐量、容错能力,以及使用便捷性等方面满足业务日益苛刻的要求

在这种形势下,Flink 以其独特的天然 流式计算特性和更为先进的架构设计 ,极大地改善了以前的流式处理框架所存在的问题。

Flink定义

Apache Flink :是一个分布式流处理器,具有直观和富有表现力的 API,可实现有状态的流处理应用程序,它以容错的方式有效地大规模运行这些应用程序,还提供了有状态的计算,支持状态管理,支持强一致性的数据语义以及支持基于Event Time的WaterMark对延迟或乱序的数据进行处理等。

Flink官方地址:https://flink.apache.org/

Flink组件栈

Flink分层的组件栈如下图所示(每一层所包含的组件都提供了特定的抽象,用来服务于上层组件):

主要分为如下几层:

物理部署层

Flink 支持的部署模式:

Flink能够通过该层支持不同平台的部署,用户可以根据需要选择使用对应的部署模式。

Runtime核心层

API & Libraries层

扩展库

Flink 四大基石

如上图,Fink有四大基石,分别为:

Checkpoint

Checkpoint是Flink最重要的一个特性。

Flink基于 Chandy-Lamport 算法实现了一个分布式的一致性的快照,从而提供了一致性的语义。

Chandy-Lamport算法实际上在1985年的时候已经被提出来,但并没有被很广泛的应用,而Flink则把这个算法发扬光大了。

State

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

使用State API能够自动享受到这种一致性的语义。

Time

除此之外,Flink还实现了Watermark的机制,能够支持基于事件的时间(Time)的处理,能够容忍迟到/乱序的数据。

Window

另外流计算中一般在 对流数据进行操作之前 都会先进行开窗Window),即:基于一个什么样的窗口上做这个计算。

Flink提供了开箱即用的各种窗口,比如滑动窗口、滚动窗口、会话窗口以及非常灵活的自定义的窗口。

Flink 应用场景

Flink的应用场景主要在这三个方面:

事件驱动(Event-driven Applications)

事件驱动应用与传统应用的区别

 

标签:提供,Flink,支持,API,概述,流式,计算
来源: https://www.cnblogs.com/xfeiyun/p/16319850.html