如何在 Apache Flink 中将作业分配给 TaskManager



嗯,基本上我知道分配工作的整个过程:

  1. 在 JobClient 上生成 StreamGraph;
  2. 在JobClient上生成JobGraph;
  3. 将 JobGraph 发送给 JobMaster 以生成 ExecutionGraph;
  4. 将 ExecutionGraph 发送到 TaskManager 以生成物理执行 计划。

但我不知道到底送的是什么东西。例如,当JobMaster将ExecutionGraph发送到某个任务管理器时,ExecutionGraph到底是什么?它是一个文件吗?某种溪流?还是别的什么?

如果是文件,如果文件太大怎么办?大小有限制吗?

如果是流,如果发送流花费太多时间怎么办?超时是否有一些限制?

作业管理器不发送执行图。在我看来,执行图是任务执行的逻辑视图(即操作员链的并行实例,又名任务,插槽共享任务组(。

作业管理器搜索要分配给槽共享组的可用任务槽。这些槽共享组中的任务将发送到具有相应槽的任务管理器。之后,这些任务在不同的线程中运行。

此外,作业管理器和任务管理器之间的任何类型的消息传递都是由 Akka 完成的。

相关内容

  • 没有找到相关文章

最新更新