yarn-container的理解

不管是MR还是spark,分布式并行计算是肯定的
分布式计算意味着多节点,每个节点必须要并行跑很多task(任务),因为如果一个节点只有一个task,那么节点数量远远不够。

让开发者直接操作 cpu和内存显然不合理,要用container抽象。
目前container只包含内存和vcore
每个container的内存(由配置确定:yarn.scheduler.minimum-allocation-mb),
每个container的 vCore (由配置决定:yarn.scheduler.minimum-allocation-vcores)。

节点总的资源上限,决定了节点有几个container
yarn.nodemanager.resource.memory-mb

VCores-Total = 1 (node) * 8 (containers) * 1 (vCore per container) = 8 
Memory-Total = 1 (node) * 8 (containers) * 1228 MB (memory per container) = 9824 MB = 9.59375 GB = 9.6 GB

在这里插入图片描述

容器由 NodeManager 分配和管理,并被它所监控。
容器被 ResourceManager 进行调度。
当 AM 向 RM 申请资源时,RM 为 AM 返回的资源就是用 Container 表示的。RM 只负责告诉AM哪些 Containers是可以用的,实际上AM还需要去找NM请求分配具体的资源来创建 Container。YARN 会为每个任务分配 Container,且该任务只能使用分配的Container中描述的资源(底层是通过jvm参数进行资源隔离,yarn启动进程肯定是有jvm的shell命令的)。
一个 job 或 application 需运行在一个或多个 Container 中。
一个节点会运行多个 Container,但一个 Container 不会跨节点。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值