MapRecude故障恢复机制和信息流动
2017-10-17 18:20:39   5  举报             
     
         
 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 条评论
 下一页
  
  
  
  
  
  
  
  
  
 