Yarn理解

Yarn是Hadoop2.0框架重构之后的框架,之前的Hadoop1.0没有
Hadoop 1.0存在的缺陷
在这里插入图片描述

Hadoop1.0 与Hadoop2.0的区别
在这里插入图片描述

在这里插入图片描述
ResourceManager(RM)代替集群资源管理器
**ApplicationMaster(AM)**代替一个专用且短暂的Job Tracker(任务管理)
**NodeManager(NM)**代替TaskTracker
总结:重构的思想:将JobTracker两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度/监控

Yarn架构图
在这里插入图片描述
在这里插入图片描述
R M
1.RM处理客户端请求,接收JobSubmitter提交的作业,(按照作业的上下文(Context)信息run.sh提交的参数,以及NodeManager收集来的状态信息,启动调度过程,分配一个Container作为APP Master
2.RM拥有为系统中所有应用资源分配的决定权,是中心服务,做的事情就是调度、启动每一个Job所属的Application,另外监控Application的存在情况
3.与运行在每个节点上的NM进程交互,通过心跳通信,达到监控NM的目的
4.RM有一个可插拔的调度器组件Scheduler
***Scheduler是一个纯碎的调度器:
不负责应用程序的监控和状态跟踪(AM负责)
不保证应用程序失败和硬件失败情况下对Task的重启(AM负责)

NM
1.是Slaver进程,类似TaskTracker的角色,是每个机器框架代理
2.处理阿里自RM的任务请求
3.接受并处理来自ApplicationMaster的Container启动、停止等各种请求
4.负责启动应用程序的Container(执行应用程序的容器),并监控他们的资源使用情况(CPU、内存、磁盘、网络),并报告给RM
5.总的来说,在单节点上进行资源管理和任务管理

AM
1.应用程序的Master,每一个应用对应一个AM,在用户提交一个应用程序时,一个AM的轻量型进程实列会启动,AM协调应用程序内的所有任务的执行
2.负责一个Job生命周期内的所有工作,类似旧的JobTracker
3.每一个Job都有一个AM,运行在RM以外的机器上
4.与RM协商资源:
与Scheduler协商合适的Container
5.与NM协同工作与Scheduler协商合适的Container进行Container的监控
6.是一个普通Container的身份运行
7.是任务运行环境的抽象封装,
8.Container只是使用NM上指定资源的权利
9.AM必须向NM提供更多的信息来启动Container
……描述任务的运行资源(内存,CPU),启动命令run.sh 和运行环境

Y a r n 框 架 的 运 行过程
在这里插入图片描述
1.Client请求RM运行一个AP实列
2.RM选择一个Node Manager,启动一个Container并运行AM实列
3.AM根据实际需要向RM请求更多的Container资源
4.AM通过获取到的Container资源执行分布式计算

Yarn容错

1.RM挂掉:单点故障,新版本可以基于Zookeeper实现HA高可用集群,可通过配置进行设置准备RM,主提供服务,备同步主的信息,一旦主挂掉,备立即做切换接替进行服务
2.NM挂掉:不止一个,当一个挂掉了,会通过心跳方式通知RM,RM将情况通知对应AM,AM作进一步处理
3.AM挂掉:若挂掉,RM负责重启,其实RM上有一个RM applicationManager,是AMaster的AManager,上面保存已经完成的Task,若重启AM,无需重新运行已经完成的Task

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值