大数据 07 Hadoop之YARN

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihaogn/article/details/81974387

1 概述

YARN(Yet Another Resource Negotiator),通用的资源管理系统,为上层应用提供统一的资源管理和调度。

2 产生背景

MapReduce1.x存在的问题:单点故障&节点压力大不易扩展
资源利用率&运维成本

Hadoop1.x:

MapReduce:Master/Slave架构,1个JobTracker带多个TaskTracker

JobTracker:

  • 负责资源管理和作业调度

TaskTracker:

  • 定期向JobTracker汇报本节点的健康状况、资源使用情况、作业执行情况;
  • 接收来自JobTracker的命令:启动任务/杀死任务

3 YARN特点

YARN:不同计算框架可以共享同一个HDFS集群上的数据,享受整体的资源调度。

XXX on YARN的好处:

  • 与其他计算框架共享集群资源,按资源需要来分配,进而提高集群资源的利用率。(XXX: Spark/MapReduce/Storm/Flink)

4 YARN架构

这里写图片描述

1)ResourceManager: RM

  • 整个集群同一时间提供服务的RM只有一个,负责集群资源的统一管理和调度。
  • 处理客户端的请求: 提交一个作业、杀死一个作业。
  • 监控我们的NM,一旦某个NM挂了,那么该NM上运行的任务需要告诉我们的AM来如何进行处理。
  • 启动/监控AM。

2) NodeManager: NM

  • 整个集群中有多个,负责自己本身节点资源管理和使用
  • 定时向RM汇报本节点的资源使用情况
  • 接收并处理来自RM的各种命令:启动Container
  • 处理来自AM的命令
  • 单个节点的资源管理

3) ApplicationMaster: AM

  • 每个应用程序对应一个,负责应用程序的管理。
  • 为应用程序向RM申请资源(core、memory),分配给内部task。
  • 需要与NM通信:启动/停止task,task是运行在container里面,AM也是运行在container里面。
  • 任务监控与容错。
  • 数据切分。

4) Container

  • 封装了CPU、Memory等资源的一个容器
  • 是一个任务运行环境的抽象

5) Client

  • 提交作业
  • 查询作业的运行进度
  • 杀死作业

猜你喜欢

转载自blog.csdn.net/lihaogn/article/details/81974387