gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 19:33:02 24 4
gpt4 key购买 nike

在 Apache Flink 系统架构中,我们有 Client 进程、master 进程(JobManager)、worker 进程(TaskManager)的概念。

上面的每个进程基本上都是一个 JVM 进程。 TaskManager 执行单独的任务,每个任务都在一个线程中执行。因此,管理器到进程或任务到线程的映射是清晰的。

任务管理器中的插槽怎么样?插槽映射到什么?

最佳答案

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

当调度程序(Flink Master 的一部分)收到要执行的作业时,它会查看作业的执行图以了解执行它需要多少个槽,并向资源管理器请求这些槽。然后,资源管理器将尽其所能来获取这些插槽(有 Yarn 资源管理器、Kubernetes 资源管理器等)。例如,Kubernetes 资源管理器将根据需要启动新的任务管理器 Pod 以创建更多插槽。

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

通常会为一个槽分配作业的一个并行切片中的任务,并且执行作业所需的槽数通常与具有最高并行度的任务的并行度相同。我说“通常”是因为如果您禁用槽共享(槽共享允许多个任务共享同一个槽),那么将需要更多槽 - 但几乎没有充分的理由来禁用槽共享。

下图显示了一个简单作业的执行图,其中源、映射和窗口运算符的并行度为 2,而接收器的并行度为 1。源和映射已链接在一起形成一个任务,因此该执行图总共包含 5 个需要分配给任务槽的任务。

execution graph

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

task slots

关于apache-flink - Flink 任务管理器中的槽是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61500907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com