什么是Flink任务管理器中的槽?


0

在apacheflink系统 schema中,我们有客户机进程、主进程(JobManager)、 job 进程(TaskManager)的概念。

上面的每个进程基本上都是一个JVM进程。TaskManager执行单个任务,每个任务在线程中执行。所以这个管理器到进程或任务到线程的 map是明确的。

TaskManager中的插槽呢?插槽 map到什么位置?

1 答案


0

Flink中的任务槽是资源管理和调度的主要单元。

当调度程序(Flink Master的一部分)接收到要执行的 job时,它会查看 job的执行图,以查看执行该 job所需的插槽数,并从资源管理器中请求这些槽位。然后资源管理器将尽其所能获得这些插槽(有一个Yarn资源管理器、一个Kubernetes资源管理器等)。例如,Kubernetes资源管理器将 root据需要启动新的taskmanagerpods来创建更多的插槽。

每个任务管理器都配置了一定数量的内存和CPU cores,以及为执行任务提供的一些插槽。这些插槽共享任务管理器可用的资源。

通常,从 job的一个平行部分分配任务,并且

下图显示了一个简单 job的执行图,其中source、map和window操作符的并行度为2,sink的并行度为1。源和 map已经 chaining接到一个任务中,因此这个执行图包含总共5个需要分配给任务槽的任务。

下一个图显示了两个TMs,每个TMs都有一个插槽,您可以看到调度器如何在这两个插槽中分配了5个任务。


我来回答

写文章

提问题

面试题