资源管理器如何将容器分配给提交的作业?

xiozqbni  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(300)

在hadoop1.x中,每个节点上都有几个固定大小的jvm。在新版本中,我们有容器,如果需要的话可以创建容器。
我想知道资源管理器创建的容器上提交的作业的哪些参数?

7nbnzgx9

7nbnzgx91#

基于文档,yarn的设计允许单个应用程序(通过applicationmaster)以共享、安全和多租户的方式利用集群资源。此外,它还了解集群拓扑结构,以便有效地调度和优化数据访问,即尽可能减少应用程序的数据移动。
为了实现这些目标,中央调度器(在resourcemanager中)拥有关于应用程序的资源需求的大量信息,这使得它能够在集群中的所有应用程序之间做出更好的调度决策。这将引导我们找到resourcerequest和生成的容器。
实际上,应用程序可以通过applicationmaster请求特定的资源请求,以满足其资源需求。调度器通过授予满足applicationmaster在初始resourcerequest中列出的要求的容器来响应资源请求。
如您所知,我们有三种Yarn调度方法:
公平调度
容量调度器
先进先出调度程序
它们都有自己的方法来计算应用程序的资源需求。
例如,capacityscheduler有resourcecalculator的概念—一个可插入层,用于通过查看所有已标识的资源来执行分配的数学运算。这包括帮助做出以下决策的实用程序:
此节点是否有足够的每种资源类型的资源来满足此请求?
我可以在这个节点上放置多少个容器,对具有不同可用资源的节点列表进行排序。目前Yarn中有两种计算器可用–defaultresourcecalculator和dominantresourcecalculator。
defaultresourcecalculator在进行计算时只考虑内存。这就是默认情况下在capacityscheduler中执行分配时忽略cpu需求的原因。所有分配的数学运算都简化为只检查资源请求所需的内存和在特定调度周期中查看的节点上可用的内存。

相关问题