hadoop-yarn

yarn架构

ResourceManager
	组成
		Resource Scheduler
		Application Manager
	功能
		处理客户端请求
		监控NodeManager
		启动和监控ApplicationMaste,进行必要的重启
		整个系统的资源分配和调度

NodeManager
	本节点上的资源管理和任务管理
	功能
	定时向ResourceManager汇报本节点上的资源使用情况和各个Container的运行情况
	接收和处理来自ResourceManager的Container启动和停止的各种命令
	处理来自ApplicationMaster的指令,比如启动MapTask和ReduceTask指令

ApplicationMaster
	每个应用程序对应一个ApplicationMaster,负责单个应用程序的管理
	功能
		为应用程序向ResourceManager申请资源(Container),并分配内部任务(MapTask和ReduceTask)
		与NodeManager通信来启动/停止任务,Task都是运行在Container中的
		负责任务的监控和容错,当某些Task运行出错,进行容错处理

Container
	Container是YARN中的资源抽象,封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等
	Container类似于一个虚拟机,可以在上面执行任务

yarn执行流程

1.作业提交

(1)client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。

(2)client向ResourceManager申请一个作业Id。

(3)ResourceManager给Client返回该job资源的提交路径(HDFS路径)和作业Id,每一个作业都有一个唯一的Id。

(4)Client发送jar包、切片信息和配置文件到指定的资源提交路径。

(5)Client提交完资源后,向ResourceManager申请运行MrAppMaster(针对该job的ApplicationMaster)。

2.作业初始化

(6)当ResourceManager收到Client的请求后,将该job添加到容量调度器(Resouce Scheduler)中。

(7)某一个空闲的NodeManager领取到该job。

(8)该NodeManager创建Container,并产生MrAppMaster。

(9)下载Client提交的资源到本地,根据分片信息生成MapTask和ReduceTask。

3.任务分配

(10)MrAppMaster向ResouceManager申请运行多个MapTask任务资源。

(11)ResourceManager将运行MapTask任务分配给空闲的多个NodeManager,NodeManager分别领取任务并创建容器(Container)。

4.任务运行

(12)MrAppMaster向两个接收到任务的NodeManager发送程序启动脚本,每个接收到任务的NodeManager启动MapTask,MapTask对数据进行处理,并分区排序。

(13)MrAppMaster等待所有MapTask运行完毕后,向ResourceManager申请容器(Container),运行ReduceTask。

(14)程序运行完毕后,MrAppMaster会向ResourceManager申请注销自己。

(15)进度和状态更新

YARN中的任务将其进度和状态(包括counter)返回给应用管理器, 客户端每秒(通过mapreduce.client.progressmonitor.pollinterval设置)向应用管理器请求进度更新, 展示给用户。可以使用YARN WebUI查看任务执行状态。

5.作业完成

除了向应用管理器请求作业进度外, 客户端每5分钟都会通过调用waitForCompletion()来检查作业是否完成。时间间隔可以通过mapreduce.client.completion.pollinterval来设置。作业完成之后, 应用管理器和container会清理工作状态。作业的信息会被作业历史服务器存储以备之后用户核查。

yarn资源调度器

FIFO:先进先出调度器
FIFO 把应用按提交的顺序排成一个队列,这是一个先进先出队列,在进行资源
分配的时候,先给队列中最头上的应用进行分配资源,待最头上的
应用需求满足后再给下一个分配

在这里插入图片描述

Capacity Scheduler:容量调度器
支持多个队列,每个队列可配置一定的资源量,每个队列都采用
 FIFO 调度策略。支持共享集群,但每个队列在无job时处于资源浪费状态

在这里插入图片描述

Fair Scheduler:公平调度器
支持多队列,多用户,每个队列中的资源量可以配置,同一队列中的作业公
平共享队列中所有资源。每当有新job提交时,会享受当前资源的一半。

在这里插入图片描述

yarn常用命令

-提交任务
	hadoop jar

-查看正在运行的任务
	yarn application -list

-杀掉正在运行的任务
	yarn application -kill 任务id

-查看节点列表
	yarn node -list
	
-查看节点状态
	yarn node -status 节点ID
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值