You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 小学生 <20...@qq.com> on 2020/06/08 09:29:25 UTC

flink 任务并发顺序

各位大佬好,有一个问题需要咨询下:
当前我在一个flink执行文件中,对同一源流数据有不同的算子操作,例如:
1.table1.insert(‘sink_table’)
2.sink_table.insert(‘sink_table1’)
也就是说第二个算子依赖于第一个算子产生的结果,所以想咨询下,在flink中可设置流数据算子的执行顺序吗(当前我理解是flink会并发处理两个算子,先后性保证不了)?

回复: flink 任务并发顺序

Posted by 1048262223 <10...@qq.com>.
Hi


Flink 是这样的,从source到sink,所以按照你的描述来说应该是完全独立的两条流,两条流之间没有关系,如下:


source(source1) -&gt; transform -&gt; sink(sink1)


source(sink1) -&gt; transform -&gt; sink(sink2)


这两条流都会独立去消费数据源,从而形成两条独立的流。


Best,
Yichao Yang




------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"小学生"<201782053@qq.com&gt;;
发送时间:&nbsp;2020年6月8日(星期一) 下午5:52
收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;

主题:&nbsp;Re: flink 任务并发顺序



但是,我的两个insert都是同一个job提交的,测试发现数据流入两个insert_into是随机执行的。

Re: flink 任务并发顺序

Posted by 小学生 <20...@qq.com>.
但是,我的两个insert都是同一个job提交的,测试发现数据流入两个insert_into是随机执行的。

Re: flink 任务并发顺序

Posted by LakeShen <sh...@gmail.com>.
Hi,

Flink 任务运行时,本身就是一个 DAG 图,从 Source 出发,到 Sink 结束。

所以你所说的顺序,完全是按照你的业务逻辑来的。

Best,
LakeShen

Caizhi Weng <ts...@gmail.com> 于2020年6月8日周一 下午5:41写道:

> Hi,
>
> 不能设置这两个算子的执行顺序。流作业很可能是不会结束的,如果非要设定顺序的话可能另一个算子永远都不会执行。
>
> 不过如果已知是有限流的话,可以把这两个算子分成两个 job 提交,拿到 job client 以后用 job client 等待一个 job
> 的结束,再提交另一个 job。
>
> 小学生 <20...@qq.com> 于2020年6月8日周一 下午5:29写道:
>
> > 各位大佬好,有一个问题需要咨询下:
> > 当前我在一个flink执行文件中,对同一源流数据有不同的算子操作,例如:
> > 1.table1.insert(‘sink_table’)
> > 2.sink_table.insert(‘sink_table1’)
> >
> >
> 也就是说第二个算子依赖于第一个算子产生的结果,所以想咨询下,在flink中可设置流数据算子的执行顺序吗(当前我理解是flink会并发处理两个算子,先后性保证不了)?
>

Re: flink 任务并发顺序

Posted by Caizhi Weng <ts...@gmail.com>.
Hi,

不能设置这两个算子的执行顺序。流作业很可能是不会结束的,如果非要设定顺序的话可能另一个算子永远都不会执行。

不过如果已知是有限流的话,可以把这两个算子分成两个 job 提交,拿到 job client 以后用 job client 等待一个 job
的结束,再提交另一个 job。

小学生 <20...@qq.com> 于2020年6月8日周一 下午5:29写道:

> 各位大佬好,有一个问题需要咨询下:
> 当前我在一个flink执行文件中,对同一源流数据有不同的算子操作,例如:
> 1.table1.insert(‘sink_table’)
> 2.sink_table.insert(‘sink_table1’)
>
> 也就是说第二个算子依赖于第一个算子产生的结果,所以想咨询下,在flink中可设置流数据算子的执行顺序吗(当前我理解是flink会并发处理两个算子,先后性保证不了)?