hadoop之yarn

1. yarn的组成部分及其作用

在这里插入图片描述

  • ResourceManager(RM):
    1)处理客户端的请求
    2)监控NodeManager
    3)启动或监控ApplicationMaster
    4)资源的分配和调度
  • NodeManager(NM):
    1)管理单个节点(服务器)上的资源
    2)处理RM的命令
    3)处理AM的命令
  • ApplicationMaster(AM):
    1)为应用程序申请资源并给内部分配任务
    2)任务的监控与容错
  • Container:
    yarn中的资源抽象,封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。

2. YARN的工作机制

在这里插入图片描述
1)运行jar包后会调用YarnRunner,YarnRunner会向RM申请一个ApplicationID;
2)RM向客户端返回Application资源提交路径(就是把Client想要干啥放这里);
3)Client会把job运行所需要的资源(split控制需要开启的mapTask的数量,xml资源配置,jar)提交;
4)提交完后,需要向RM申请运行的AM;
5)RM将用户请求初始化为一个Task,放在调度队列中,等待空闲的NM领取;
6)NM领取到Task后会创建一个Container,Container会启动一个AM,AM根据Client提交的split向RM申请运行MapTask的Container;
10)Container被创建后(一个NM可以创建多个Container,同一个Application的Container可以放在同一个NM中),AM会开启MapTask,MapTask开启YarnChild进程,运行结束后,MapTask按分区将运行结果持久化到磁盘;
12)AM向RM申请ReduceTask的Container,和上一步一样执行,执行结束后,AM向RM申请资源回收

3. 作业提交的全过程(HDFS、MR、Yarn的关系)

在这里插入图片描述
客户端Client提交任务到RM,RM接收到任务之后去NM节点开启AM, AM向RM申请资源后开启MapTask。每个mapTask独立工作,各自负责检索各自对应的DataNode,AM向RM申请资源后开启ReduceTask,将Map的结果进行reduce,记录到HDFS, DataNode负责存储,NameNode负责记录,2nn负责备份部分数据。

4. Yarn调度器有哪几种,并介绍一下其中一种

目前,Hadoop 作业调度器主要有三种:FIFO、容量(Capacity Scheduler)和公平(Fair Scheduler)。Apache Hadoop默认的资源调度器是 Capacity Scheduler

容量调度器是yahoo开发的多用户调度器(多用户是指一个队列中既可以有root用户提交的job,也可以有user用户提交的job)。
在这里插入图片描述

  • 特点:
    1)多队列:每个队列可配置一定的资源量,每个队列采用FIFO调度策略。
    2)容量保证:管理员可为每个队列设置资源最低保证和资源使用上限。
    3)灵活性:如果一个队列中的资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的应用程序提交,则其他队列借调的资源会归还给改队列。
    4)多租户:支持多用户共享集群和多应用程序同时运行,为了防止同一个用户的作业独占队列中的资源,该调度器会对同一个用户提交的作业所占资源量进行限定。
  • 算法:
    1)队列资源分配
    优先选择资源占用率最低的队列分配资源(选择queueA,占用20%)。
    2)作业资源分配
    按优先级和提交时间顺序分配资源。
    3)容器资源分配
    先按照优先级分配,再通过机架感知分配

5.Yarn常用命令

1)查看所有Application:yarn application -list
2)根据 Application 状态过滤:yarn application -list -appStates (所有状态:ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED)
3)Kill 掉 Application:yarn application -kill ApplicationId
4)查询 Application 日志:yarn logs -applicationId ApplicationId
5)查询 Container 日志:yarn logs -applicationId ApplicationId -containerId ContainerId
6)列出所有 Application 尝试的列表:yarn applicationattempt -list ApplicationId
7)打印 ApplicationAttemp 状态:yarn applicationattempt -status ApplicationAttemptId
8)列出所有 Container:yarn container -list ApplicationAttemptId
9)打印 Container 状态:yarn container -status ContainerId
10)列出所有节点:yarn node -list -all
11)加载队列配置:yarn rmadmin -refreshQueues
12)打印队列信息:yarn queue -status QueueName

6.Yarn生产环境核心参数

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值