YARN 的前世今生:
hadoop1.x版本中最大的问题就是资源问题
对数据的处理和资源调度主要依赖MapReduce完成
只能运行MapReduce程序
JobTracke负责资源管理和程序调度,压力较大
hadoop2.x版本添加yarn
主要负责集群资源管理
YARN概述
YARN 核心思想是将资源管理和任务的监控和调度分离
通用的资源管理系统,可为不同的应用(MapReduce,spark )
YARN的基本架构核心组件
YARN 的架构是master、slaves的主从架构
YARN架构核心组件-ResourceManager
ResourceManager组成
ResourceScheduler->资源调度器,根据节点的容量、队列情况,为应用程序分配资源
Application Manager->应用程序管理器,负责接受Client端传输的job请求
ResourceManager功能
处理客户端请求
监控NodeManager
启动和监控ApplicationMaster,进行必要的重启
整个系统的资源分配和调度
YARN架构核心组件-ApplicationMaster
ApplicationMaster功能
每个应用程序对应一个ApplicationMaster,负责单个应用程序的管理
负责数据切分
为应用程序向ResourceManager申请资源(Container),并分配内部任务(MapTask和ReduceTask)
与NodeManager通信来启动/停止任务,Task都是运行在Container中的
负责任务的监控和容错,当某些Task运行出错,进行容错处理
yarn 的工作机制
YARN的资源调度器
目前Hadoop作业调度器有三种
FIFO:先进先出调度器
Capacity Scheduler:容量调度器
Fair Scheduler:公平调度器
默认的作业调度器可以在yarn-default.xml文件中查看,属性如下
yarn.resourcemanager.scheduler.class
Hadoop版本2.6.0-cdh5.14.2的默认调度器是公平调度器