微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

YARN中容器和资源分配的概念

如何解决YARN中容器和资源分配的概念

我正在阅读 YARN here 中“容器”和“资源管理器”的概念。有以下一行:

Container 是资源分配,也就是成功 ResourceManager 授予特定 ResourceRequest 的结果。一种 容器授予应用程序使用特定数量的权限 特定主机上的资源(内存、cpu 等)。

关于上述内容,假设我有一个 EMR 集群,其中包含以下内容

  1. 2 台 16 核机器,每台机器配备 128GB RAM。
  2. 1 台 32 核机器,256GB RAM(主)。

现在,假设我带着以下问题去 YARN:

  • 我的 spark 执行器需要 10 个内核。
  • 我总共需要 3 个执行者。
  • 我的执行程序需要 80GB 的内存。
  • 我想在客户端模式下运行。

现在,YARN 应该分配容器。容器应该位于单个节点上。那么在上述情况下,我会得到 3 个或 2 个执行者吗?即使移除主节点(从客户端模式开始),我的集群中仍有 32 个内核和 256GB 的 RAM。

基本上,我想问的基本问题是:

  1. 如果我的要求是不能在单个节点上提供 2 个 executor,但在不同的节点上有剩余的核心,这样总和可以分配给一个 executor,那会做吗?如果没有,剩下的核心是不是浪费了?

  2. RAM 是否也会出现与上述类似的情况?

  3. 在客户端模式下,来自 master 的内核和内存是否会分配给一个容器,然后再分配给一个执行器?

  4. 容器能否包含来自不同节点的内核和内存?

  5. 如果我的请求无法满足怎么办?是否授予了某些容器​​或未发生分配?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。