Yarn(Hadoop2.0)

前言

百度百科上的定义:

 Yarn介绍

Hadoop集群的资源管理系统(ResourceManger->RM)• 更高级:集群操作系统
    为应用程序提供了基本服务来更好地利用大的、动态的、并行的基础设施资源
• Hadoop2.0对MapReduce框架做了彻底的重构,MapReduce不再是Hadoop的核心组件,而成为Yarn上的一
  种应用框架,称为MRv2(MapReduce的第二版)
• 负责集群的资源管理和调度
• 使得多种计算框架可以运行在一个集群中
• 在Yarn中,Job的概念换成了application

Yarn特点:

– 良好的扩展性、高可用
– 对多种类型应用进行统一管理和调度
– 自带了多种用户调度器,适合共享集群环境
– 相比传统模式,提高了资源利用率、降低运维成本和数据共享成本
 

Hadoop1.0和Hadoop2.0对比


• Hadoop1.0中核心的 JobTracker 和 TaskTracker 不见了,取而代之的是ResourceManager, ApplicationMaster 与 NodeManager 三个部分
• JobTracker 
      ResourceManager(所有应用的共同点) 比如财务
      ApplicationMaster (不同应用单独自己管理) 不同部门不同组的leader
• TaskTracker -----> NodeManager

 

Hadoop1.0中的状况

• JobTracker必须不断跟踪所有TaskTracker和所有map、reduce任务,TaskTracker上的任务都是JobTracker来分配的
• 优化方向:
– 单个 JobTracker 的职责,将部分职责委派给 TaskTracker,因为集群中有许多
  TaskTracker。在新设计中,这个概念通过将 JobTracker 的双重职责(集群资源管理和任务
  协调)分开为两种不同类型的进程来反映
– 不再拥有JobTracker,引入集群管理器RM,负责跟踪集群中的活动节点和可用资源,并将它们
  分配给任务
– 对于提交给集群的每个作业,会启动一个专用的、短暂的 JobTracker 来控制该作业中的任
  务的执行,短暂的 JobTracker 由在从属节点上运行的 TaskTracker 启动

 

Hadoop2.0中的设计

• ResourceManager(RM) 代替集群管理器
• ApplicationMaster(AM) 代替一个专用且短暂的 JobTracker
• NodeManager(NM) 代替 TaskTracker
• 一个分布式应用程序代替一个 MapReduce 作业
重构的根本思想:将 JobTracker 两个主要的功能分离成单独的组件,这两个功
能是资源管理和任务调度 / 监控

Apache Hadoop Yarn的核心概念

再看看这个图:


ResourceManger(RM)

• RM处理客户端请求,接收JobSubmitter提交的作业,按照作业的上下文(Context) 信息
 (比如run.sh脚本中提交的参数),以及从 NodeManager(NM) 收集来的状态信息,启
  动调度过程,分配一个 Container 作为 App Mstr
• RM拥有为系统中所有应用资源分配的决定权,是中心服务,做的事情就是调度、启动每一个
  Job所属的Application、另外监控Application的存在情况
• 与运行在每个节点上的NM进程交互,通过心跳通信,达到监控NM的目的
• RM有一个可插拔的调度器组件Scheduler,还有一个组件Application Manager,负责监
  控、重启Application Master。
  – Scheduler是一个纯粹的调度器:
      不负责应用程序的监控和状态跟踪
      不保证应用程序失败或者硬件失败的情况下对Task的重启

NodeManager(NM)

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

ApplicationMaster(AM)

• 应用程序的Master,每一个应用对应一个AM,在用户提交一个应用程序时,一
个AM的轻量型进程实例会启动,AM协调应用程序内的所有任务的执行
• 负责一个Job生命周期内的所有工作,类似旧的JobTracker
• 每一个Job都有一个AM,运行在RM以外的机器上
• 与RM协商资源
– 与Scheduler协商合适的Container
• 与NM协同工作与Scheduler协商合适的Container进行Container的监控
• 是一个普通Container的身份运行

Container

• 是任务运行环境的抽象封装
• Container只是使用NM上指定资源的权利
• AM必须向NM提供更多的信息来启动Container
• 描述任务的运行资源(节点、内存、cpu)、启动命令和运行环境

 

Yarn框架运行过程

• Client请求Resource Manager运行一个Application Master实例(step 1);
• Resource Manager选择一个Node Manager,启动一个Container并运行Application Master实例(step 2a、step 2b);
• Application Master根据实际需要向ResourceManager请求更多的Container资源(step 3);
• Application Master通过获取到的Container资源执行分布式计算(step 4a、step 4b)。

 

Yarn的容错能力

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值