MRv1中采用的Master/Slave架构,存在单点故障问题,作为分布式系统,YARN具备高容错性,各个服务组件的容错机制如下:
- ApplicationMaster容错:RM监控AM的运行状态,一旦发现它运行失败或者超时,就会重新分配资源并启动它,启动之后AM内部的状态如何恢复由自己保证,比如MRAppMaster在作业运行过程中将状态信息动态记录到HDFS上,一旦出现故障重启后,它能够从HDFS读取并恢复之前的运行状态,减少重复计算带来的开销。
- NodeManager容错:NM超时没有心跳,则RM认为它死掉,会将上面的Container状态置为失败,并告诉对应的ApplicationMaster,以决定如何处理这些Container中运行的任务
- Container容错:如果AM在一定时间内未启动分配到的Container,则RM会将该Container状态置为失败并回收它;如果一个Container在运行过充中,因为外界原因导致运行失败,则RM会转告对应的AM,由AM决定如何处理
- RM容错:至关重要,接下来介绍
Hadoop HA基本框架
为了解决单点故障问题,Hadoop2.0中的HDFS和YARN均采用了基于共享存储的HA解决方案,即Active Master不断将信息写入到一个共享存储系统,而Standby Master则不断读取这些信息,以与Active Master的内存信息保持同步,当需要主备切换时,选中的Standby Master需先保证信息完全同步后,再将自己的角色切换至Active Master。
常用的共享存储系