大数据学习之路,yarn的介绍

Posted MC柱柱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据学习之路,yarn的介绍相关的知识,希望对你有一定的参考价值。

yarn 资源调度分配

Mapreduce on yarn

yarn主要的模块

ResourceManager(RM)

yarn的资源控制框架的中心模块,负责集群中所有的资源的统一管理和分配。

ResourceScheduler(调度器)

根据各个应用程序的资源需求,进行分配。

Applications Manger(应用管理器)

负责监控或跟踪AM的执行状态。

NodeManger(名称节点,简称NM)

是ResourceManager每台机器上的代理,负责容器的管理,并监控他们的资源使用情况(CPU,内存,磁盘,网络等等)以及向RM提供这些资源的使用汇报

ApplicationMaster(AM)

yarn中每个应用都会启动一个AM,负责向RM去申请资源。请求NameNode启动container,并告诉container需要做什么。

container(容器)

这是一个虚拟的一个概念,yarn中所有应用都是在container之上运行的,包括applicatioMaster;
1.container是yarn中资源的抽象,它封装了某个节点上一定的资源(CPU,内存,磁盘,网络等)
2.container由AM向RM申请,由RM中的ResourceScheduler分配给AM
注:
1.运行AM的container
2.运行各类任务的container,由AM向RM申请的

MapReduce on yarn


1.client向RM提交应用程序,其中包括AM主程序,启动AM的命令,用户的程序(wordcount)
2.RM为该应用分配第一个container,并与NameNode通信,要求NameNode在这个container中启动AM
3.AM首先向RM注册,这样用户可以通过RM来查看程序状态
4.AM通过RPC协议向ResourceScheduler申领资源
5.一旦AM申领到了资源,与NameNode通信,要求NameNode启动任务。
6.NameNode为任务设置好运行环境(环境变量,jar包等等),将这个任务的启动命令写到一个脚本中,并通过脚本触发启动任务(wc.sh hadoop jar share /…)
7.各个container的Task(Map Task,Reduce Task),通过RPC向AM进行进度和状态汇报,以便AM随时可以掌握任务的运行状态失败的时候,也会重启container任务。
8.应用程序运行完成后,AM向RM申请注销和关闭
总的来说:1-4步启动ApplicationMaster,领取资源;5-8步运行任务,直至任务完成。

MapReduce on yarn
Spark on yarn

引申出的其他面试题
1.AM在哪个进程所在的节点运行?
答:NM
2.AM要申请container吗?向谁申请的?要向RM申请的
答:
3.一个作业,第一个container容器运行什么
答:
理想情况下,我们应用对yarn资源的请求,应该立刻被满足,但是实际上,资源有限。特别是很忙的集群,比如说1-3点,1.05开始运行,1.40才实际上开始运行,任务很多,需要等待。

yarn中负责分配资源的就是Scheduler

调度本身就是一个大难题,很难找到完美的解决方案,所以yarn提供了三种调度器:

1.FIFO Scheduler

FIFO =first in first out 队列
这种调度器把应用按顺序排成一个队列,先进先出的队列,在进行资源分配的时候,先给队列中最头部的应用分配资源
问题:大的应用可能会占用所有的资源,造成阻塞,不适合集群

2.Capacity Scheduler

专门有一个队列来运行小任务,但是为小任务专门设置的队列会占用一定的集群资源,导致大任务的执行时间会落后于FIFO;

3.Fair Scheduler

不需要预先占用一定资源,动态调整,比如第一个是大任务,且只有这个大任务在运行,那么把所有资源都给它,然后第二个小任务提交了,Fair Scheduler就会分配一半资源给小任务,公平的共享资源,小任务跑完了,还是会把所有资源给到大任务。

MapReduce

主要运行的语言:java SQL
" easily writing applications"轻松编写应用程序
对于任何容错,如何进行RPC通信等,开发人员不再关注,关注我们业务逻辑就可以,这方面来讲,easily业务逻辑+MR框架自带的内置的组件=》分布式应用程序开发,但是呢 用MR来做开发,很麻烦,相较于Spark

MapReduce-适用/不适用场景

适用:离线、批处理
不适用:实时计算
Map:映射 把一个任务拆解成多个
Reduce:聚合 把拆解开的任务做最后的聚合操作

以上是关于大数据学习之路,yarn的介绍的主要内容,如果未能解决你的问题,请参考以下文章

2021年大数据Hadoop(二十五):YARN通俗介绍和基本架构

大数据学习之路

大数据学习之路-hdfs

2021年大数据Hadoop(二十七):YARN运行流程

Hadoop学习之路Yarn资源调度系统详解

YARN 在快手的应用实践与技术演进之路