首页 > 其他分享 >Flink架构优势及应用场景

Flink架构优势及应用场景

时间:2022-10-09 18:05:58浏览次数:58  
标签:场景 架构 处理 Flink 实时 API 支持 计算

      相对于传统的离线计算会存在数据反馈不及时的问题,很难满足急需实时数据做决策的场景Flink是对有界数据和无界数据进行有状态计算的分布式引擎,它是纯流式处理模式。纯流式模式保证了Flink的低延迟,使其在诸多的实时计算引擎竞争中具有优势。

Apache Flink 是一个开源的、分布式、高性能、高可用的大数据处理引擎,支持实时流stream处理和批batch处理。可部署在各种集群环境,例如k8s、YARN、Mesos,对各种大小的数据规模进行快速计算。

一、Flink架构

Flink是分层架构的分布式计算引擎,每层的实现依赖下层提供的服务,同时提供抽象的接口和服务供上层使用。Flink 架构可以分为4层,包括Deploy部署层、Core核心层、API层和Library层。

Deploy 层∶该层主要涉及Flink的部署模式,Flink支持多种部署模式——本地、集群(Standalone/YARN)和云服务器(GCE/EC2)。

Core 层∶该层提供了支持Flink计算的全部核心实现,为API层提供基础服务。

API层∶该层主要实现了面向无界Stream的流处理和面向Batch的批处理API,其中流处理对应DataStream API,批处理对应DataSet API。

Library 层∶该层也被称为Flink应用框架层,根据API层的划分,在API层之上构建的满足特定应用的实现计算框架,也分别对应于面向流处理和面向批处理两类。面向流处理支持CEP(复杂事件处理)、基于SQL-like的操作(基于Table的关系操作);面向批处理支持FlinkML(机器学习库)、Gelly(图处理)、Table操作。

Flink 的底层是 Deploy,Flink 可以在 Local模式运行,也可以在 Cluster 集群(如 Standalone、YARN)模式运行,另外 Flink 还可以在 Cloud模式运行,如 GCE(谷歌云服务)和EC2(亚马逊云服务)。Flink的架构如图所示。

Flink架构优势及应用场景_flink

Deploy 的上层是Flink的核心(Core)部分Runtime,在Runtime之上提供了两套核心的 API∶DataStream API(流处理)和DataSet API(批处理)。在核心API之上又扩展了一些高阶的库和API,比如 CEP 流处理、Table API 和 SQL、FlinkML 机器学习库、Gelly 图计算。SQL 既可以运行在DataStreamAPI上,又可以运行在DataSet API上。

二、Flink的优势

Flink架构主要包含以下优点。

1.支持有状态计算的 Exactly-once 语义。状态是指 Flink 能够维护数据在时序上的聚类和聚合,同时它的checkpoint机制可以方便快捷地进行失败重试。

2.支持带有事件时间(event time)语义的流处理和窗口处理。事件时间的语义使流计算的结果更加精确,尤其在事件到达无序或延迟的情况下。

3.支持高度灵活的窗口(window)操作。支持基于time、count、session 和data-driven 的窗口操作,能很好地对现实环境中创建的数据进行建模。

4.支持轻量的容错处理(fault tolerance)。它使得系统既能保持高吞吐率又能保证exactly-once的一致性。通过轻量的state snapshots 实现。

5.支持高吞吐、低延迟、高性能的流处理。

6.支持savepoints机制。即可以将应用的运行状态保存下来,在升级应用或处理历史数据时能够做到无状态丢失和最小停机时间。

7.支持大规模的集群模式,支持多种运行模型,例如YARN、Mesos,

可运行在成千上万的节点上。

8.支持具有Backpressure功能的持续流模型。

9.Flink在JVM内部实现了自己的内存管理。

10.支持迭代计算。

11.支持程序自动优化。避免特定情况下 Shuffle、排序等昂贵操作,中间结果进行缓存。

三、Flink的应用场景

Flink主要应用于以下流式数据分析场景:

●实时ETL∶具有对数据灵活加工的能力,数据实时清洗、归并和结构化处理。对离线数据进行补充,并为数据实时传输提供可计算通道。

● 实时报表∶实时化采集、加工流式数据存储;

● 监控预警∶对系统和用户行为进行实时检测和分析,以便及时发现危险行为。

● 在线系统∶实时计算各类数据指标,并利用实时结果及时调整在线系统的相关策略,在各类内容投放、无线智能推送领域有大量的应用。


标签:场景,架构,处理,Flink,实时,API,支持,计算
From: https://blog.51cto.com/u_15735635/5740975

相关文章

  • Flink架构优势及应用场景
    相对于传统的离线计算会存在数据反馈不及时的问题,很难满足急需实时数据做决策的场景Flink是对有界数据和无界数据进行有状态计算的分布式引擎,它是纯流式处理模式。纯流式模......
  • 3-1 脚手架架构设计和技术方案设计全过程
    1.一周导读1.1标题脚手架需求分析和架构设计,核心流程开发1.2将收获什么架构设计和技术方案设计全过程脚手架执行核心流程和commander框架如何让Node项目支......
  • 物联网开发平台,覆盖各行业物联应用场景
    物联网时代的到来,对工作于现场的机器设备提出了新的要求,即可异地远程监控减少现场维护,同时远程连接的安全性要得到保证,特别是新冠疫情以来,远程服务的需求大大增多。将设备接......
  • SQL抽象语法树及改写场景应用
    1背景我们平时会写各种各样或简单或复杂的sql语句,提交后就会得到我们想要的结果集。比如sql语句,”select*fromt_userwhereuser_id>10;”,意在从表t_user中筛选出user......
  • 《分布式服务架构:原理、设计与实战》 免费电子版
    /*免责声明:全部内容都属于是段友分享,我只是属于整理。**/   /*  写在前边,个人觉得****弄一个积分下载,就是在自掘坟墓。表面上看起来是可以为个人赚积分,实际砍掉分享交......
  • ​大数据面试题——Flink面试进阶篇
    1FlinkJob的提交流程用户提交的FlinkJob会被转化成一个DAG任务运行,分别是:StreamGraph、JobGraph、ExecutionGraph,Flink中JobManager与TaskManager,JobManager与Client的交......
  • k8s 学习整体架构
     对于为什么要学习k8s,k8s 有什么用。 我用已经学过的知识来侧面的阐述。计算机的发展就是这样的,在没有操作系统出来之前,很多操作都是比较麻烦的,对资源的调度管理,等等。......
  • 中台架构的演变
     之前了解过一点中台相关的文章,但是作为还未毕业的本科生来说,仅仅是知道罢了,没有机会去践行,但是这并不耽误我产生兴趣去学习。说不一定以后还是会有机会呢。 本篇文章适......
  • 数据填报平台能满足什么样的业务场景?_光点科技
    无论你在哪个国家,无论你做什么,你每天都会处理各种信息和数据收集。我们收集数据的形式也在发生变化,比如注册和统计,这以一种奇妙的方式改变了我们的生活。1.校园学生信息收集......
  • SQL抽象语法树及改写场景应用
    1背景我们平时会写各种各样或简单或复杂的sql语句,提交后就会得到我们想要的结果集。比如sql语句,”select*fromt_userwhereuser_id>10;”,意在从表t_user中筛选出us......