Yarn
yarn是一个资源管理、任务调度的框架。主要包含三个模块:resourceManger、nodeManger、ApplicationMater。
-
resourceManger:负责所有资源的监控、分配和管理;
-
ApplicationMater: 负责每一个具体应用程序的调度和协调;
-
nodeManger: 负责每一个节点的维护
- 定期地向RM汇报本节点上的资源使用情况和各个Container的运行状态
- 接收并处理来自AM的Container启动和停止请求
-
container: YARN中的资源抽象,封装了各种资源,可称之为容器,包含任务运行时所需的资源(包括内存、硬盘、cpu等)和环境(包含启动命令、环境变量等)
-
yarn有哪些调度器?
- FIFO Scheduler(先来先服务): 先来先服务
- Capacity Scheduler(容量调度器): 有一个专门的队列用来运行小任务,但是为小任务专门设置一个队列会预先占用一定的集群资源,这就导致大任务的执行时间会落后于使用FIFO调度器时的时间.
- FairS cheduler(公平调度器) : 不需要预先占用一定的系统资源,Fair调度器会为所有运行的job动态的调整系统资源
- 公平调度器,就是能够共享整个集群的资源
- 不用预先占用资源,每一个作业都是共享的
- 每当提交一个作业的时候,就会占用整个资源
-
yarn的执行流程?
- client向yarn提交job,首先找ResourceManager分配资源
- ResourceManager开启一个Container,在Container中运行一个Application manager
- Application manager找一台nodemanager启动Application master,计算任务所需的计算
- Application master向Application manager(Yarn)申请运行任务所需的资源
- Resource scheduler将资源封装发给Application master
- Application master将获取到的资源分配给各个nodemanager
- 各个nodemanager得到任务和资源开始执行map task
- map task执行结束后,开始执行reduce task
- map task和 reduce task将执行结果反馈给Application master
- Application master将任务执行的结果反馈Application manager

浙公网安备 33010602011771号