关于Flink Chain的一些问题

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

关于Flink Chain的一些问题

runtime
Hi all,
我在生产环境使用Flink一段时间后,随着集群不断变大,有些问题愈发明显
1. 在文档中提到的 Chain 的概念我理解为 Source -> ,,,, -> Sink 单管道输送数据?
2. 对于 Chain 的概念是否有更多的资料可以参考,以及什么时候会破坏这个 Chain
3. 调优中,如果 Sink 的 Parallel 小于前一个 Operatior 的 Parallel 对比 相同的 Parallel
会有什么区别,如何进行 Parallel 方面的调优,是否有资料可以供观摩参照的
Reply | Threaded
Open this post in threaded view
|

RE: 关于Flink Chain的一些问题

Shi Quan


Hi,



  1.  在jobGraphGenerator:: createSingleInputVertex 中可以看到chain的判断逻辑。
  2.  这个概念类似于Spark的Stage,多个operator对应一个vertex,具体相信你看过上面的代码会明白
  3.  不同的parallel会涉及到chain的打断和数据的partitioning,调优和具体的情况有关,钉上二中的视频了解下。



石权



Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10



________________________________
From: runtime <[hidden email]>
Sent: Wednesday, July 10, 2019 11:35:30 AM
To: user-zh
Subject: 关于Flink Chain的一些问题

Hi all,
我在生产环境使用Flink一段时间后,随着集群不断变大,有些问题愈发明显
1. 在文档中提到的 Chain 的概念我理解为 Source -> ,,,, -> Sink 单管道输送数据?
2. 对于 Chain 的概念是否有更多的资料可以参考,以及什么时候会破坏这个 Chain
3. 调优中,如果 Sink 的 Parallel 小于前一个 Operatior 的 Parallel 对比 相同的 Parallel
会有什么区别,如何进行 Parallel 方面的调优,是否有资料可以供观摩参照的
Reply | Threaded
Open this post in threaded view
|

Re: 关于Flink Chain的一些问题

Biao Liu
In reply to this post by runtime
你好,

> 1. 在文档中提到的 Chain 的概念我理解为 Source -> ,,,, -> Sink 单管道输送数据?

Chain 的 operator 合并到一个 task 中,可以避免潜在的网络传输,见 [1]

> 2. 对于 Chain 的概念是否有更多的资料可以参考,以及什么时候会破坏这个 Chain

文档参考:[1], [2]
Chain 的条件有很多种,最常见就是上下游并发要一致,有兴趣可以读一下相关代码 [3] 关于 isChainable 的部分

> 3. 调优中,如果 Sink 的 Parallel 小于前一个 Operatior 的 Parallel 对比 相同的 Parallel
> 会有什么区别,如何进行 Parallel 方面的调优,是否有资料可以供观摩参照的

Parallel 不相同的情况一定不会 chain,这是一个可能的问题
Parallel 调优没有什么具体的模式,适合你的就好,可以参考 back pressure 的情况,尽量在少占用资源和少 back pressure
之间平衡


1.
https://ci.apache.org/projects/flink/flink-docs-master/concepts/runtime.html#tasks-and-operator-chains
2.
https://ci.apache.org/projects/flink/flink-docs-master/dev/stream/operators/#task-chaining-and-resource-groups
3.
https://github.com/apache/flink/blob/master/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/graph/StreamingJobGraphGenerator.java

runtime <[hidden email]> 于2019年7月10日周三 上午11:35写道:

> Hi all,
> 我在生产环境使用Flink一段时间后,随着集群不断变大,有些问题愈发明显
> 1. 在文档中提到的 Chain 的概念我理解为 Source -> ,,,, -> Sink 单管道输送数据?
> 2. 对于 Chain 的概念是否有更多的资料可以参考,以及什么时候会破坏这个 Chain
> 3. 调优中,如果 Sink 的 Parallel 小于前一个 Operatior 的 Parallel 对比 相同的 Parallel
> 会有什么区别,如何进行 Parallel 方面的调优,是否有资料可以供观摩参照的
>
Reply | Threaded
Open this post in threaded view
|

Re: 关于Flink Chain的一些问题

runtime
感谢!
我去研究研究诸位指引的资料

Biao Liu <[hidden email]> 于2019年7月10日周三 下午12:38写道:

> 你好,
>
> > 1. 在文档中提到的 Chain 的概念我理解为 Source -> ,,,, -> Sink 单管道输送数据?
>
> Chain 的 operator 合并到一个 task 中,可以避免潜在的网络传输,见 [1]
>
> > 2. 对于 Chain 的概念是否有更多的资料可以参考,以及什么时候会破坏这个 Chain
>
> 文档参考:[1], [2]
> Chain 的条件有很多种,最常见就是上下游并发要一致,有兴趣可以读一下相关代码 [3] 关于 isChainable 的部分
>
> > 3. 调优中,如果 Sink 的 Parallel 小于前一个 Operatior 的 Parallel 对比 相同的 Parallel
> > 会有什么区别,如何进行 Parallel 方面的调优,是否有资料可以供观摩参照的
>
> Parallel 不相同的情况一定不会 chain,这是一个可能的问题
> Parallel 调优没有什么具体的模式,适合你的就好,可以参考 back pressure 的情况,尽量在少占用资源和少 back pressure
> 之间平衡
>
>
> 1.
>
> https://ci.apache.org/projects/flink/flink-docs-master/concepts/runtime.html#tasks-and-operator-chains
> 2.
>
> https://ci.apache.org/projects/flink/flink-docs-master/dev/stream/operators/#task-chaining-and-resource-groups
> 3.
>
> https://github.com/apache/flink/blob/master/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/graph/StreamingJobGraphGenerator.java
>
> runtime <[hidden email]> 于2019年7月10日周三 上午11:35写道:
>
> > Hi all,
> > 我在生产环境使用Flink一段时间后,随着集群不断变大,有些问题愈发明显
> > 1. 在文档中提到的 Chain 的概念我理解为 Source -> ,,,, -> Sink 单管道输送数据?
> > 2. 对于 Chain 的概念是否有更多的资料可以参考,以及什么时候会破坏这个 Chain
> > 3. 调优中,如果 Sink 的 Parallel 小于前一个 Operatior 的 Parallel 对比 相同的 Parallel
> > 会有什么区别,如何进行 Parallel 方面的调优,是否有资料可以供观摩参照的
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: 关于Flink Chain的一些问题

LakeShen
Hi 我觉得这篇博客能够帮助到你:
https://wuchong.me/blog/2016/05/09/flink-internals-understanding-execution-resources/

你可以参考一下

沈磊

runtime <[hidden email]> 于2019年7月10日周三 下午2:35写道:

> 感谢!
> 我去研究研究诸位指引的资料
>
> Biao Liu <[hidden email]> 于2019年7月10日周三 下午12:38写道:
>
> > 你好,
> >
> > > 1. 在文档中提到的 Chain 的概念我理解为 Source -> ,,,, -> Sink 单管道输送数据?
> >
> > Chain 的 operator 合并到一个 task 中,可以避免潜在的网络传输,见 [1]
> >
> > > 2. 对于 Chain 的概念是否有更多的资料可以参考,以及什么时候会破坏这个 Chain
> >
> > 文档参考:[1], [2]
> > Chain 的条件有很多种,最常见就是上下游并发要一致,有兴趣可以读一下相关代码 [3] 关于 isChainable 的部分
> >
> > > 3. 调优中,如果 Sink 的 Parallel 小于前一个 Operatior 的 Parallel 对比 相同的 Parallel
> > > 会有什么区别,如何进行 Parallel 方面的调优,是否有资料可以供观摩参照的
> >
> > Parallel 不相同的情况一定不会 chain,这是一个可能的问题
> > Parallel 调优没有什么具体的模式,适合你的就好,可以参考 back pressure 的情况,尽量在少占用资源和少 back
> pressure
> > 之间平衡
> >
> >
> > 1.
> >
> >
> https://ci.apache.org/projects/flink/flink-docs-master/concepts/runtime.html#tasks-and-operator-chains
> > 2.
> >
> >
> https://ci.apache.org/projects/flink/flink-docs-master/dev/stream/operators/#task-chaining-and-resource-groups
> > 3.
> >
> >
> https://github.com/apache/flink/blob/master/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/graph/StreamingJobGraphGenerator.java
> >
> > runtime <[hidden email]> 于2019年7月10日周三 上午11:35写道:
> >
> > > Hi all,
> > > 我在生产环境使用Flink一段时间后,随着集群不断变大,有些问题愈发明显
> > > 1. 在文档中提到的 Chain 的概念我理解为 Source -> ,,,, -> Sink 单管道输送数据?
> > > 2. 对于 Chain 的概念是否有更多的资料可以参考,以及什么时候会破坏这个 Chain
> > > 3. 调优中,如果 Sink 的 Parallel 小于前一个 Operatior 的 Parallel 对比 相同的 Parallel
> > > 会有什么区别,如何进行 Parallel 方面的调优,是否有资料可以供观摩参照的
> > >
> >
>