flink-quickstart-java 线程 "main" java.lang.RuntimeException 异常:尚未创建数据接收器

flink-quickstart-java Exception in thread "main" java.lang.RuntimeException: No data sinks have been created yet

我刚刚使用 maven 原型(即模板)创建了新的 Flink 项目 (查看 this 文章)

mvn archetype:generate                               \
      -DarchetypeGroupId=org.apache.flink              \
      -DarchetypeArtifactId=flink-quickstart-java

1.14.4 是当前版本。该项目可以编译。 但是当 运行 BatchJobStreamingJob

public class BatchJob {

    public static void main(String[] args) throws Exception {
        // set up the batch execution environment
        final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

第一个异常NoClassDefFoundError:org/apache/flink/streaming/api/environment/StreamExecutionEnvironment 可以像

那样解决
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/streaming/api/environment/StreamExecutionEnvironment
    at com.example.flink.StreamingJob.main(StreamingJob.java:39)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.streaming.api.environment.StreamExecutionEnvironment
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 1 more

但后来我明白了 Exception in thread "main" java.lang.RuntimeException: No data sinks have been created yet.

P.S。来自这 2 Java 类 的文档 https://flink.apache.org/docs/latest 的所有链接都是 404 Not Found,
所以我猜这个 Maven 原型实际上已经被放弃并且有一段时间没有更新了。

         * Have a look at the programming guide for the Java API:
         *
         * https://flink.apache.org/docs/latest/apis/batch/index.html
         *
         * and the examples
         *
         * https://flink.apache.org/docs/latest/apis/batch/examples.html

maven quickstart 确实提供了正确设置的框架项目。但是,所提供的应用程序并不完整,也不会 运行 开箱即用,因为它们缺少源和接收器。

如果你定义一个简单的管道如

env.fromElements(1, 2, 3).print();

然后他们会工作。