美文网首页
No operators defined in streamin

No operators defined in streamin

作者: 〇白衣卿相〇 | 来源:发表于2020-11-30 11:37 被阅读0次

    Flink 1.11版本对Table&SQL模块进行了重构,废弃了TableEnvironment.sqlUpdate方法,引入了TableEnvironment.executeSql、StatementSet.execute方法。
    在进行测试时报如下异常

    Exception in thread "main" java.lang.IllegalStateException: No operators defined in streaming topology. Cannot generate StreamGraph.
                at org.apache.flink.table.planner.utils.ExecutorUtils.generateStreamGraph(ExecutorUtils.java:47)
                at org.apache.flink.table.planner.delegation.StreamExecutor.createPipeline(StreamExecutor.java:47)
                at org.apache.flink.table.api.internal.TableEnvironmentImpl.execute(TableEnvironmentImpl.java:1213)
                at sql.operator.SinkToBlackhole.main(SinkToBlackhole.java:20)
    

    查看源码后知道原因了
    由于1.10的习惯 在程序最后一般都会调用TableEnvironment.execute或StreamExecutionEnvironment.execute方法。
    问题就在这里,由于executeSql已经是异步提交了作业,生成Transformation后会把缓存的Operation清除,见TableEnvironmentImpl#translateAndClearBuffer,执行execute也会走那一段逻辑,报了上面异常,但是这个异常不影响程序执行。

    相关文章

      网友评论

          本文标题:No operators defined in streamin

          本文链接:https://www.haomeiwen.com/subject/wwjrwktx.html