Yarn是hadoop2.0之后引入的一个资源管理层,mapreduce也仅是yarn的一种应用模式,按照既定的协议从yarn中申请cpu,内存等资源。
Yarn由五部分组成,recouceManager(RM),nodeManager(NM),ApplicationMaster(AM),容器(container),客户端(client)。
RM:负责集群资源的管理由调度器和应用管理器组成,调度器负责为集群中所有的应用分配资源。
NM:负责本地节点资源管理。
AM:应用的守护进程,负责与RM进行资源协商。应用提交后,RM的调度器和应用管理器协商后得到一个容器用以启动AM,AM启动后通过心跳机制与RM通信目的主要是为应用申请资源。
容器:分配给应用资源的抽象形式。
客户端:一个实例用来向RM提交应用。
MapReduce计算框架在运行时分为两部分,一部分称为MRAppMaster负责管理,其余的全是任务他们都运行在yarn容器中。Yarn容器在hadoop框架中负责资源管,分为ResourceManager和DataManager,ResourceManager在主节点上负责集群资源分配调度,DataManager在从节点上负责单节点的资源管理。
我们通过Hadoopjar执行MapReduce架包( jar文件):
1:首先将架包文件上传到hdfs中,然后再将地址告诉ResourceManager。
2:ResourceManager从地址中拿到jar后会分析其代码,分析后发现这是一个MapReduce程序,然后从集群中的某一个DataManag