加载中...
第4章 关于YARN
发表于:2021-08-26 | 分类: 《Hadoop权威指南》读书笔记
字数统计: 424 | 阅读时长: 1分钟 | 阅读量:

首先YARN是什么?

在Hadoop1.0的时候,MapReduce的JobTracker负责了太多工作,接收任务是它,资源调度是它,监控TaskTracker还是它,显然不合理
所以在hadoop2.0的时候就把资源调度的任务分离出来,让YARN接手这个任务
所以YARN就是一个资源调度框架


YARN是怎么运行的呢?

在介绍YARN运行机制之前,首先要了解几个概念:

  • Container:容器,是YARN对资源进行的一层抽象,如把CPU核数、内存等计算资源封装成一个个Container
  • ResourceManager:负责资源调度,整个系统只有一个ResourceManager,例如调度刚刚学的Container
  • NodeManager:是ResourceManager在每台机器上的代理,负责管理和监控Container
  • ApplicationMaster:负责协调运行MapReduce作业,把一个作业拆成多个 task,并向 ResourceManager 申请容器

我们来看一下提交一个作业到YARN中的流程:

我们来具体说说每一步的过程:

  1. 首先 Client 向 Yarn 提交 Application,假设是一个 MapReduce 作业
  2. 然后 ResourceManager 向 NodeManager 申请第一个容器,在这个容器里运行对应的 ApplicationMaster 进程
  3. 然后 ApplicationMaster 把这个作业拆成多个 task ,这些 task 可以在一个或多个容器里运行
  4. 然后向 ResourceManager 申请要运行程序的容器,并定时发送心跳
  5. 申请到容器后,ApplicationMaster 把作业发到对应容器的多个 NodeManager 的容器里去运行,这里运行的可能是 Map 任务,也可能是 Reduce 任务
  6. 运行任务的时候会向 ApplicationMaster 发送心跳,汇报情况
  7. 程序运行完成后, ApplicationMaster 再向 ResourceManager 注销并释放容器资源
上一篇:
第7章 MapReduce工作机制
下一篇:
第3章 关于HDFS
本文目录
本文目录