0
点赞
收藏
分享

微信扫一扫

Yarn的资源调度深度解读


Yarn的介绍

1、Yarn是Hadoop2.x版本引入的一个新组件
2、Yarn本身没有资源,是来管理集群资源,为分布式计算提供合理的资源分配方案
3、Yarn可以让集群的资源能够统一,高效率给分配
4、Yarn本身也是一个集群:
主节点:ResourceManager
从节点:NodeManager

Hadoop组件之间的关系

Yarn的资源调度深度解读_App

架构图

Yarn的资源调度深度解读_hadoop_02

角色

  • Client
    客户端:
    1、作用就是提交任务
    2、既可以提交MapReduce任务,也可以提交Spark任务
  • ResourceManager
    1、ResourceManager负责整个集群的资源管理和分配,是一个全局的资源管理系统。
    2、NodeManager以心跳的方式向ResourceManager汇报资源使用情况(目前主要是CPU和内存的使用情况)。
    3、ResourceManager会根据任务的请求为其分配资源,但是不负责具体任务的监控、追踪、运行状态等工作。
    任务的状态由App Master进程来监控
  • NodeManager
    1、NodeManager是每个节点上的资源和任务管理器,它来监控每台机器的资源使用情况
    2、NodeManager定时向ResourceManager汇报本节点资源(CPU、内存)的使用情况和Container的运行状态。
    3、NodeManager接收并处理来自ApplicationMaster的Container启动、停止等各种请求。
  • Container
    0、该组件只有在执行任务的时候才会启动,jps是看不到的
    1、Container是一个资源容器
    2、Container可以理解为一个类,用来封装资源信息,相当于批条或者银票
    class Container{
    int 内存;
    int cpu核数;
    String host;
    }

– 批条或者银票
ArrayList
{
new Container(1G, 2核cpu,node1);
new Container(1G, 2核cpu,node2);
new Container(1G, 1核cpu,node3);
}

  • ApplicationMaster ( App Master)
    1、该组件只有在执行任务时,才会启动
    2、客户端每提交一个任务,Yarn会自动的启动一个App Master
    3、App Master就相当于一个任务的监工,或者包工头,负责整个Job任务执行状态的监控

Yarn执行任务的流程

Yarn的资源调度深度解读_java_03


举报

相关推荐

0 条评论