YARN运行原理浅析

1. yarn的前世今生

yarn为什么会诞生?

Yarn干什么用的?

在Hadoop1.x版本中并没有yarn,直到Hadoop2.x版本才有yarn的诞生。

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

随着技术的发展,Hadoop集群只使用mapreduce一个计算框架,出现了很多计算框架(例如:spark,mars等一系列计算框架)

人们更希望有一套合理的管理机制,来控制整个集群的资源管理,所以,yarn就诞生了。

Yarn可以很好的协调各个计算框架与hdfs的关系。

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

对应的进程是:resourcemanager:全局资源管理器

和nodemanager:节点资源任务管理器

我们可以理解成RM+NM就是yarn。

2. yarn的基本架构

yarn在总体设计思想上和hdfs大体是差不多的,都是主从关系(master/slaver)

在hdfs中namenode是主节点,datanode是从节点

在yarn中resourcemanager是主节点,nodemanager是从节点

3. RM的组成部分

RM里面还有两个组成部分:(Hadoop权威指南)

1)调度器 resource scheduler

为了让每一个节点充分利用,并且合理的分配和调度。

注意:纯调度器,不负责任何具体的和应用程序相关的工作(例如:运行map任务或者reduce任务),也不负责监控程序、跟踪程序,只负责分配资源。

扩展:调度器又分为三种:容量调度器、公平调度器、队列调度器

2)应用程序管理器 application manager(AM)

AM主要负责接收client端传输的job请求,为应用分配第一个container(资源池)来运行第一个application master,还有负责监控application master,并且在遇到失败的时候重启application master。

4. Application Master

当我们正常提交一个mapreduce任务的时候,例如:hadoop jar xxx.jar命令,在后台jps查看进程的时候,会多一个MRAppMaster的进程,其实就是ApplicationMaster

ApplicationMaster其实就是一个Java程序,只不过它的类名是:MRAppMaster,所以进程名就叫做:MRAppMaster。

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

ApplicationMaster主要功能:

  1. 与RM调度器RS协商获取执行资源
  2. 与NM通信,以启动任务、停止任务,其中涉及到:资源池container
  3. 监控旗下所有的任务执行状态(map,ruduce),如果失败,则会重新启动任务来申请资源

5. Container

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

举例:虚拟机

资源池主要是将节点的资源切分出来组成一个可以单独运行任务的容器,用来运行任务,这里的任务就是map任务或者reduce任务。

6. 整个mapreduce提交任务的过程

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AllenGd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值