Yarn

YARN(Yet Another Resource Negotiator),另一种资源协调器,在Hadoop 2.x之后出现,是一种新的Hadoop资源管理器。

将资源管理和任务调度工作分离开,减少MR中JobTracker压力。
MR缺陷:
1.Job Tracker存在单点故障。
2.JR任务多,内存开销大,不能合理跟踪TaskTracker,可伸缩性差。
3.一种类型一个集群,集群资源利用率低,不支持多种框架。
YARN优势:
1.资源管理与任务调度分开,减轻单点压力,更合理。
2.向后兼容性,MR.1作业无需修改即可运行在YARN上。
3.支持多个框架,MR,Storm,Spark等。
4.框架升级更容易,被封装,升客户端即可。
5.集群资源利用率更高,一个框架未用,资源框架使用。
YARN架构:
avatar
1个RM + N个NM
Resource Manager:负责整个集群的资源管理和分配:

  • 处理Client请求。
  • 启动式监控AM。
  • 监控NM。
  • 资源管理。

Application Master:用户提交的每个应用程序都包含一个AM:

  • 数据切分。
  • 为应用程序向RM申请资源。
  • 任务的监控与容错。
  • 与NM用心启停task,task运行在container。

Node Manager:管理YARN集群每个节点,监控节点健康:

  • 单个节点的资源管理,任务调度。
  • 定期向RM回报节点资源使用情况和容器状态。
  • 接收饼处理AM的container启停等请求。

Container:资源抽象,AM向RM申请资源时,RM为AM返回的资源是使用Container表示的。YARN为每个任务分配一个Container:

  • 对任务环境进行封装。封装CPU,内存等多维度的资源及环境变量等。

YARN执行过程:
avatar
1.Client向Yarn提交Job,找RM分配任务。RM开启一个Container,在Contain中运行一个APP Manager。
2,3.App Manager找一台NM启动App Master,进行任务计算。
4.App Master向App Manager申请资源。
5.RS将资源封装发给App Manager申请资源。
6.App Master将获取的资源分配各各个NM。
7.NM得到资源执行任务Map task,reduce task。
8.将结果反馈给App Master。
9.App Master将任务直观性结果反馈给App Manager。