hadoop学习笔记之Yarn资源调度

概念:yarn全称Yet Another Resource Negotiator(另一种资源调度者),实际叫统一资源管理和调度平台更合适一些

作用:yarn来自MRv1并解决了MRv1的可靠性差、扩展性差、资源利用率低、不支持异构计算框架等缺点。

MRv1缺点:

  1. 可靠性差:MRv1主从架构,一旦主节点JobTracker出现问题,整个集群就挂掉了

  2. 可扩展性:JobTracker负担了资源管理和作业调度的功能,

  3. 资源利用低:MRv1 的Map槽和Reduce槽空间分配比例固定,无法做到动态分配,资源无法充分利用

  4. 不支持异构计算框架:耗费时间太长,处理离线合适

调度器的分类:

  1. 集中式调度器:全局只运行一个中央调度器,所有的调度逻辑和资源请求都由中央调度器完成,这对并发的影响非常大,MRv1就是其中之一

  2. 双层调度器:将调度分为中央调度器和框架调度器,中央调度器管理资源,框架调度器分配作业,yarn就是其中的一种实现

  3. 状态共享调度器:弱化了中央调度器能力,由框架调度器分摊,每个调度器都可以掌握全部的集群信息,类似于负载均衡,可以增加系统的并发性能

yarn框架:

yarn是主从框架,yarn的服务有ResourceManager(RM) 和nodeManager(NM)两类进程组成,任何类型的计算都可以运行在Container中,Application是yarn的二级调度器,也运行在container中

YARN架构图.png

ResourceManager :(RM)

负责集群中所有资源管理和调度,中央调度器角色,他定期收集NM的汇报信息,根据情况将资源分配给二级调度器APP,RM只做一次分配动作,后边的具体细节分配不在参与

NodeManager:(NM)

集群中的单个节点的代理,与RM保持同步,管理Container,启动或者销毁容器,几点健康监控,容器生命周期管理等

ApplicationMaster:(APP)

集群中应用程序的进程,负责向RM申请资源,可以反应出作业的执行情况

yarn工作流程:

  1. 客户端向RM提交自己的应用

  2. RM向NM发出指令,为应用启动container,并在container中启动applicationMaster,

  3. applicationMaster向RM注册

  4. applicationMaster向RM申请资源

  5. applicationMaster向NM请求启动计算任务

  6. NM根据资源大小,在container中启动任务

  7. 各个任务向applicationMaster汇报进度

  8. 程序运行完成后,applicationMaster向RM注销并关闭自己

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容