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

建设功能网站价格兰州seo快速优化报价

建设功能网站价格,兰州seo快速优化报价,做导购网站赚钱吗,新闻网站跟贴怎么做Flink 架构概述 Apache Flink 是一个分布式流处理框架,支持 有状态(Stateful)计算,能够处理流式(Streaming)和批量(Batch)数据。Flink 采用主从架构,由 JobManager 和 T…

Flink 架构概述

Apache Flink 是一个分布式流处理框架,支持 有状态(Stateful)计算,能够处理流式(Streaming)和批量(Batch)数据。Flink 采用主从架构,由 JobManagerTaskManager 共同协作完成任务调度和计算。

1. Flink 主要组件

Flink 的核心架构主要由以下组件组成:

  1. Client(客户端)
    • 提交 Flink 任务 到集群
    • 解析用户代码并生成 JobGraph,提交给 JobManager
  2. JobManager(主节点)
    • 负责任务的 调度、资源分配、故障恢复
    • 主要由 Dispatcher、ResourceManager、JobMaster 组成
  3. TaskManager(工作节点)
    • 负责具体的 任务执行
    • 运行 TaskSlot,并处理 数据流、状态管理
  4. Storage(存储)
    • 任务的**检查点(Checkpoint)保存点(Savepoint)**存储在 HDFS、S3、RocksDB 等外部存储中
    • 任务的输入和输出数据存储在 Kafka、HDFS、MySQL、Elasticsearch 等

2. Flink 集群架构

Flink 采用 Master-Slave(主从)架构,主要包含 JobManager(主节点) 和 TaskManager(从节点)。

(1)Master 节点(JobManager)

JobManager 负责任务管理和调度,主要组件:

  • Dispatcher(调度器)
    • 负责接收 Client 提交的任务
    • 提供 REST API 接口,允许用户查询任务状态
  • ResourceManager(资源管理器)
    • 负责管理 Flink 计算资源
    • YARN / Kubernetes / Mesos 协作,动态分配 TaskManager
  • JobMaster(作业管理器)
    • 负责管理 Flink 任务的执行
    • 维护 ExecutionGraph(执行图)
    • 处理 故障恢复

(2)Worker 节点(TaskManager)

TaskManager 负责执行具体任务,包含:

  • TaskSlot(任务槽)
    • 任务的最小资源单位,每个 TaskManager 有多个 TaskSlot
    • Slot 之间内存相互隔离
  • Task(任务)
    • 执行 算子(Operators)
    • 通过 数据流(Stream) 进行计算

(3)存储层

Flink 需要持久化存储以下数据:

  1. 检查点(Checkpoint) → HDFS、S3、RocksDB
  2. 状态(State)存储 → RocksDB、内存
  3. 输入(Source)数据 → Kafka、MySQL、HDFS
  4. 输出(Sink)数据 → Elasticsearch、HDFS、Redis

3. Flink 作业执行流程

(1)任务提交

  1. Client 提交 Flink Job
    • 解析代码,生成 JobGraph
    • 发送 JobGraph 到 Dispatcher
  2. Dispatcher 分配 JobMaster
    • 启动 JobMaster 处理任务
    • JobMaster 解析 JobGraph,构造 ExecutionGraph

(2)任务调度

  1. JobMaster 解析 ExecutionGraph
    • 将 JobGraph 转换为并行执行图(ExecutionGraph)
    • 按算子依赖关系进行任务切分
  2. ResourceManager 分配 TaskManager
    • 申请 TaskSlot
    • 分配 TaskManager 并启动 Task 任务

(3)任务执行

  1. TaskManager 启动 Task
    • 运行算子(Operators)
    • 处理数据流(Stream)
  2. 数据传输
    • 通过 Shuffle、Network Stack 传输数据
    • 任务之间通过 流(Stream) 传递数据

(4)状态管理 & 容错

  1. Checkpoint 机制
    • 定期将 Task 状态 持久化到 HDFS、RocksDB
    • 任务故障时,从最近的 Checkpoint 恢复
  2. Savepoint 机制
    • 手动触发 Savepoint,支持 作业升级、代码变更后的恢复
  3. Failover
    • 任务失败后,JobMaster 重新调度任务,恢复计算

4. Flink 任务并行度

Flink 是 并行计算框架,并行度的定义如下:

  1. 全局并行度(Global Parallelism)
    • execution.parallelism 决定,影响整个 Job
  2. 算子级别并行度(Operator Parallelism)
    • 可以通过 operator.setParallelism(n) 设置
  3. Task Slot 数量
    • 每个 TaskManager 有多个 TaskSlot,影响作业运行

默认并行度

  • Flink 默认并行度为 1,可以在 flink-conf.yaml 配置:
    parallelism.default: 4  # 设置默认并行度为 4
    
  • 也可以通过代码指定:
    env.setParallelism(4);
    

5. Flink vs Spark 对比

对比项FlinkSpark
计算模式流计算(Streaming First)批计算(Batch First)
数据流模型实时流(Unbounded Stream)微批处理(Micro-batch)
状态管理内置状态管理(RocksDB)依赖外部存储(HDFS、Redis)
故障恢复精准一次(Exactly Once)依赖 RDD 重计算
吞吐量高吞吐、低延迟吞吐量高但延迟较高
并行计算Task Slot 控制并行度RDD Partition 控制并行度

6. 结论

Flink 采用 Master-Slave 架构,由 JobManager(主节点)+ TaskManager(工作节点)+ 存储层 组成
支持流计算和批计算,以 流计算优先(Streaming First) 为核心
高并发低延迟,支持 Exactly Once 语义,适用于 实时计算场景
任务并行度由 Task Slot、算子并行度决定,默认并行度为 1,可调整
与 Spark 相比,Flink 在实时流计算方面更强,而 Spark 在离线计算更优秀

Savepoint

1. 什么是 Savepoint?

Savepoint 是 Flink 提供的一种手动触发的作业状态快照机制,用于:

  • 任务升级、迁移(跨版本、跨集群恢复)
  • 故障恢复(比 Checkpoint 更灵活)
  • A/B 测试(从相同状态启动不同版本任务)

2. Savepoint vs Checkpoint

对比项SavepointCheckpoint
触发方式手动触发自动触发(周期性)
存储内容作业完整状态(可跨版本恢复)任务运行状态(仅用于故障恢复)
存储位置HDFS / S3 / RocksDB / 文件系统HDFS / S3 / RocksDB
用途任务升级、迁移、测试任务失败后自动恢复
适用场景长期存储,版本切换临时存储,断点恢复
数据一致性需要手动触发,非实时端到端 Exactly-Once

总结
Savepoint 适用于长期存储和版本迁移
Checkpoint 适用于作业自动恢复

3. 如何使用 Savepoint?

3.1 触发 Savepoint

flink savepoint job_id savepoint_path

例如:

flink savepoint 123456 /flink/savepoints/

说明job_id 是 Flink 任务 ID,savepoint_path 指定 Savepoint 存储位置(HDFS、S3等)。

3.2 使用 Savepoint 恢复作业

flink run -s savepoint_path -c MainClass my-flink-job.jar

示例:

flink run -s hdfs://flink/savepoints/savepoint-1234 my-job.jar

说明-s 参数指定 Savepoint 位置,作业会从 Savepoint 处继续执行。

3.3 删除 Savepoint

Savepoint 需要手动删除:

flink stop -s savepoint_path job_id

4. Savepoint 适用于哪些场景?

  1. 任务升级
    • 旧版本任务 触发 Savepoint,新版本任务从 Savepoint 恢复
    • 例如升级 Flink 作业时,保证状态不丢失
  2. 跨集群任务迁移
    • 不同 Flink 集群 之间迁移作业
    • 先在 A 集群 Savepoint,然后在 B 集群加载 Savepoint
  3. A/B 测试
    • 从同一个 Savepoint 启动多个作业,对比不同算法版本效果

5. Savepoint vs Kafka Offset

对比项SavepointKafka Offset
作用存储 Flink 作业的所有状态存储 Kafka 消费者消费位点
适用范围所有 Flink 状态(窗口、聚合等)仅流式 Kafka 消费 Offset
是否支持作业升级✅ 支持❌ 不支持
存储方式HDFS / S3 / RocksDBKafka 内部存储

Savepoint 适用于 Flink 作业状态恢复
Kafka Offset 适用于 Kafka 消费恢复

6. 总结

  • Savepoint 适用于手动触发的状态持久化,用于任务升级、迁移、A/B 测试
  • Checkpoint 适用于自动任务恢复,用于故障恢复
  • Flink 任务可以从 Savepoint 恢复,保持状态一致
  • Savepoint 需要手动管理和存储,Checkpoint 是临时的
http://www.dtcms.com/wzjs/211827.html

相关文章:

  • app产品网站模板免费下载百度笔记排名优化
  • wordpress百度主动插件厦门seo排名优化
  • 装修网站效果图如何被百度收录
  • 北京品牌网站定制公司最新黑帽seo培训
  • 门户网站建设推广不受限制的搜索引擎
  • 昆明做网站建设的公司哪家好日本樱花免m38vcom费vps
  • 做学历的网站seo上海推广公司
  • 哪个网站可以学做馒头网络推广培训课程内容
  • 手机网站的开发百度点击软件
  • 泰州网站建设设计国外域名注册
  • 佛山设计网站设计价格百度网讯科技客服人工电话
  • 哪个网站做海外代购百度app官方正式版
  • 给医院做网站赚钱吗网站优化的方式有哪些
  • 专门做礼物的网站亚马逊跨境电商
  • 有限公司和公司哪个好徐州seo外包公司
  • 专注聊城做网站的公司百度山西授权代理
  • c 怎么和网站做交互广东东莞疫情最新消息
  • 做公司网站需要什么资料推广软文是什么意思
  • 长沙建站模板大全搜索引擎优化的概念
  • 网站编辑 图片批量信阳网站seo
  • 想招代理去什么网站四年级小新闻50字左右
  • 什么网站可以做ui小动画今天重大国际新闻
  • 南平做网站小广告怎么能弄干净
  • 广州网站设计流程云优化
  • wordpress在线时长插件谷歌优化工具
  • 站长之家alexa排名怎么看国际局势最新消息今天
  • 休闲农庄展示网站比较靠谱的推广平台
  • 地方网站的建设免费网页设计制作网站
  • 单页面网站 万网x3友情链接的获取途径有哪些
  • 注销网站备案申请表搭建网站需要什么技术