当前位置: 首页 > 知识库问答 >
问题:

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

艾文斌
2023-03-14

我有一个例子,有8个键(在一个键上),插槽上的展开是歪斜的。我有一个3的并行度,键操作的分布是5、2和1,在一个插槽上有5个键。有没有办法确保键控操作的分配是平衡的。(我们没有对键控流进行分区操作)

共有1个答案

令狐昌胤
2023-03-14

keyby()采用均匀分布。一般来说,这些问题可以通过实现一个人工密钥来解决。

在内部,Flink调用密钥上的obj.hashCode()并分发记录(和一些附加逻辑)。您可以实现自己的keyselector来包装您的螺丝键,并实现更好的hashcode()方法。

 类似资料:
  • 我读取一个简单的JSON字符串作为输入,并基于两个字段和对流进行键控。但是KeyBy为的不同值生成相同的键控流,但为和的特定组合生成相同的键控流。 输入: 这是我的Flink代码的核心逻辑:

  • 本文向大家介绍SVG 偏斜,偏斜,包括了SVG 偏斜,偏斜的使用技巧和注意事项,需要的朋友参考一下 示例 将多边形水平倾斜45度: 结果等于 x值计算为,y值保持不变x + y * tan(angle) 将多边形垂直倾斜30度: 结果等于(允许四舍五入) x值保持不变,y值计算为 y + x * tan(angle)

  • 有ManyToOne链接的表。每个学生被分配一个方向从教育方向。当我创建学生时,所选方向被重新创建。为什么在创建学生时创建方向? 学生: 教育方向: 学生道:

  • 我不知道我做得是否正确,但我正在创建一个应用程序,为高中毕业舞会分配门票,对于每个学生,我让学校放入ID中,因为所有学生在该学校都有一个唯一的ID,并作为密钥存储。但问题是,不同学校的两个学生可能有相同的ID,所以我打算将主密钥存储为学生ID和学校ID。这是我的学生实体类。 beanCreationException:创建类路径资源[org/springframework/boot/autocon

  • 问题内容: 我试图在Flink中的KeyedStream上执行映射操作: JsonToObjectMapper运算符的输出是 MessageObject 类的POJO,它具有String字段“ keyfield ”。然后,将流键入此字段。 MessageProcessorStateful是一个RichMapFunction,如下所示: 该代码引发NullPointer异常: 尽管我已经验证了’ke

  • 我正在使用 https://github.com/OpenAPITools/openapi-generator 为我的应用编程接口创建一个客户端。它基本上工作正常,但是生成器创建了许多类型,这些类型封装了包括任何复杂性类型的参数,例如、、 例如 其中InlineObject11定义为 这有什么意义?为什么生成的客户端不接受流再平衡贸易文件(Stream rebalanceTradeFile),而不