MapRecude故障恢复机制和信息流动
2017-10-17 18:20:39 4 举报
MapReduce故障恢复机制和信息流动
作者其他创作
大纲/内容
客户端
Uber任务
故障转移控制器
节点管理器节点
故障处理机制:
主资源管理器节点
YARN应用JVM
master和节点管理器向资源管理器发送周期性心跳包,证明自己还活着
三、节点管理器失败
副资源管理器ResourceManager
任务失败尝试分配推测任务
Hadoop客户端
任务失败,在JVM退出之前,发送错误报告
四、资源管理器失败资源管理器是单点故障,他坏了整个系统就工作不了了,所以采取双机热备是必要的,运行一对资源管理器检测到主资源管理器失败后,故障转移控制器会将副资源管理器启动,转为主机。并且重启所有应用,应用信息保存在一个高可用的状态存储区。由于MapReduce任务信息是保存在ApplicationMaster中的,所以并不能恢复作业的进度,只能重跑作业客户端、节点管理器需要知道资源管理器的地址(以便获取master地址、发送心跳包),所以会缓存一个最新主资源管理器地址在本地,当主资源管理器故障后,会轮询每一个副资源管理器,直到副资源管理器变成主机
升级为主资源管理器重启所有应用
主资源管理器ResourceManager
三、节点管理器失败资源管理器长时间没收到资源管理器的心跳包,判定master失败(默认超时为10分钟)重新分配节点管理器,避免在失败过的节点分配恢复未完成的作业,重跑map任务,因为map任务中间结果输出到本地磁盘中(与节点管理器同一节点),避免reduce获取不到中间结果
通过umblical接口报告子任务进度和状态(每3秒)
二、ApplicationMaster失败
副资源管理器节点
四、资源管理器失败
Map/Ruduce
YarnChild
作业完成后,输出统计信息
节点管理器NodeManager
一、任务失败
Application Master
Application Master失败资源管理器长时间没收到master的心跳包,判定master失败重新分配执行master,避免在失败过的节点分配尝试次数=2新的master根据历史记录,恢复当前作业的进度客户端需要知道master地址(轮询获取作业信息)客户端缓存master的地址,当轮询超时后,向资源管理器获取新的master地址,并缓存起来
客户端轮询作业进度和状态(每秒)
任务失败(master收到错误报告或任务失联)尝试重新执行,避免在失败过的节点分配尝试次数4,则作业失败设置作业最大失败进度,避免在作业失败后有用的结果被删除
收藏
收藏
0 条评论
下一页