回复:flink barrier对齐 理解

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

回复:flink barrier对齐 理解

kcz
我的理解是一条数据,会经过n个算子,只有这个数据到达最后一个算子计算完毕,才能checkpoint,否则会导致前几个算子state改变,但是这个数据的offset没有被提交,导致了重复消费数据。





------------------ 原始邮件 ------------------
发件人: Benchao Li <[hidden email]&gt;
发送时间: 2020年5月17日 13:28
收件人: user-zh <[hidden email]&gt;
主题: 回复:flink barrier对齐 理解



我感觉应该是这样的:

比如有两个算子
A ---hash---&gt; B
A和B分别有2和3个并发。那就是说对于B的某个subtask来讲,需要对齐上游A的2个subtask发过来的barrier,才能做checkpoint。


了不起的盖茨比 <[hidden email]&gt; 于2020年5月17日周日 下午1:16写道:

&gt; 可以理解成,有多个subtask时候,需要等待不同subtask消费数据完毕,之后做checkpoint
&gt;
&gt;
&gt;
&gt;
&gt;
&gt; ------------------ 原始邮件 ------------------
&gt; 发件人: Benchao Li <[hidden email]&amp;gt;
&gt; 发送时间: 2020年5月17日 11:34
&gt; 收件人: user-zh <[hidden email]&amp;gt;
&gt; 主题: 回复:flink barrier对齐 理解
&gt;
&gt;
&gt;
&gt; Hi,
&gt;
&gt; 我对这块不是非常了解,但是我理解的barrier对齐,指的是同一个Task的多个subtask之间对齐吧。
&gt; 比如你只有一个source,然后经过keyby之后做了其他的操作,那也是存在barrier对齐的。
&gt;
&gt; 了不起的盖茨比 <[hidden email]&amp;gt; 于2020年5月17日周日 上午11:29写道:
&gt;
&gt; &amp;gt; 请教一下,如果只有一个source,就不需要对齐了吧?只有source多个数据源时候才需要对齐?
&gt;
&gt;
&gt;
&gt; --
&gt;
&gt; Benchao Li
&gt; School of Electronics Engineering and Computer Science, Peking University
&gt; Tel:+86-15650713730
&gt; Email: [hidden email]; [hidden email]



--

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: [hidden email]; [hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: flink barrier对齐 理解

tison
Hi,

你可以看一下官网这张经典的图[1][2],snapshot 是按算子级别来看的,跟 source 不 source 没啥关系,全局的 chk 由 jm
上的 checkpoint coordinator 协调。

Best,
tison.

[1]
https://ci.apache.org/projects/flink/flink-docs-master/fig/stream_aligning.svg
[2]
https://ci.apache.org/projects/flink/flink-docs-master/concepts/stateful-stream-processing.html




了不起的盖茨比 <[hidden email]> 于2020年5月17日周日 下午2:50写道:

>
> 我的理解是一条数据,会经过n个算子,只有这个数据到达最后一个算子计算完毕,才能checkpoint,否则会导致前几个算子state改变,但是这个数据的offset没有被提交,导致了重复消费数据。
>
>
>
>
>
> ------------------ 原始邮件 ------------------
> 发件人: Benchao Li <[hidden email]&gt;
> 发送时间: 2020年5月17日 13:28
> 收件人: user-zh <[hidden email]&gt;
> 主题: 回复:flink barrier对齐 理解
>
>
>
> 我感觉应该是这样的:
>
> 比如有两个算子
> A ---hash---&gt; B
>
> A和B分别有2和3个并发。那就是说对于B的某个subtask来讲,需要对齐上游A的2个subtask发过来的barrier,才能做checkpoint。
>
>
> 了不起的盖茨比 <[hidden email]&gt; 于2020年5月17日周日 下午1:16写道:
>
> &gt; 可以理解成,有多个subtask时候,需要等待不同subtask消费数据完毕,之后做checkpoint
> &gt;
> &gt;
> &gt;
> &gt;
> &gt;
> &gt; ------------------ 原始邮件 ------------------
> &gt; 发件人: Benchao Li <[hidden email]&amp;gt;
> &gt; 发送时间: 2020年5月17日 11:34
> &gt; 收件人: user-zh <[hidden email]&amp;gt;
> &gt; 主题: 回复:flink barrier对齐 理解
> &gt;
> &gt;
> &gt;
> &gt; Hi,
> &gt;
> &gt; 我对这块不是非常了解,但是我理解的barrier对齐,指的是同一个Task的多个subtask之间对齐吧。
> &gt; 比如你只有一个source,然后经过keyby之后做了其他的操作,那也是存在barrier对齐的。
> &gt;
> &gt; 了不起的盖茨比 <[hidden email]&amp;gt; 于2020年5月17日周日 上午11:29写道:
> &gt;
> &gt; &amp;gt; 请教一下,如果只有一个source,就不需要对齐了吧?只有source多个数据源时候才需要对齐?
> &gt;
> &gt;
> &gt;
> &gt; --
> &gt;
> &gt; Benchao Li
> &gt; School of Electronics Engineering and Computer Science, Peking
> University
> &gt; Tel:+86-15650713730
> &gt; Email: [hidden email]; [hidden email]
>
>
>
> --
>
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: [hidden email]; [hidden email]