報(bào)錯(cuò)描述
在用Flink進(jìn)行Flink SQL相關(guān)的測試的時(shí)候熙卡,報(bào)了以下錯(cuò)誤:
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)
問題原因
在整個(gè)代碼中沒有流算子的存在功蜓,因?yàn)槎际鞘褂胻able sql的數(shù)據(jù)類型。
解決辦法
當(dāng)沒有流的存在時(shí)沙庐,不要在代碼的最后加上env.execute()剂碴。
// try {
// env.execute("UDF Example");
// } catch (Exception e) {
// throw new RuntimeException(e);
// }
其它
其實(shí)報(bào)錯(cuò)也沒問題,照樣能運(yùn)行