大数据系统资源管理YARN
Yarn系统原理
Yarn主要就是将JobTracker的两个主要功能分离成单独的组件:资源管理、任务调度/监控
RM,ResourceManager,全局管理
NM,NodeManager,节点管理
AM,ApplicationMaster,单个应用管理 Container,单个任务的资源管理
RM负责分配NM给AM,AM负责把任务发送到NM,每个任务在NM中以Container形式管理
ResourceManager RM
它是Yarn的核心组件
接收客户端任务请求,接收和监控工作节点(NM)的资源情况汇报,负责资源的分配与调度,启动和监控AppMstr
ResourceManager包含两个组件
Scheduler(调度器):通过资源队列将资源分配给一个应用Application;它是先进先出调度,可以包含多个调度队列。
Applications Manager AsM:应用程序管理,负责管理系统中所有的job;包括job的提交、与调度器协商资源来启动ApplicationMaster(AM)和监控(AM)运行状态,并且处理出错情况。
NodeManager NM
是集群中的一个节点管理器
负责节点内Container状态的维护,并向RM保持心跳HeartBeat
Application Master AM
负责一个Job生命周期内的所有工作
AM是一个app的主进程,运行在某个Node上,AM会分派出很多任务Task 每个Task以Container的形式运行
Container
分配给一个Job的资源容器,资源包括:内存,CPU,磁盘,网络等等。
Container功能是在OS核心上构建虚拟执行环境,共享HostOS的基础服务,在Hadoop2中,Container一般是指Java虚拟机的内存隔离,在Hadoop3种,Container支持用户自定义资源类型,不再局限CPU和内存的资源管理
Job分解为MapTask和ReduceTask,因为有Container隔离,使得MapTask和ReduceTask可以在一台服务器上混合运行
Yarn的运行架构
1.客户端向RM(AsM)提交一个job
2.RM(AsM)分配一个NM,并通知NM为这个job做初始化
3.NM创建Container并启动job相应的AM,然后通知RM
4.RM和AM交互,AM获取相应的资源,如果在同一个NM上获取资源不足,AM可以要求RM在其他NM创建Container并装载资源。
5.AM启动MapTask和ReduceTask进程,执行任务
6.任务运行中,AM定期向AsM汇报,跟踪任务状态