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