YARN学习笔记


一,YARN概述

  YARN是一个分布式资源管理平台,负责为运算程序提供服务器的运算资源(cpu资源和内存资源),相当一个分布式的操作系统平台,而MapReduce等运算程序相当于运行于操作系统上的应用程序。

  YARN并不清楚用户提供的程序的运行机制,只提供运算资源的调度(用户程序向yarn申请资源,yarn就负责分配资源)。

  YARN中的主管角色为ResourceManager,提供资源的角色为NodeManager。

  spark,storm等运算框架都可以整合在YARN上面运行,只要有符合YARN规范的资源请求机制即可。

  YARN就成为一个通用的资源调度平台,从此,企业中以前存在的各种运算集群都可以整合在一个物理集群上,提高资源利用率,方便数据共享。

二,YARN与MapReduce

  YarnRunneryarn的客户端程序)在客户端机上运行 ,通过RPC调用去向ResouceManager申请一个mr程序的job,返回一个jobid和提交资源用的stagingdir,再提交给HDFS mr程序的相关资源文件,返回给ResouceManager一个job资源文件提交完毕的通知,ResouceManager初始化Task任务。MRAppmaster领取任务,在运算出需要几个MapTask(多少资源),返回给ResouceManager分配资源(相应的NodeManager)。MRAppmaster得到相应的资源,运算任务在各个NodeManager开始执行。在MapTask任务的执行过程中,Nodemanager无时无刻在监控着任务的进度,在所有MapTask完成后,NodeManager会回收资源,再去分配给新的任务。


原文地址:https://www.cnblogs.com/songweideboke/p/9801612.html