Node Manager
向Resource Manager
发送心跳包。服务器宕机后,Resource Manager
会通知所有受影响的Application Master
。Node Manager
会追踪所有当前服务器上运行的任务。如果有正在进行中的任务被终止,Node Manager
将任务标记为idle
, 并且重启任务Application Master
向Resource Manager
发送心跳包。一旦心跳停止,Resource Manager
重启Application Master
,Application Master
同步执行中任务的信息Resource Manager
容错设计checkpoints
),启动secondary Resource Manager
为了避免消息传输在网络中消耗过多的资源,container
分配请求是通过心跳包传输的的
stragglers
(落后者)straggler
是指集群中执行缓慢的任务。每个阶段,执行最慢的任务,决定了总体的速度。straggler
的原因可能有很多:磁盘损坏、网络拥堵、CPU瓶颈、内存瓶颈
容错设计:
speculative execuation
: 对straggler
另起一份副本执行(repliacted execuation)
。一旦其中一份副本(replica)
执行完成,整个任务被标记为完成。假设job1
、job2
、job3
的完成进度分别为90%
、50%
、10%
。Application Master
会在另一台服务器上运行job3
的replica
。一旦其中一个job3
完成,整个任务会被标记为完成。
chunk
,在不同机架备份三份