Yarn运行原理了解

YARN运行原理

yarn的前世今生

首先在hadoop1.0版本中,存在的最大问题就是资源管理的问题!

随着技术的发展,人们已经不在满足hadoop集群中只使用mapreduce一个计算框架,人们更希望有一套合理的管理机制来控制整个集群的资源。

在hadoop中启动yarn的命令: ./start-yarn.sh

  1. RescoueceManager 是全局资源管理器
  2. NodeManager 是节点资源任务管理器

我们可以理解成RM和NM就是Yarn

Yarn的基本架构

Yarn在总体设计思想上和HDFS差不多的都是主从关系(Master/Slave)

在Hdfs中NameNode是主节点, datanode是从节点

在Yarn中RM是主节点,NM是从节点

详解RM的组成部分

  1. 调度器: Scheduler
    1. 就是为了让我们每一个节点都利用起来,合理的分配和调度的管理器,值得注意的是,调度器真的是一个纯调度器,它不负责从事任何具体的应用程序相关的工作
    2. 调度器分为三种:容量调度器、公平调度器、队列调度器
  2. 应用程序管理器:Application Manager
    1. AM主要是负责接收client端传输的job请求,为应用程序分配第一个Container(容器/资源池)来运行我们第一个Application Master, 还有就是负责监控Application Master, 并且在失败的时候重启 Application Master
    2. 当我们正常提交一个MR任务的时候,我们会在后台jps查看进程的时候会多了一个MRAppMaster的进程:ApplicationMaster
    3. 首先ApplicationMaster就是一个java程序,只不过他的类名:MRAppMaster
    4. ApplicationMaster负责监控MAP任务和reduce任务,用户提交的每一个程序都会产生一个AM, 这个AM就是负责整个任务的管理者
  3. Application Master主要功能
    1. 与RM调度器RS协商获取执行资源
    2. 与NM通信通信,以启动任务、停止任务;其中涉及到一个东西:资源池/容器(contaniner)
    3. 监控所有旗下的任务的执行状态,如果失败则会重启任务来申请资源
  4. Contaniner
    1. contaniner是Yarn中的抽象资源,它封装了某个节点的多维度的资源:如内存,CPU,磁盘,网络,IO
    2. 资源池主要是将节点的资源切分出来组成一个可以单独运行任务(的容器用来运行任务
    3. Yarn运行原理了解_第1张图片

yarn为什么诞生?

yarn干什么用的?

你可能感兴趣的:(数据开发,T)