`

Flink 架构

阅读更多

Flink是一个分布式的、有状态的计算框架,它可以处理无限的和有限的数据流。Flink原本设计的就是可以在所有的通常的集群环境,在内存中进行任意规模的计算。

 

一、处理无边界的和有边界的数据流

任何种类的数据都是以事件流的形式产生的,比如信用卡交易、传感器测量、机器日志或者用户在网站或者移动应用上的交互等,所有的这些数据都是以流的形式产生的。

 

数据可以以有边界的或者无边界的流的形式被处理。

 

 1、无边界的数据流

无边界的数据流有一个开始但是没有定义好的结束。只要数据在生产并且在提供,那么它就不会中断。

无边界的数据流必须被持续地处理,也就是说在flink接收到数据以后必须迅速处理。因为数据是无边界的,并且在任何时候它都不是完整的,所以,不可能等待所有的数据都到达。处理无边界的数据,通常要求事件以特定的顺序接收,比如事件发生的顺序,以便可以对结果的完整性进行推理。

 

2、有边界的数据流

有边界的数据流有一个定义好的开始和结束。有边界的数据可以在接收到所有的数据以后才开始执行计算。在接收有边界的数据流时是不要求有序的,因为它总是可以被排序的。有边界的数据流处理也通常被称为批处理。

 

 

 

Apache Flink 擅长处理有边界的和无边界的数据集。精确的时间和状态的控制让Flink可以运行无边界流的任意类型应用程序。有边界的流由内部的算法和专门为固定大小数据集设计的数据结构来处理,这种设计为优秀的性能做出来让步。

 

你可以探索基于Flink的用例来说服自己。

 

 

二、在任意地方部署应用

Apache Flink是分布式的系统,并且需要计算自言来执行应用。Flink与常用的集群管理系统天然的兼容,比如Hadoop YARN, Apache Mesos, 以及Kubernetes,但是它也可以作为一个独立的集群运行。

 

Flink设计本身就使其能够与前面提到的资源管理器非常好的工作。这是通过资源管理特定的部署部署模式实现的,这种模式允许Flink以其管用的方式与每一个资源管理器交互。

 

当部署Flink应用的时候,Flink根据应用配置的并发自动的识别需要的资源,并且向资源管理器申请资源。假如某个容器失败,那么Flink则会请求新的资源来替代失败的容器。所有的提交或者控制应用都是通过REST调用。这简化了Flink在多种环境中的集成。

 

三、运行任意规模的应用

Flink本身设计就是要运行任意规模的有状态的流式应用。应用是并行的运行数千个任务,这些任务是分布式的并且在集群中并发地执行。因此,一个应用几乎能够使用无限数量的CPU、内存(main memory)、磁盘以及网络IO。此外,Flink也可以很轻易的维护非常大量的应用状态。它的异步和增量的检查点(checkpointing)在保证仅仅一次(exactly-once)状态一致性的同时,也确保了对运行延迟最小的影响。

 

有用户上报了他们生产环境中的令人印象深刻的Flink应用程序的大规模数量,比如:

 

  • 每天运行几万亿的事件;
  • 保存了几TB的状态信息;
  • 同时运行了成千上万的内核;

 

四、利用内存性能

 

有状态的Flink应用是充分利用本地的状态访问。任务的状态总是保存在内存中的,如果状态的大小超过了可用的内存,则以一个可高效访问的数据结构存储在磁盘上。因此,任务通过访问本地的(通常是内存中的)状态信息来执行计算,这使得计算延时非常低。Flink通过异步的保存本地状态到稳定的存储中来防止失败的情况发生,通过这种方式来保证exactly-once。

 

 

参考文档:http://flink.apache.org/flink-architecture.html

 

Flink简介请查看:Apache Flink 概览 - 有状态的流式计算

 

 

 打个广告,个人网站,查看全站的最新热点,请访问:领航榜单

 

 

 

1
0
分享到:
评论

相关推荐

    Flink技术预研,各计算引擎对比 flink架构

    Flink技术预研,各计算引擎对比。flink架构

    flink架构设计与专业术语

    flink架构设计与专业术语

    Flink架构原理,入门操作

    Flink架构原理、Flink应用场景、Flink特点优势、Flink分布式集群企业级部署、Flink任务提交、高可用、并行度设置及参数配置、常用API、Flink窗口、Flink状态、FlinkTable、FlinkSQL、Flink复杂时间等一系列Flink热点...

    Flink架构设计剖析,流State的讲解和练习实战

    Flink架构设计剖析,流State的讲解和练习实战

    Flink架构

    1 Flink 任务提交流程 TaskManager是一个独立的jvm进程。 每个task slot表示TaskManager拥有资源的一个固定大小的子集。假如一个TaskManager有三个slot,那么它会将其管理的内存分成三份给各个slot。 slot就是运行在...

    flink入门到精通视频教程

    第二章 Flink架构体系 01.Flink中重要角色 02.无界数据流与有界数据流 03.Flink数据流编程模型 04.Libraries支持 第三章 Flink集群搭建 01.环境准备工作 02.local模式 03.Standalone集群模式 04.Standalone-HA集群...

    Flink基础讲义.docx

    第二章 Flink架构体系 8 第三章 Flink集群搭建 12 第四章 DataSet开发 48 第五章 DataStream开发 111 第六章 Window 157 第七章 EventTime-Watermark(难点) 175 第八章 Flink的状态管理 200 第九章 Flink的容错 226 ...

    Flink架构、原理与部署测试

    ApacheFlink能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用的功能。现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为它们所提供的SLA(Service-Level-Aggreement)是完全不...

    【完整版105讲】基于Flink流处理的动态实时亿级全端用户数据统计分析系统

    本套案例是完全基于真实的产品进行开发和讲解的,同时对架构进行全面的升级,采用了全新的Flink架构+Node.js+Vue.js等,完全符合目前企业级的使用标准。对于本套课程在企业级应用的问题,可以提供全面的指导。 ...

    Flink实用教程_预览版_v1.pdf

    第1 章Flink 架构与集群安装...............................................................................................................................- 1 - 1. 1 Flink 简介.............................

    大数据实时计算Flink SQL架构介绍.pptx

    大数据实时计算Flink SQL架构介绍.pptx

    一线大厂级Flink大数据高级编程与案例实操 Flink运行架构实战课程 全部一线技术

    ├─01-大数据之Flink框架 - Java.doc ├─01-大数据之Flink框架 - Scala.doc (2)\2.资料;目录中文件数:0个 (3)\3.代码;目录中文件数:2个 ├─flink-java-code.zip ├─flink-scala-code.zip (4)\4.视频;目录中文...

    Flink技术分析

    flink技术分析,在这里,我们解释Flink架构的重要方面,Apache Flink是什么 ,Apache Flink有哪些方面的特性,对flink的全面剖析

    【Flink篇04】Flink运行时架构1

    【Flink篇04】Flink运行时架构1

    Flink技术架构及最佳实践.pptx

    Flink技术架构及最佳实践.pptx

    flink基础教程-完整书签版-pdf

    作为新一代的开源流处理器,Flink是众多大数据处理框架中一颗冉冉升起的新星。它以同一种技术支持流处理和批处理...- 流处理架构相较于批处理架构的优势 - Flink中的时间概念 - Flink的检查点机制 - Flink的性能优势

    大数据技术之Flink教程

    第四章 Flink运行架构 第五章 Flink流处理API 第六章 Flink中的Window 第七章 时间语义与Watermark 第八章 ProcessFunction API(底层API) 第九章 状态编程与容错机制 第十章 Table API 与 SQL

    flink大厂实战经验.zip

    仅1年GitHub Star数翻倍,Apache Flink 做了什么? 4 Lyft基于Apache Flink的大规模准实时数据分析平台 15 日均处理万亿数据!Apache Flink在快手的应用实践与技术演进之路 26 bilibili实时平台的架构与实践 47 美团...

Global site tag (gtag.js) - Google Analytics