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 sunfulin <su...@163.com> on 2020/07/16 15:08:03 UTC

flink 1.11任务提交的问题

hi,
请教下flink 1.11任务提交的问题。如果我的一个作业里既有sql dml提交(executeSQL执行),又通过DataStream.addSink来写出,
通过StreamExecutionEnvironment.execute提交,yarn per-job貌似会提交两个作业。这种情况下,我该如何处理呢?只想提交一个作业。

Re: Re: Re:Re: flink 1.11任务提交的问题

Posted by godfrey he <go...@gmail.com>.
是的。目前按照你的写法做不到只提交一个job了

sunfulin <su...@163.com> 于2020年7月17日周五 下午3:11写道:

>
>
>
> hi,
> 再问下,这个方案还是会提交两个job吧?
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 在 2020-07-17 14:36:19,"godfrey he" <go...@gmail.com> 写道:
> >做不到,1.11里把 StreamExecutionEnvironment.execute 和
> >StreamTableEnvironment.execute 的逻辑已经切分干净了。
> >有个改动比较小的方案可以参考:可以在原来的逻辑的基础上,把两种提交job的方式放到两个不同的类中,其他的逻辑放到另外一个类共性。
> >
> >sunfulin <su...@163.com> 于2020年7月17日周五 下午2:00写道:
> >
> >> hi,
> >> 补充一下,1.10版本的代码使用sqlUpdate +
> >>
> table2datastream,并通过StreamExecutionEnvironment.execute来提交。我回滚到1.10版本的代码后,因为我看1.11版本里如果使用sqlUpdate执行insertInto,必须使用StreamTableEnvironment.execute来提交。现在我的问题就是这个:我想通过一个job来提交。现在有机制可以做不?在1.11版本里执行。因为之前的job逻辑较为复杂,做拆分的话还有点麻烦。
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> 在 2020-07-17 13:55:21,"sunfulin" <su...@163.com> 写道:
> >>
> >>
> >>
> >>
> >> hi,
> >>
> 感谢回复。这个机制我理解了。想了解下,有办法在1.11里仍然使用1.10版本的作业提交机制么?我现在虽然把代码回滚到1.10版本的逻辑,但是提交作业仍然有问题:比如我如果不执行env.execute,那么table
> >> to DataStream的语句不会生成拓扑。
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> 在 2020-07-17 12:09:20,"godfrey he" <go...@gmail.com> 写道:
> >> >hi sunfulin,
> >> >目前这个做不到。executeSQL 和 table to DataStream 是分别优化和提交作业的。
> >> >即使在1.11 之前,table to DataStream 也不会和 sqlUpdate 或者 insertInto 的语句一起优化,
> >> >虽然只提交了一个job,但是是两个独立的pipeline,也没有计算复用,和两个job没啥差别。
> >> >
> >> >Best,
> >> >Godfrey
> >> >
> >> >Leonard Xu <xb...@gmail.com> 于2020年7月17日周五 上午12:12写道:
> >> >
> >> >> Hi,
> >> >>
> >> >> 我理解目前好像做不到, cc: godfrey 大佬看看
> >> >>
> >> >> 祝好,
> >> >> Leonard Xu
> >> >>
> >> >> > 在 2020年7月16日,23:08,sunfulin <su...@163.com> 写道:
> >> >> >
> >> >> > hi,
> >> >> > 请教下flink 1.11任务提交的问题。如果我的一个作业里既有sql
> >> >> dml提交(executeSQL执行),又通过DataStream.addSink来写出,
> >> >> > 通过StreamExecutionEnvironment.execute提交,yarn
> >> >> per-job貌似会提交两个作业。这种情况下,我该如何处理呢?只想提交一个作业。
> >> >>
> >> >>
> >>
> >>
> >>
> >>
> >>
> >>
>

Re:Re: Re:Re: flink 1.11任务提交的问题

Posted by sunfulin <su...@163.com>.


hi,
再问下,这个方案还是会提交两个job吧?














在 2020-07-17 14:36:19,"godfrey he" <go...@gmail.com> 写道:
>做不到,1.11里把 StreamExecutionEnvironment.execute 和
>StreamTableEnvironment.execute 的逻辑已经切分干净了。
>有个改动比较小的方案可以参考:可以在原来的逻辑的基础上,把两种提交job的方式放到两个不同的类中,其他的逻辑放到另外一个类共性。
>
>sunfulin <su...@163.com> 于2020年7月17日周五 下午2:00写道:
>
>> hi,
>> 补充一下,1.10版本的代码使用sqlUpdate +
>> table2datastream,并通过StreamExecutionEnvironment.execute来提交。我回滚到1.10版本的代码后,因为我看1.11版本里如果使用sqlUpdate执行insertInto,必须使用StreamTableEnvironment.execute来提交。现在我的问题就是这个:我想通过一个job来提交。现在有机制可以做不?在1.11版本里执行。因为之前的job逻辑较为复杂,做拆分的话还有点麻烦。
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> 在 2020-07-17 13:55:21,"sunfulin" <su...@163.com> 写道:
>>
>>
>>
>>
>> hi,
>> 感谢回复。这个机制我理解了。想了解下,有办法在1.11里仍然使用1.10版本的作业提交机制么?我现在虽然把代码回滚到1.10版本的逻辑,但是提交作业仍然有问题:比如我如果不执行env.execute,那么table
>> to DataStream的语句不会生成拓扑。
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> 在 2020-07-17 12:09:20,"godfrey he" <go...@gmail.com> 写道:
>> >hi sunfulin,
>> >目前这个做不到。executeSQL 和 table to DataStream 是分别优化和提交作业的。
>> >即使在1.11 之前,table to DataStream 也不会和 sqlUpdate 或者 insertInto 的语句一起优化,
>> >虽然只提交了一个job,但是是两个独立的pipeline,也没有计算复用,和两个job没啥差别。
>> >
>> >Best,
>> >Godfrey
>> >
>> >Leonard Xu <xb...@gmail.com> 于2020年7月17日周五 上午12:12写道:
>> >
>> >> Hi,
>> >>
>> >> 我理解目前好像做不到, cc: godfrey 大佬看看
>> >>
>> >> 祝好,
>> >> Leonard Xu
>> >>
>> >> > 在 2020年7月16日,23:08,sunfulin <su...@163.com> 写道:
>> >> >
>> >> > hi,
>> >> > 请教下flink 1.11任务提交的问题。如果我的一个作业里既有sql
>> >> dml提交(executeSQL执行),又通过DataStream.addSink来写出,
>> >> > 通过StreamExecutionEnvironment.execute提交,yarn
>> >> per-job貌似会提交两个作业。这种情况下,我该如何处理呢?只想提交一个作业。
>> >>
>> >>
>>
>>
>>
>>
>>
>>

Re: Re:Re: flink 1.11任务提交的问题

Posted by godfrey he <go...@gmail.com>.
做不到,1.11里把 StreamExecutionEnvironment.execute 和
StreamTableEnvironment.execute 的逻辑已经切分干净了。
有个改动比较小的方案可以参考:可以在原来的逻辑的基础上,把两种提交job的方式放到两个不同的类中,其他的逻辑放到另外一个类共性。

sunfulin <su...@163.com> 于2020年7月17日周五 下午2:00写道:

> hi,
> 补充一下,1.10版本的代码使用sqlUpdate +
> table2datastream,并通过StreamExecutionEnvironment.execute来提交。我回滚到1.10版本的代码后,因为我看1.11版本里如果使用sqlUpdate执行insertInto,必须使用StreamTableEnvironment.execute来提交。现在我的问题就是这个:我想通过一个job来提交。现在有机制可以做不?在1.11版本里执行。因为之前的job逻辑较为复杂,做拆分的话还有点麻烦。
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 在 2020-07-17 13:55:21,"sunfulin" <su...@163.com> 写道:
>
>
>
>
> hi,
> 感谢回复。这个机制我理解了。想了解下,有办法在1.11里仍然使用1.10版本的作业提交机制么?我现在虽然把代码回滚到1.10版本的逻辑,但是提交作业仍然有问题:比如我如果不执行env.execute,那么table
> to DataStream的语句不会生成拓扑。
>
>
>
>
>
>
>
>
>
>
>
> 在 2020-07-17 12:09:20,"godfrey he" <go...@gmail.com> 写道:
> >hi sunfulin,
> >目前这个做不到。executeSQL 和 table to DataStream 是分别优化和提交作业的。
> >即使在1.11 之前,table to DataStream 也不会和 sqlUpdate 或者 insertInto 的语句一起优化,
> >虽然只提交了一个job,但是是两个独立的pipeline,也没有计算复用,和两个job没啥差别。
> >
> >Best,
> >Godfrey
> >
> >Leonard Xu <xb...@gmail.com> 于2020年7月17日周五 上午12:12写道:
> >
> >> Hi,
> >>
> >> 我理解目前好像做不到, cc: godfrey 大佬看看
> >>
> >> 祝好,
> >> Leonard Xu
> >>
> >> > 在 2020年7月16日,23:08,sunfulin <su...@163.com> 写道:
> >> >
> >> > hi,
> >> > 请教下flink 1.11任务提交的问题。如果我的一个作业里既有sql
> >> dml提交(executeSQL执行),又通过DataStream.addSink来写出,
> >> > 通过StreamExecutionEnvironment.execute提交,yarn
> >> per-job貌似会提交两个作业。这种情况下,我该如何处理呢?只想提交一个作业。
> >>
> >>
>
>
>
>
>
>

Re:Re:Re: flink 1.11任务提交的问题

Posted by sunfulin <su...@163.com>.
hi,
补充一下,1.10版本的代码使用sqlUpdate + table2datastream,并通过StreamExecutionEnvironment.execute来提交。我回滚到1.10版本的代码后,因为我看1.11版本里如果使用sqlUpdate执行insertInto,必须使用StreamTableEnvironment.execute来提交。现在我的问题就是这个:我想通过一个job来提交。现在有机制可以做不?在1.11版本里执行。因为之前的job逻辑较为复杂,做拆分的话还有点麻烦。
















在 2020-07-17 13:55:21,"sunfulin" <su...@163.com> 写道:




hi,
感谢回复。这个机制我理解了。想了解下,有办法在1.11里仍然使用1.10版本的作业提交机制么?我现在虽然把代码回滚到1.10版本的逻辑,但是提交作业仍然有问题:比如我如果不执行env.execute,那么table to DataStream的语句不会生成拓扑。











在 2020-07-17 12:09:20,"godfrey he" <go...@gmail.com> 写道:
>hi sunfulin,
>目前这个做不到。executeSQL 和 table to DataStream 是分别优化和提交作业的。
>即使在1.11 之前,table to DataStream 也不会和 sqlUpdate 或者 insertInto 的语句一起优化,
>虽然只提交了一个job,但是是两个独立的pipeline,也没有计算复用,和两个job没啥差别。
>
>Best,
>Godfrey
>
>Leonard Xu <xb...@gmail.com> 于2020年7月17日周五 上午12:12写道:
>
>> Hi,
>>
>> 我理解目前好像做不到, cc: godfrey 大佬看看
>>
>> 祝好,
>> Leonard Xu
>>
>> > 在 2020年7月16日,23:08,sunfulin <su...@163.com> 写道:
>> >
>> > hi,
>> > 请教下flink 1.11任务提交的问题。如果我的一个作业里既有sql
>> dml提交(executeSQL执行),又通过DataStream.addSink来写出,
>> > 通过StreamExecutionEnvironment.execute提交,yarn
>> per-job貌似会提交两个作业。这种情况下,我该如何处理呢?只想提交一个作业。
>>
>>





 

Re:Re: flink 1.11任务提交的问题

Posted by sunfulin <su...@163.com>.


hi,
感谢回复。这个机制我理解了。想了解下,有办法在1.11里仍然使用1.10版本的作业提交机制么?我现在虽然把代码回滚到1.10版本的逻辑,但是提交作业仍然有问题:比如我如果不执行env.execute,那么table to DataStream的语句不会生成拓扑。











在 2020-07-17 12:09:20,"godfrey he" <go...@gmail.com> 写道:
>hi sunfulin,
>目前这个做不到。executeSQL 和 table to DataStream 是分别优化和提交作业的。
>即使在1.11 之前,table to DataStream 也不会和 sqlUpdate 或者 insertInto 的语句一起优化,
>虽然只提交了一个job,但是是两个独立的pipeline,也没有计算复用,和两个job没啥差别。
>
>Best,
>Godfrey
>
>Leonard Xu <xb...@gmail.com> 于2020年7月17日周五 上午12:12写道:
>
>> Hi,
>>
>> 我理解目前好像做不到, cc: godfrey 大佬看看
>>
>> 祝好,
>> Leonard Xu
>>
>> > 在 2020年7月16日,23:08,sunfulin <su...@163.com> 写道:
>> >
>> > hi,
>> > 请教下flink 1.11任务提交的问题。如果我的一个作业里既有sql
>> dml提交(executeSQL执行),又通过DataStream.addSink来写出,
>> > 通过StreamExecutionEnvironment.execute提交,yarn
>> per-job貌似会提交两个作业。这种情况下,我该如何处理呢?只想提交一个作业。
>>
>>

Re: flink 1.11任务提交的问题

Posted by godfrey he <go...@gmail.com>.
hi sunfulin,
目前这个做不到。executeSQL 和 table to DataStream 是分别优化和提交作业的。
即使在1.11 之前,table to DataStream 也不会和 sqlUpdate 或者 insertInto 的语句一起优化,
虽然只提交了一个job,但是是两个独立的pipeline,也没有计算复用,和两个job没啥差别。

Best,
Godfrey

Leonard Xu <xb...@gmail.com> 于2020年7月17日周五 上午12:12写道:

> Hi,
>
> 我理解目前好像做不到, cc: godfrey 大佬看看
>
> 祝好,
> Leonard Xu
>
> > 在 2020年7月16日,23:08,sunfulin <su...@163.com> 写道:
> >
> > hi,
> > 请教下flink 1.11任务提交的问题。如果我的一个作业里既有sql
> dml提交(executeSQL执行),又通过DataStream.addSink来写出,
> > 通过StreamExecutionEnvironment.execute提交,yarn
> per-job貌似会提交两个作业。这种情况下,我该如何处理呢?只想提交一个作业。
>
>

Re: flink 1.11任务提交的问题

Posted by Leonard Xu <xb...@gmail.com>.
Hi,

我理解目前好像做不到, cc: godfrey 大佬看看

祝好,
Leonard Xu

> 在 2020年7月16日,23:08,sunfulin <su...@163.com> 写道:
> 
> hi,
> 请教下flink 1.11任务提交的问题。如果我的一个作业里既有sql dml提交(executeSQL执行),又通过DataStream.addSink来写出,
> 通过StreamExecutionEnvironment.execute提交,yarn per-job貌似会提交两个作业。这种情况下,我该如何处理呢?只想提交一个作业。