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

news2024/11/19 10:18:48

目录

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.coloradmin.cn/o/669793.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM的宠物领养系统的设计与实现

1.引言 动物作为人类的宠物已经有几千年的历史了,尤其是猫和狗因其天性被人类所喜爱和推崇,好多的成语故事、俗语等都及它们有关。但是,近几年来由于生活节奏的加快,人们的压力增大,没有时间和空间去照顾宠物&#xf…

ProGuard 进阶系列(三) Java 类文件解析

书接上文,当我们从用户的配置文件中读取到所有的配置信息后,下一步便是将配置中的指定的类文件进行读取,构建需要混淆的 Java 类文件的语法树。在阅读类文件之前,先来看一下输入输出参数中的内容,我使用的是一个 Andro…

大一下暑期计划 + 2023字节青训营预告直播

目录 🌼前言 🌹后端学习方法 🌳1,层次 🌳2,体系 🌳3,算法和数据结构 🌳4,总结 🌹前端学习方法 🌳基础 🌹求职中如…

如何在Microsoft Excel中使用LEN函数

如果你曾经想尝试查找一行文本中的字符数,你可以使用Microsoft Excel来查找,这要归功于LEN函数。以下是如何使用它。 一、什么是 LEN 函数 LEN函数是一个简单的计算函数,用于计算给定文本字符串中的所有字符,包括数字、字母、特…

【数据库课设】图书馆资源管理系统 源码+流程图+结构设计(借还图书 逾期罚款 图书管理 读者管理 信息查询)python实现

文章目录 一 实现功能(1)管理员功能(2)读者功能 二 数据流图三 概念结构设计四 文件目录五 源码:main.py六 运行截图 一 实现功能 (1)管理员功能 一个管理员编号对应一个密码,且需…

redis—安装以及可视化

前言 redis 是一种非关系型数据库,什么是非关系型数据库,之前我们在mysql专栏 也有提到过,这边就不再过多的赘述,忘记了的小伙伴可以再次阅读这篇文章 终于明白了数据库的【关系型】与【非关系型】 其实这还是挺重要的&#xff…

ruoyi+vue回显数字的问题,解决方案

在项目中用ruoyi框架和前端vue进行开发, 需求是在前端生成下拉框,下拉框中的内容需要调用后端接口进行数据返回, 现在新增的时候,数据已经返回了,但是再修改的时候,进行回显数据导致前端列表中展示出来的…

城市排水监测系统为城市排水防涝提质增效

城市化进程中,城市排水系统成为城市基础设施建设的重要组成部分。然而,随着气候变化和城市建设规模的扩大,极端天气和内涝风险不断增加,城市的排水系统面临巨大挑战。因此,建立一套智能化城市排水监测系统,…

【python】一些常用的pandas技巧

有了gpt之后,确实很多代码都可以让gpt给改错。嘎嘎香 merge多个dateframe https://stackoverflow.com/questions/44327999/how-to-merge-multiple-dataframes data_net [a,b,c,d] net_merged reduce(lambda left,right: pd.merge(left,right,on[key column],ho…

小程序安全指南:保护用户数据的最佳实践

第一章:引言 近年来,小程序已成为移动应用开发的重要组成部分。它们为用户提供了方便的功能和个性化的体验,然而,与此同时,小程序安全问题也引起了广泛的关注。保护用户数据是开发者应该高度重视的问题。在本指南中&a…

JavaScript ES11新特性

文章目录 导文可选链操作符(Optional Chaining Operator)空值合并操作符(Nullish Coalescing Operator)动态 import() 函数BigInt 类型Promise.allSettled() 导文 JavaScript ES11,也被称为ES2020,引入了一…

经纬度、时差知识整理(理解与应用)

经纬度是经度与纬度的合称组成一个坐标系统,称为地理坐标系统,它是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。初一的同学在学地理这门课的时候,一上来很快就会学到经纬度这个概念。…

PC市场寒冬,大众还需要PC吗?

PC市场寒冬,大众还需要PC吗? PC(个人电脑)市场从2016年智能手机兴起之时便进入下滑态势,到2020年疫情发生后,居家办公、在线教育等需求曾给PC市场带来连续六个季度的增长。⁴ 好景不长,进入202…

mybatisplus分页total总数为0

mybatisplus分页total总数为0 背景&#xff1a;最近初始化新项目时&#xff0c;使用mybatisplus分页功能发现 records 有记录&#xff0c;但是 total 总是为0&#xff0c;于是开启了一顿“知识寻求”之路SpringBoot版本 <parent><groupId>org.springframework.boo…

Makerbase CANable V2.0 固件升级或替换

第1部分 应用软件与固件 应用软件CANable V2.0CANable V1.0cangaroocandleLight/slcan(支持CAN FD)candleLight/slcan/cantactBUSMASTER V3.2.2candleLightcandleLight/pcan/cantactTSMastercandleLightcandleLight/pcan/cantactPCAN-Explorer 5、pcan view不支持pcancantacts…

一文带你全面理解 MySQL 中的常用函数

0️⃣前言 MySQL是一种常用的关系型数据库管理系统&#xff0c;它提供了许多内置函数来处理数据。本文将介绍MySQL中的各种常用函数&#xff0c;包括字符串函数、日期函数、数学函数、聚合函数等。 文章目录 0️⃣前言1️⃣字符串函数1.1CONCAT函数1.2SUBSTRING函数1.3REPLACE函…

建设一个网站需要多长时间?

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言网站建设的基本步骤…

【Leetcode60天带刷】day10栈与队列—— 232.用栈实现队列,225. 用队列实现栈

题目&#xff1a; 232. 用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移…

Spring Boot 集成 Redisson分布式锁

Redisson 是一种基于 Redis 的 Java 驻留集群的分布式对象和服务库&#xff0c;可以为我们提供丰富的分布式锁和线程安全集合的实现。在 Spring Boot 应用程序中使用 Redisson 可以方便地实现分布式应用程序的某些方面&#xff0c;例如分布式锁、分布式集合、分布式事件发布和订…

旷视研究院获 CVPR 2023 自动驾驶国际挑战赛 OpenLane Topology 赛道冠军

近日&#xff0c;为期三个月的 CVPR 2023 自动驾驶国际挑战赛比赛结果揭晓。旷视研究院在OpenLane Topology 赛道中击败 30 余支国内外队伍&#xff0c;夺得冠军。 自动驾驶技术已经渗透到人们的日常生活中&#xff0c;但是传统的感知方法仍不能满足大家对 L5 级自动驾驶的追逐…