Flink流批一体计算(4):Flink功能模块

news/2024/12/2 18:43:10/

目录

Flink功能架构

Flink输入输出


Flink功能架构

Flink是分层架构的分布式计算引擎,每层的实现依赖下层提供的服务,同时提供抽象的接口和服务供上层使用。

Flink 架构可以分为4层,包括Deploy部署层、Core核心层、API层和Library层

  1. 部署层:主要涉及Flink的部署模式。Flink支持多种部署模式,如本地(local)、集群(Standalone/YARN)、云服务器(GCE/EC2)。

可以启动单个JVM,让Flink以local模式运行Flink,也可以以Standalone 集群模式运行,同时也支持Flink ON YARN,Flink应用直接提交到YARN上面运行,Flink还可以运行在GCE(谷歌云服务)和EC2(亚马逊云服务)

  1. 核心层:提供了支持Flink计算的全部核心实现,如支持分布式流式处理、JobGraph到ExecutionGraph的映射、调度等,为上层API提供基础服务。

Core层(Runtime)在Runtime之上提供了两套核心的API,DataStream API(流处理)和DataSet API(批处理)

有状态的流式处理层:最底层的抽象仅仅提供有状态的数据流,它通过处理函数嵌入数据流API(DataStream API)中。用户可以通过它自由处理单流或者多流,并保持一致性和容错性。同时,用户可以进行注册事件时间和处理时间的回调,以实现复杂的计算逻辑

  1. API层:主要实现了面向无界Stream的流式处理和面向Batch的批量处理API,其中,面向流式处理对应DataStream API,面向批量处理对应DataSet API。
  2. 库层:该层也可以称为“应用框架层”,它是根据API层的划分,在API层之上构建的满足特定应用的计算实现框架,也分别对应于面向流式处理和面向批量处理两类。面向流式处理支持复杂事件处理(Complex Event Processing,CEP)、基于SQL-like的操作(基于Table的关系操作);面向批量处理支持FlinkML(机器学习库)、Gelly(图处理)。

SQL 既可以运行在DataStreamAPI上,又可以运行在DataSet API上。

Flink输入输出

Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。

Flink作为大数据生态的一员,除了本身外,可以很好地与生态中的其他组件进行结合使用,大的概况方面来讲,就有输入方面和输出方面。

如下图左右两侧框图,其中绿色背景是流处理方式的场景,蓝色背景是批处理方式的场景。

左侧输入Connectors

流处理方式:包含Kafka(消息队列)、AWS kinesis(实时数据流服务)、RabbitMQ(消息队列)、NIFI(数据管道)、Twitter(API)

批处理方式:包含HDFS(分布式文件系统)、HBase(分布式列式数据库)、Amazon S3(文件系统)、 MapR FS(文件系统)、ALLuxio(基于内存分布式文件系统)

右侧输出Connectors

流处理方式:包含Kafka(消息队列)、AWS kinesis(实时数据流服务)、RabbitMQ(消息队列)、NIFI(数据管道)、Cassandra(NOSQL数据库)、ElasticSearch(全文检索)、HDFS rolling file(滚动文件)

批处理方式:包含HBase(分布式列式数据库)、HDFS(分布式文件系统)


http://www.ppmy.cn/news/498782.html

相关文章

Android系统架构

一、Android系统架构 Android 是谷歌开发的一款基于 Linux 内核的操作系统。系统架构分为五层,从下到上依次是Linux内核层、硬件抽象层、系统运行库层、应用框架层和应用层。 1、应用层(System Apps) 系统内置的应用程序以及非系统级的应用程…

fl studio for window 21.0.3.3517 官方中文版免费下载及新功能介绍

FL Studio 21 for Mac官方中文版免费下载是一款功能强大的音乐编曲制作软件。尽管你可能没有接触过音乐制作,也能通过fl Studio 21,撰写,整理,录制,编辑,混合,掌握和制作出专业的品质音乐。 fl…

【Java算法题】剑指offer_算法之02动态规划

对于动态规划问题,我将拆解为如下五步曲,这五步都搞清楚了,才能说把动态规划真的掌握了! 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 JZ42 连续子数组的…

Echarts中国地图china.json

自从升级echarts5以后就不能用依赖包里面的↓ import china from "echarts/map/json/china.json"; 直接运行npm run dev会提示报错信息:To install them, you can run: npm install --save echarts echarts/map/json/china.json 我这里把json文本复制出来…

R3-3200G和R3-2200G的区别

AMD锐龙R3-3200G基于12纳米工艺的Zen架构设计,并没有采用全新的7纳米Zen2架构,接口类型为AM4,拥有4核4线程设计 选R3-3200G和R3-2200G 这些点很重要!看完你就知道了 https://diannao.jd.com/list.html? 基础频率为3.6GHz,加速频率…

R3 2200G搭配显卡推荐

R3 2200配什么显卡好呢?伴随着八代APU处理器的发布,想必今年八代处理器会成为主流装机。通过之前的相关评测得知,这款AMD锐龙3 2200G基本上将会取代R3-1200,全新的处理器虽说采用相同的插槽接口,但性能各方面均大幅度提…

Linux查看硬盘信息方法总结

转载请注明文章出处:https://tlanyan.me/linux-list-disk-info-summary 本文简要总结Linux查看硬盘信息的方法,基本涵盖普通用户、系统管理员所能接触到的各种命令。 lsblk lsblk命令用来查看接入到系统中的块设备,默认输出分区、大小、挂载…

基于Echarts+HTML5可视化数据大屏展示—智慧社区内网对比平台

机缘 从初到现在已经学习快六年了,在高中的时候就很喜欢玩电脑,但却不知道电脑到底用来干嘛只知道计算机可以查阅资料 电脑游戏 电影 shopping等等,最初接触编程是因为我的表哥,我表哥学的计算机专业,高中是半个月放假一次,每次玩手机的时候看他朋友圈都里发那些看不…