Yarn(Hadoop2.0)学习笔记(一)

2017-12-27  本文已影响0人  武小寺

简介

1.0跟2.0的区别

在Yarn中我们把job的概念换成了application,因为在新的Hadoop2.x中,运行的应用不只是MapReduce了,还有可能是其它应用如一个DAG(有向无环图Directed Acyclic Graph,例如storm应用)。Yarn的另一个目标就是拓展Hadoop,使得它不仅仅可以支持MapReduce计算,还能很方便的管理诸如Hive、Hbase、Pig、Spark/Shark等应用。这种新的架构设计能够使得各种类型的应用运行在Hadoop上面,并通过Yarn从系统层面进行统一的管理,也就是说,有了Yarn,各种应用就可以互不干扰的运行在同一个Hadoop系统中,共享整个集群资源,如下图所示:


yarn

Yarn的特点

Yarn的组件及架构

1.0与2.0比较.jpg
1. ResourceManager:Global(全局)的进程 
2. NodeManager:运行在每个节点上的进程
3. ApplicationMaster:Application-specific(应用级别)的进程
- *Scheduler:是ResourceManager的一个组件*
- *Container:节点上一组CPU和内存资源*

Yarn的工作流程

工作流程

Container(类似 1.0里面的 slot,但是slot是物理层,container是逻辑层)

ResourceManager

Application Master

Node Manager

- 接收ResourceManager的请求,分配Container给应用的某个任务
  - 接受并处理来自ApplicationMaster的container启动停止等各种请求
- 和ResourceManager交换信息以确保整个集群平稳运行。ResourceManager就是通过收集每个NodeManager的报告信息来追踪整个集群健康状态的,而NodeManager负责监控自身的健康状态。
- 管理每个Container的生命周期
- 管理每个节点上的日志
- 执行Yarn上面应用的一些额外的服务,比如MapReduce的shuffle过程

当一个节点启动时,它会向ResourceManager进行注册并告知ResourceManager自己有多少资源可用。在运行期,通过NodeManager和ResourceManager协同工作,这些信息会不断被更新并保障整个集群发挥出最佳状态。

NodeManager只负责管理自身的Container,它并不知道运行在它上面应用的信息。负责管理应用信息的组件是ApplicationMaster.

架构

Yarn最基本的设计思想是将JobTracker的两个主要功能,即资源管理和作业调度、监控分成两个独立的进程。
在该解决方案中包含两个组件:

问题

上一篇 下一篇

猜你喜欢

热点阅读