【发布时间】:2017-07-13 19:30:03
【问题描述】:
我有一个案例,其中有 8 个键(在 keyBy 上)并且插槽上的分布是倾斜的。我的并行度为 3,键控操作的分布是 5,2 和 1,单个插槽上有 5 个键。有没有办法确保键控操作的分布是平衡的。 (我们没有对键控流进行分区操作)
【问题讨论】:
标签: apache-flink flink-streaming
我有一个案例,其中有 8 个键(在 keyBy 上)并且插槽上的分布是倾斜的。我的并行度为 3,键控操作的分布是 5,2 和 1,单个插槽上有 5 个键。有没有办法确保键控操作的分布是平衡的。 (我们没有对键控流进行分区操作)
【问题讨论】:
标签: apache-flink flink-streaming
keyBy() 假设分布均匀。一般来说,这个问题可以通过实现人工密钥来解决。
在内部,Flink 在你的密钥上调用 obj.hashCode() 并用它(以及一些额外的逻辑)分发你的记录。您可以实现自己的 KeySelector 来包装您的拧紧钥匙并实现更好的 hashCode() 方法。
【讨论】: