vlambda博客
学习文章列表

yarn集群学习详解

Yarn是为了协调hdfs与计算框架之间的关系,控制整个集群的资源管理
启动yarn集群后(start-yarn.sh) 会出现两个进程  Resourcemanager(全局资源管理器)  和  Nodemanger (节点资源管理器),正是这个进程 RM 和 NM 组成了yarn



Yarn的架构:

yarn的架构与hdfs类似,也是一种主从关系(Master/Slave) 例如:在hdfs中 namenode是主节点 datanode是从节点  而在 yarn 中 RM 是主节点, NM是从节点




ResourceManager:

RM里面还有两个组成部分:调度器(schedule)  应用程序管理器(Application Manager)


ApplicationManager:

AM 主要负责接收client传输的job请求,为 mapreduce 分配 Container(资源池) 来运行我们的 Application Master,并且监控 Application Master和遇到失败时重启Application Master

注:Resource Manager 管理 Application Manager,Application Manager 管理Applicants Master


Schedule:

Schedule 合理分配和调度的管理器,不负责任何具体的应用程序工作


Application Master 当我们正常提交一个mapreduce任务时,例如 Hadoop jar xxx.jar 命令,我们在后台jps查看进程时,会多出一个MRAppMaster,而这个MRAppMaster就是Application Master   

AM负责监控 map 和 reduce 任务,用户提交的每一个程序(mapreduce),都会产生一个AM,这个AM就是负责整个任务的管理者

client接收到job,AppManager下令让nodemanger开启一个AppMaster,AppMaster向调度器请求资源,开辟map和reduce


ApplicationMaster主要功能:与 RM 调度器 RS 协商获取调度资源

与NM通信,以启动任务,停止任务

监控所有旗下的任务的执行状态(map,reduce),如果失败,则会重新启动任务来申请资源


Contaniner

contaniner是yarn中的资源抽象,他封装了某个节点的多维度资源,如:内存,cpu,磁盘,网络,IO


map,reduce,Appmaster都在contaniner(资源池)里,每个程序都在对应的资源池内


yarn集群运行流程概要图