如何解决YARN中容器和资源分配的概念
我正在阅读 YARN here 中“容器”和“资源管理器”的概念。有以下一行:
Container 是资源分配,也就是成功 ResourceManager 授予特定 ResourceRequest 的结果。一种 容器授予应用程序使用特定数量的权限 特定主机上的资源(内存、cpu 等)。
关于上述内容,假设我有一个 EMR 集群,其中包含以下内容:
- 2 台 16 核机器,每台机器配备 128GB RAM。
- 1 台 32 核机器,256GB RAM(主)。
现在,假设我带着以下问题去 YARN:
- 我的 spark 执行器需要 10 个内核。
- 我总共需要 3 个执行者。
- 我的执行程序需要 80GB 的内存。
- 我想在客户端模式下运行。
现在,YARN 应该分配容器。容器应该位于单个节点上。那么在上述情况下,我会得到 3 个或 2 个执行者吗?即使移除主节点(从客户端模式开始),我的集群中仍有 32 个内核和 256GB 的 RAM。
基本上,我想问的基本问题是:
-
如果我的要求是不能在单个节点上提供 2 个 executor,但在不同的节点上有剩余的核心,这样总和可以分配给一个 executor,那会做吗?如果没有,剩下的核心是不是浪费了?
-
RAM 是否也会出现与上述类似的情况?
-
容器能否包含来自不同节点的内核和内存?
-
如果我的请求无法满足怎么办?是否授予了某些容器或未发生分配?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。