包含标签 YARN 的文章

YARN原理分析

RPC协议,客户端<->RM,RM<->NM,RM<->AM,AM<->NM,ADMIN<->RM。使用了reactor模式,类似tomcat和jetty,也使用了异步事件处理模式。RM 内部的模块:用户交互的Web服务模块、NM管理模块、AM管理模块、application管理模块、状态机管理模块、安全管理模块、资源分配模块;其中包括ApplicationMasterService、AMLivelinessMonitor;状态机包括:RMApp 状态机、RMAppAttempt 状态机、RMContainer 状态机、RMNode 状态机。 资源调度体系:FIFO、Capacity Scheduler、Fari Scheduler;第一层,RM 中的资源调度器将资源分配给各个 AM、第二层,AM 再进一步将资源分配给它内部的各个任务;资源抢占流程、资源计算方式。层级管理方式:子队列,可以嵌套、最少容量,可以使用父队列的容量比、调度器有限选择当前资源使用率最低的、最大容量、用户权限管理。NodeManage内部模块:NodeStatusUpdater、ContainerManager、ContainerExecutor、NodeHealthCheckerService、DeletionService、Security、WebServer。分布式缓存,将应用所需的资源下载到本地再运行:public、private、application三个可见性;应用结束后会自动上传日志到HDFS,之后由JobHistory 负责清理。NM内部包括:Application 状态机、Container 状态机、LocalizedResource 状态机。container启动包括:资源本地化、启动(LinuxContainerExecutor cgroup管理)、资源清理

阅读全文