使用flink tableApi 进行表和流转换报错
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:40)
	at org.apache.flink.table.planner.delegation.StreamExecutor.createPipeline(StreamExecutor.java:50)
	at org.apache.flink.table.api.internal.TableEnvironmentImpl.execute(TableEnvironmentImpl.java:1460)
	at com.quant.flowcalculation.flinkapi.tableapi.TableApiKafka.main(TableApiKafka.java:75)

代码的结构如下:
 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        EnvironmentSettings settings = EnvironmentSettings
                .newInstance()
                .useBlinkPlanner()
                .inStreamingMode()
                .build();
        StreamTableEnvironment tEnv = StreamTableEnvironment.create(env, settings);
        //注册source和sink
        tEnv.executeSql(sourceDDL);
        // 数据提取
        Table sourceTable = tEnv.from("kafka_source");

        DataStream<Row> rowDataStream = tEnv.toDataStream(sourceTable);
         rowDataStream.print();
        // 执行作业
        tEnv.execute("flink-connection-kafka");
解决办法:

Flink1.13版本对于两个env的execute代码实现有改动,在1.13版本里需要用

    // 执行作业
        env.execute("flink-connection-kafka");
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐