FlinkFlink key 应该分配到哪个 KeyGroup 以及 KeyGroup 分配在哪个subtask

Posted 九师兄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FlinkFlink key 应该分配到哪个 KeyGroup 以及 KeyGroup 分配在哪个subtask相关的知识,希望对你有一定的参考价值。

1.概述

转载:Flink 源码:从 KeyGroup 到 Rescale

通过阅读本文你能 get 到以下点:

KeyGroupKeyGroupRange 介绍
maxParallelism 介绍及采坑记
数据如何映射到每个 subtask 上?
任务改并发时,KeyGroup rescale 的过程

2.KeyGroup、KeyGroupRange 介绍

Flink 中 KeyedState 恢复时,是按照 KeyGroup 为最小单元恢复的,每个 KeyGroup 负责一部分 key 的数据。这里的 key 指的就是 Flink 中 keyBy 中提取的 key。

每个 Flink 的 subtask 负责一部分相邻 KeyGroup 的数据,即一个 KeyGroupRange 的数据,有个 start 和 end(这里是闭区间ÿ

以上是关于FlinkFlink key 应该分配到哪个 KeyGroup 以及 KeyGroup 分配在哪个subtask的主要内容,如果未能解决你的问题,请参考以下文章

FlinkFlink keyed State多年的误解 以及 Keyed state redistribute

FlinkFlink 的 slotSharingGroup 有什么用

FlinkFlink UpsertStreamTableSink requires that has a full primary keys if update

FlinkFlink 1.12.2 TaskSlot

FlinkFlink状态的缩放(rescale)与键组(Key Group)设计

FlinkFlink 1.13 将数据 写入 到 elasticsearch 7 案例