flink分区与算子链

flink分区与算子链

  • [flink 分区策略](#flink 分区策略)
  • [flink 什么情况下才会把 Operator chain 在一起形成算子链?](#flink 什么情况下才会把 Operator chain 在一起形成算子链?)
  1. GlobalPartitioner 数据会被分发到下游算子的第一个实例中进行处理
  2. RebalancePartitioner 数 据会 被循 环发 送到 下 游的 每一 个实 例中 进 行处 理。
  3. RescalePartitioner 这种分区器会根据上下游算子的并行度,循环的方式输出到下游算子的每个实例。
  4. BroadcastPartitioner 广播分区会将上游数据输出到下游算子的每个实例中 。 适 合 于大数据集和小数据集做Jion的场景。
  5. ForwardPartitioner 用于将记录输出到下游本地的算子实例。它要求上下游 算 子 并 行 度 一 样 。 简单的说 , ForwardPartitioner 用来做数据的控制台打印 。(也是chain算子的条件)
  6. KeyGroupStreamPartitioner Hash 分区器。会将数据按 Key 的 Hash 值输出到下游算子实例中。
  7. CustomPartitionerWrapper 用户自定义分区器。需要用户自己实现 Partitioner 接口,来定义自己的分区逻辑

RescalePartitioner这里有点难以理解,假设上游并行度为 2,编号为 A 和 B。下游并行度为 4,编号为 1,2,3,4。那么 A 则把数据循环发送给 1 和 2,B 则把数据循环发送给 3 和 4。假设上游并行度为 4,编号为 A,B,C,D。下游并 行度 ,编号为 1,2。那么 A 和 B 则把数据发送给 1,C 和 D 则把数据发送给 2。

  • 上下游的并行度一致
  • 下游节点的入度为 1 (也就是说下游节点没有来自其他节点的输入)
  • 上下游节点都在同一个 slot group 中
  • 两个节点间数据分区方式是 forward(参考理解数据流的分区) 否则都是all_to_all
  • 上下游节点的 chain 策略为 ALWAYS
相关推荐
starzy19907 小时前
Flink ApplicationMaster启动流程源码深度剖析:从YARN提交到JobMaster启动的完整链路
大数据·flink
ClickHouseDB7 小时前
AI 工程闭环的自动化趋势与质量把控边界
大数据·人工智能
yt004yt7 小时前
园区 VOC 绿岛集中治理项目,管网与监测系统设计要点
大数据·学习
IT研究室8 小时前
最新大数据毕业设计选题推荐-基于大数据的网络安全入侵流量特征分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·web安全·课程设计
xianghongtao01168 小时前
麦肯锡2026技术趋势04_AI基础设施与模型架构_研究解读
大数据·人工智能·架构
A 杨乐182100518918 小时前
2027第十三届中国国际养老服务业博览会
大数据·人工智能
ShawnLiaoking9 小时前
ADS305 Big Data Lecuture4 Web Scraping
大数据·前端
计算机毕业编程指导师9 小时前
【计算机毕设选题】基于Hadoop+Spark的化妆品销售数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·spark·课程设计·化妆品
奈落249 小时前
DeepSeek Harness 开源贡献手记:从 Issue 认领到 PR 合入的完整实践
大数据·人工智能·安全·搜索引擎·开源
码艺-Alimjan9 小时前
Tauri 项目 和 Vben-Admin 项目 源码打包哲学
大数据·elasticsearch·搜索引擎