为什么我 运行 在 Apache Flink 中只看到一个作业,但在任务管理器中看到多个已完成的作业?

Why I see several completed jobs in task manager when I run just one job in Apache Flink?

在 Apache Flink 中,我 运行 远程集群上的任务。我有一个包含以下命令的任务。 我想知道,为什么 Flink Web 客户端将我的任务视为已完成作业中的几个不同作业?

personRecords =    env.readCsvFile("path to input file/dataset1.csv")
                .lineDelimiter("\n").ignoreFirstLine()
                .fieldDelimiter(",")           
                .includeFields("111")
                .types(Integer.class, String.class, String.class);

pData = personRecords.map(new cleanerMap());
pData = pData.sortPartition(3, Order.ASCENDING).setParallelism(1);
env.setParallelism(4);
MultiKey_List = partitionedData.collect();
...
pData = p.partitionCustom(new MyPartitioner(), 3);
DataSet<Tuple2<Integer, Integer>> dPairs =    pData.mapPartition(new  Calc());
dPairs = dPairs.flatMap(new TC(dPairs.collect())).setParallelism(1);
env.execute();

这是因为collect命令触发作业执行到你调用它的那个点。因此,它不同于几乎所有其他 api 热切评估的调用。触发作业执行的另一种方法是count

您在 collect 之后定义的所有其他接收器将由后续 collect 调用或在您调用 ExecutionEnvironment.execute.

时执行