Flink 实战系列Flink pipeline.operator-chaining 参数使用以及源码解析

Posted JasonLee实时计算

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink 实战系列Flink pipeline.operator-chaining 参数使用以及源码解析相关的知识,希望对你有一定的参考价值。

Flink pipeline.operator-chaining 参数使用和解析

当我们使用 Flink SQL 提交一个任务,没有给算子单独设置并行度的情况下,默认所有的算子会 chain 在一起,像下面的这样:

此时,整个 DAG 图只会显示一个算子,虽然这样有利于数据的传输,可以提高任务的性能,但是缺点也很明显,我们无法看到数据的输入和输出,以及反压相关的 metrics。那在 datastream api 开发的任务中我们可以使用 disableChaining 方法来打断 operatorChain,但是在 SQL 开发的任务中怎么办呢?如果我们想要查看每一个算子的输入和输出的数据量呢?其实 Flink 提供了一个参数配置 pipeline.operator-chaining 决定是否要打断 operatorChain。

还是以上面的 SQL 任务为例,我们把 pipeline.operator-chaining 参数加上,再来看下效果。

可以看到所有的 operatorChain 都被打断了,Records Send/Received 也正常显示了,其实这个参数不仅是对 SQL 任务有效,对于 datastream API 开发的任务

以上是关于Flink 实战系列Flink pipeline.operator-chaining 参数使用以及源码解析的主要内容,如果未能解决你的问题,请参考以下文章

Flink实战系列Flink SQL 写入 kafka 自定义分区策略

Flink实战系列Flink 读取 Hive 数据同步到 Kafka

Flink实战系列Flink 如何实现全链路延迟监控

Flink实战系列Flink 本地 Web UI 的配置及使用

Flink 实战系列如何给 Flink 任务设置合理的并行度?

Flink实战系列Flink SQL 实时同步数据到 Hive