Opportunistic containers in Hadoop3.x/机会主义

一旦有资源,容器就会运行
应用程序所需的资源在满足的情况下,应用程序就会运行
任务的有效性会被保证,但是对资源的利用率不高

  • Heartbeat delay
  • 心跳信息的延迟,运行的容器结束后,不能立即发送自身信息,必须得等待下一次心跳信息才能发送给资源管理器,而这期间就有了信息延迟,在这期间,机器中的资源就会产生浪费
  • Resource allocation and utilization/资源管理器的分配机制

为了解决这两个问题,Hadoop在3.x版本上更新了“机会主义容器”
机会主义的容器优先级是小于其他容器的

  • Centralized/集中
  • YARN集中分配容器,如果是机会主义容器,是由Opportunistic containerAllocator分配,如果是确保资源容器,则是Application master server分配
  • Distributed/分布式
  • 当application master分配时,则会访问AMRMP roxyService代理
  • 默认使用集中式

配置机会主义容器

  • YARN中进行启用
  • 在配置中可以更改启动方式
  • 分配内存的限制

docker containers in YARN/YARN中的docker容器

  • YARN对docker容器中的支持,可以在YARN中启动docker镜像
  • 在容器当中运行同一个程序的不同版本,可以完全进行隔离
  • containerExecutor/容器执行器

    • DefaultContainerExecutor
    • LinuxContainerExecutor
    • WindowsContainerExecutor
    • DocketContainerExecutor
    • 查询节点API信息
  • YARN可以利用节点管理器启动监控管理清除docker容器
  • 局限性:启动docker容器后就不能在启动别的,这样效率不高,性能打折扣
  • 在后续版本当中,可能会删除对docker的支持
最后修改:2021 年 04 月 21 日 09 : 49 AM
如果觉得我的文章对你有用,请随意赞赏