报错描述
在用Flink进行Flink SQL相关的测试的时候,报了以下错误:
Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalStateException: No operators defined in streaming topology. Cannot execute.
at com.gitee.xxx.flink.learning.udf.UDFExample.main(UDFExample.java:46)
Caused by: java.lang.IllegalStateException: No operators defined in streaming topology. Cannot execute.
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.getStreamGraphGenerator(StreamExecutionEnvironment.java:2019)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.getStreamGraph(StreamExecutionEnvironment.java:2010)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.getStreamGraph(StreamExecutionEnvironment.java:1995)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1834)
at com.gitee.xxx.flink.learning.udf.UDFExample.main(UDFExample.java:44)
问题原因
在整个代码中没有流算子的存在,因为都是使用table sql的数据类型。
解决办法
当没有流的存在时,不要在代码的最后加上env.execute()。
// try {
// env.execute("UDF Example");
// } catch (Exception e) {
// throw new RuntimeException(e);
// }
其它
其实报错也没问题,照样能运行