1. YARN产生的理论基础
hadoop 1 将计算Job划分为JobTracker和TaskTracker,JobTracker通过heartbeat机制与跑计算任务的机器通讯,TaskTracker则要肩负两个责任,一是监视所在服务器的资源,二是监视Task运行状况,通过heartbeat通讯汇报这两种状况。
造成的问题:JobTracker,集中处理请求带来了单点故障,任务请求增加则资源消耗增加,特别是内存。
TaskTracker,只是简单的以Mapreduce的task数目来检测其资源消耗太简单了,无法用CPU和内存作为衡量,会出现OOM;强制划分Map/Reduce slot将造成资源浪费。
2. MR V2的解决之道引出YARN
将JobTracker一分为二,一个是资源管理,一个是任务调度/监控。
资源管理由ApplicationMaster调度、协调,包括MR、DAG任务。ResourceManager与ApplicationMaster可管理用户、机器和进程从而实现对计算的组织。ApplicationMaster结合ResourceManager和NodeManager,ResourceManager调度、启动ApplicationMaster并监控它,NodeManager维护container状态并向ResourceManager保持心跳。ApplicationMaster,一个Job一个,可在ResourceManager之外的机器上负责Job全生命期。
3. 效果
减少了JobTracker的资源消耗
ApplicationMaster可自定制。