Yarn在hadoop中的位置
Yarn的优点
- YARN把JobTracker分为ResouceManager和ApplicationMaster,ResouceManager专管整个集群的资源管理和调度,而ApplicationMaster则负责应用程序的任务调度和容错等
- YARN不再是一个单纯的计算框架,而是一个框架管理器,用户可以将各种各样的计算框架移植到YARN之上,由YARN进行统一管理和资源分配
- 对于资源的表示以内存和CPU为单位,比之前slot 更合理
Yarn运行机制
YARN主要由RM、NM、AM和Container等4个组件构成
ResourceManager :
- 处理客户端请求
- 启动和监控ApplicationMaster
- 监控NodeManager
- 资源的分配与调度
NodeManager:
- 管理单个节点上的资源
- 处理来自ResourceManager的命令
- 处理来自ApplicationMaster的命令
ApplicationMaster:
- 为应用程序申请资源并分配给内部的任务
- 任务的监控与容错
Container:
- 对任务运行环境进行抽象,封装CPU、内存等资源
容错
RM:HA方案避免单点故障 AM:AM向RM周期性发送心跳,出故障后RM会启动新的AM,受最大失败次数限制
NM:周期性RM发送心跳,如果一定时间内没有发送,RM 就认为该NM 挂掉了,或者NM上运行的Task失败次数太多,就会把上面所有任务调度到其它NM上
Task:Task也可能运行挂掉,比如内存超出了或者磁盘挂掉了,NM会汇报AM,AM会把该Task调度到其它节点上,但受到重试次数的限制