[Hadoop 2.x] Yarn

Yarn是个集群资源管理系统 (资源包括CPU, IO, Memory)(也可以理解我一个分布式的操作系统,可以执行不同的application)

Resource Master - 资源管理
Application Master - 任务管理

  1. Yarn把资源管理和任务管理隔离开来,减少单点(master)的负担。Application作为单独的进程运行在data node上监视application (job)的运行。原来的job tracker既要管理资源,又要监视任务,现在把任务管理交给了Application Master, 但是Yarn值负责资源管理
  2. 除了MapReduce可以兼容多种application。好处是充分利用资源, 例如,100台机器不用50台跑map reduce, 50台跑spark, 可以在一个集群中使用

Jobt Tracker vs Yarn
[Hadoop 2.x] Yarn

2.x流程
resource manager主要用来监控节点的状态和资源使用情况,根据节点资源使用情况分配资源。
1) client提交任务到Resource Manager
2) Resource Manger根据Node manager的节点资源汇报, 找到合适的节点创建Application Master
3) Application Master运行后,再向Resource Manager申请所欲要的资源(执行map reduce的资源
4) Resource Manager再根据Node Manager汇报的资源情况,告诉Application Master在哪里执行container (map reduce)。
5) application master创建执行map reduce task并向Resource Manager汇报执行情况。

  1. TaskTracker相当于Node Manger, 会向Master汇报节点资源使用情况
  2. 1.x, job trakcer会监视task的执行情况, 2.x 交给了application master, 相当于2.x不监视task的状态,交给了application master
  3. Application master是一个特别的container (进程),用来监视job的执行。