`

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技术预研是当前大数据处理领域中最热门的技术之一,其作为 Apache 项目,已经被广泛应用于各个行业。今天,我们将对 Flink 技术进行预研,并对比其他计算引擎,了解 ...

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

    Flink架构设计剖析和流State讲解 Flink架构设计剖析和流State是大数据处理中非常重要的概念,本文将从Flink架构设计的角度,对流State进行剖析,并通过实践示例,展示Flink State的应用。 Flink架构设计剖析 ...

    flink架构设计与专业术语

    Flink架构设计与专业术语是大数据处理领域中的关键知识点,主要关注Apache Flink这一流处理框架的内部结构、工作原理以及其特有的技术术语。Apache Flink是一个开源的流处理和批处理系统,它以实时计算为核心,具备...

    Flink架构原理,入门操作

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

    Flink流批一体的技术架构介绍.pptx

    Flink流批一体的技术架构介绍主要围绕Flink架构的技术创新,变革未来流批一体的技术架构,解决方案中涵盖了流批一体的入口、流批一体的大规模实践、总结和展望等内容。 技术创新是Flink流批一体的技术架构的核心,...

    Flink架构

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

    Flink技术原理

    ### 二、Flink架构 Flink的架构主要包括JobManager、TaskManager和Client三部分: 1. **JobManager**:作为集群的协调者,负责作业管理和调度,包括接收并执行用户提交的作业,以及在出现故障时恢复任务。 2. **...

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

    2. **Flink架构简介**: Flink的核心是其分布式Streaming Dataflow模型。它支持在单个JVM或分布式集群(如Standalone、YARN、Kubernetes)上部署。在数据处理层面,Flink通过DataStream API和DataSet API来抽象数据...

    flink-1.16.2下载安装包,flink-1.16.2-bin-scala-2.12.zip

    1. **Flink架构** - **分布式流处理引擎**:Flink的核心是分布式流处理引擎,它可以处理无界和有界数据流。 - **DataStream API和DataSet API**:DataStream API用于实时流处理,而DataSet API用于批处理。 - **...

    flink入门到精通视频教程

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

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

    大数据实时计算Flink SQL架构介绍 大数据实时计算Flink SQL架构介绍是阿里巴巴Blink团队开发的一款基于Apache Flink的实时计算引擎。该架构介绍了Flink SQL的基本概念、核心功能、优化技术和应用场景。 Flink SQL...

    flink道路监控系统实战项目

    2. **Flink架构**:包括JobManager、TaskManager、DataStream API和批处理API(Batch API)等组成部分,以及它们如何协同工作。 3. **流处理模型**:介绍Flink的时间窗口、事件时间、处理时间等概念,以及如何处理...

    (全)Flink Forward China 2018 PPT

    【文件名称列表】虽然没有具体的文件名,但可以推测每个PPT可能对应一个特定的主题,如Flink架构解析、实时数据处理、状态管理、容错机制、流与批处理一体化、Flink与其他大数据生态系统的集成,以及实际项目中的...

    Hudi on Flink在顺丰的实践应用.pdf

    Hudi on Flink架构设计主要包括三个层次: * 数据存储层:Hudi提供了一个统一的数据存储层,用于存储和管理大量数据。 * 数据处理层:Flink提供了一个分布式处理层,用于处理和分析数据。 * 应用层:应用层位于数据...

    Flink,Storm,Spark Streaming三种流框架的对比分析

    Flink架构及特性分析 Flink是一个原生的流处理系统,提供高级的API。Flink也提供API来像Spark一样进行批处理,但两者处理的基础是完全不同的。Flink把批处理当作流处理中的一种特殊情况。在Flink中,所有的数据都...

    Flink教程收集

    2. **Flink架构**:解释Flink的JobManager、TaskManager、Source/Sink等组件,以及它们之间的交互。 3. **数据源与数据转换**:介绍如何定义数据源,如Kafka、Socket或自定义数据源,以及如何通过各种转换操作(如...

    Flink架构、原理与部署测试

    在Flink的架构中,其软件栈分为多层,包括运行时层、DataStream API和DataSet API。运行时层接收JobGraph,这是一个并行数据流图,由Task和data stream组成。DataStream API和DataSet API分别用于流处理和批处理,...

    flink-1.10.0-bin-scala_2.11.tgz

    1. **Flink架构**:Flink的核心架构包括DataStream API和DataSet API,用于处理无界和有界数据流。DataStream API用于实时流处理,而DataSet API则适用于批量处理。Flink还采用了一种叫做Event Time的概念,确保在...

Global site tag (gtag.js) - Google Analytics