当前位置: 首页 > news >正文

Flink基础整理

文章目录

  • 前言
  • 1.Flink系统架构
  • 2.编程模型(API层次结构)
  • 3.DataSet和DataStream区别
  • 4.Flink的批流统一
  • 5.Flink的状态后端
  • 6.Flink有哪些状态类型
  • 7.Flink并行度


前言

提示:下面是根据网络或AI整理:


1.Flink系统架构

  • 用户在客户端提交作业(Job)到服务端。
  • 服务端为分布式的主从架构。
    • Dispatcher 服务负责提供 REST 接口来接收 Client 提交的 Job,运行 Web UI,并负责启动和派发 Job 给 JobManager。
    • Resource Manager 负责计算资源(TaskManager)的管理,其调度单位是 slots。
    • JobManager 负责整个集群的任务管理、资源管理、协调应用程序的分布执行,将任务调度到 TaskManager 执行、检查点(checkpoint)的创建等工作。
    • TaskManager(worker)负责 SubTask 的实际执行,提供一定数量的 Slots,Slots 数就是 TM 可以并发执行的task数。当服务端的 JobManager 接收到一个 Job 后,会按照各个算子的并发度将 Job 拆分成多个 SubTask,并分配到 TaskManager 的 Slot 上执行。
      在这里插入图片描述

2.编程模型(API层次结构)

在这里插入图片描述

  • 最底层提供了有状态流:可以自定义状态信息和处理逻辑,但是也需要你自己管理状态的生命周期,容错,一致性等问题。
  • 核心开发层:包括 DataStream API 和 DataSet API,它们提供了常见的数据转换,分组,聚合,窗口,状态等操作。这个层级的 api 适合大多数的流式和批式处理的场景。
  • 声明式 DSL 层:是以表为中心的声明式 DSL,其中表可能会动态变化(在表达流数据时)。Table API 提供了例如 select、project、join、group-by、aggregate 等操作
  • 结构化层:SQL API,它是最高层的 api,可以直接使用 SQL 语句进行数据处理,无需编写 Java 或 Scala 代码。这个层级的 api 适合需要快速响应业务需求,缩短上线周期,代码可移植性和可阅读性高,和自动调优的场景,但也最不灵活和最不具有表现力。

3.DataSet和DataStream区别

在这里插入图片描述

4.Flink的批流统一

概念: 批流统一是指Flink提供了一种统一的API和执行引擎,使得批处理(Batch Processing)和流处理(Stream Processing)可以使用相同的API进行编程,并且共享相同的执行计划和优化策略。这一特性简化了开发流程,减少了代码重复,同时提高了系统的灵活性和性能(一套代码处理流或批数据)。
体现在以下几个方面:

  • 统一的API:无论是处理有限的数据集(批处理)还是无限的数据流(流处理),开发者都可以使用同一套API进行编程。
  • 统一的执行引擎:Flink的执行引擎能够自动识别输入数据是批数据还是流数据,并选择合适的执行模式。
  • 统一的状态
http://www.xdnf.cn/news/274735.html

相关文章:

  • 实验三 触发器及基本时序电路
  • js逆向绕过指纹识别
  • 打电话玩手机检测数据集VOC+YOLO格式8061张1类别
  • PostgreSQL 的 pg_stat_file 函数
  • 【MySQL数据库】用户管理
  • AUTOSAR_BSW_从入门到精通学习笔记系列_EcuM
  • 网络Tips20-003
  • 【学习笔记】深度学习:典型应用
  • ActiveMQ 与其他 MQ 的对比分析:Kafka/RocketMQ 的选型参考(二)
  • LeetCode刷题链表
  • 自监督学习(Self-supervised Learning)李宏毅
  • FiLo++的框架图介绍
  • Oracle OCP认证考试考点详解083系列06
  • JavaWeb:SpringBootWeb增删改查案例
  • terraform resource创建了5台阿里云ecs,如要使用terraform删除其中一台主机,如何删除?
  • 【2025软考高级架构师】——2024年05月份真题与解析
  • 工程师 - 小米汽车尾部主动扩散器
  • 交互式智能体面临问题:回声陷阱,RL滚动塑造因素,感知推理的奖励信号
  • Docker 使用与部署(超详细)
  • 365打卡第R6周: LSTM实现糖尿病探索与预测
  • n8n 快速入门2:构建自动化工作流
  • LangChain4j +DeepSeek大模型应用开发——9 优化硅谷小鹿
  • FreeSwitch Windows安装
  • docker部署Open WebUI下载速度慢解决方法
  • Redis事务
  • Ubuntu 安装 Docker
  • 二叉搜索树的最近祖先(递归遍历)
  • 【神经网络与深度学习】生成模型-单位高斯分布 Generating Models-unit Gaussian distribution
  • Git 远程操作
  • SpringMVC详解