NOSQL数据仓库之离线计算框架MapReduce(Yarn)
一、MapReduce
https://www.cnblogs.com/laowangc/p/8961946.html hadoop学习笔记(十):MapReduce工作原理(重点)
二、Yarn
hadoop1.x中负责资源和作业调度的是MapReduce,hadoop2.x版本后,MapReduce只专注于计算,资源和作业的调度由YARN来负责。
Yarn(MP) 框架可以分为(Client,Server,文件系统),五个实体:
1.第一部分:客户端
2.第二部分:Yarn
ResourceManager和NodeManager对应实体的物理节点,分别映射到yarn的主节点和计算节点。
2.1 Resource Manager(资源管理器):
功能由ApplicationManager和Scheduler协调完成。Yarn主节点,从节点nodemanager.
2.1.1 ApplicationManager:
1.接收客户端提交的job,job的生命周期的管理者,负责整个job执行过程的监控,负责调度 mapreduce 任务。
2.ApplicationManager会判断启动ApplicationMaster所需的资源,Secheduler根据调度算法在某个NodeManager上启动ApplicationMaster。
2.1.2 Scheduler:
调度ApplicationManager提交的任务,仅提供一个调度算法,不提供失败重启和任何监控功能。
2.2 Node Manager(节点管理器):
NodeManager对应集群中的计算节点,功能仅只是抽象本节点的资源(如cpu,内存,磁盘,网络)并且定时向Secheduler汇报。
启动和监视集群中每个节点的计算容器。
Container是Yarn里面资源分配的基本单位,具有一定的内存以及CPU资源。我们的应用在工作的时候,需要消耗内存和CPU,故当YARN收到application申请,则会根据application申请的资源,分配Container。
在Yarn的NodeManager节点上,会将机器的CPU和内存的一定值抽离出来,抽离成虚拟的值,然后这些虚拟的值在根据配置组成多个Container,当application提出申请时,就会分配相应的Container资源。
2.4 ApplicationMaster:
Yarn管理资源,ApplicationMaster管理任务。
ApplicationMaster启动之后会计算job所需要的资源,并且向Secheduler申请这些资源,NodeManager分配完成这些任务的container之后,会由ApplicationMaster来监控这些container的状态,如果失败就回收资源重新申请,
当任务执行完成之后汇报Secheduler,Secheduler回收资源并且向ResourceManager返回执行结果,整个任务处理完毕。
Mapreduce Task
链接:https://www.jianshu.com/p/5dcc81c4e1cb