据我了解,Apache Flink 实际上不会运行您要求它执行的操作,直到某些操作需要这些操作的结果。这使得很难准确确定每个操作需要多长时间,这正是我试图做的,以便将其效率与Apache Spark进行比较。有没有办法在我想要的时候强制它运行操作?
运行 Flink 程序时,定义要在集群上执行的拓扑和运算符。一个通过调用env.execute
来触发作业执行,其中env
是ExecutionEnvironment
或StreamExecutionEnvironment
。批处理作业有一个例外,即触发预先执行的 API 调用collect
和print
。
您可以使用 Web UI 提取不同运算符的运行时。对于每个运算符,您会看到何时部署以及何时完成执行。