为什么我 运行 在 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
.
时执行
在 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
.