首页 文章

为什么键控流(在keyBy上)创建倾斜的下游执行?

提问于
浏览
0

我有一个案例,其中有8个键(在keyBy上),并且插槽上的传播是倾斜的 . 我有一个3的并行性,键控操作的传播是5,2和1,单个插槽上有5个键 . 有没有办法确保键控操作的分配是 balancer 的 . (我们没有对键控流进行分区操作)

1 回答

  • 0

    keyBy() 假定均匀分布 . 通常,这个问题可以通过实现人工密钥来解决 .

    在内部,Flink在您的密钥上调用 obj.hashCode() 并使用该密钥分发您的记录(以及一些额外的逻辑) . 您可以实现自己的 KeySelector 包装您的拧紧键并实现更好的 hashCode() 方法 .

相关问题