您当前的位置: 首页 >  hadoop

梁云亮

暂无认证

  • 3浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Hadoop 失败处理机制

梁云亮 发布时间:2020-04-02 01:12:58 ,浏览量:3

任务运行失败
  • 任务代码异常       
    •  JVM在退出前向application master发送错误报告,报告被记录用户日志     
    •  application master将任务标记为failed,释放容器和资源      
  •   任务JVM突然退出
    • JVM软件缺陷而导致MapReduce用户代码由于某些特殊原因造成JVM退出。
    • NodeManager注意到JVM退出,通知application master将任务标记为失败
  • 任务挂起
    • application master长时间未接收到进度更新,将任务标记为失败,JVM进程也将会自动杀死  
    •   默认超时时间是10分钟,对应的属性是:mapreduce.task.timeout,单位是毫秒;如果设置为0,则永远不会被标记为失败,挂起的任务占用资源不释放,降低集群效率,要避免这种设置。

 

  • 避免在失败节点尝试重新调度,默认任务失败超过4次,不再重试。尝试次数由mapreduce.map.maxattempts 属性控制
  • 如果希望少数几个任务不影响整体作业的执行,设置任务失败的最大百分比          
  • mapreduce.map.failures.maxpercent mapreduce.reduce.failures.maxpercent   
  • 终止或取消任务尝试,因为是推测副本或所处NodeManager失败,导致运行的任务被标记killed,被中止的尝试不计入任务尝试次数

 

ApplicationMaster运行失败
  • 避免在失败节点尝试重新调度,默认任务失败超过4次,不再重试。尝试次数由mapreduce.map.maxattempts 属性控制
  • 如果希望少数几个任务不影响整体作业的执行,设置任务失败的最大百分比          
  • mapreduce.map.failures.maxpercent mapreduce.reduce.failures.maxpercent   
  • 终止或取消任务尝试,因为是推测副本或所处NodeManager失败,导致运行的任务被标记killed,被中止的尝试不计入任务尝试次数
  • application master向ResourceManager发送周期心跳,当失败时,ResrouceManager检测到失败并通知NodeManager开启一个新的容器并开始一个新的application master      
  •  MapReduce application master 使用作业历史恢复失败的应用程序任务状态,不需要重新运行       
  • 恢复功能由: yarn.app.mapreduce.am.job.reduce.enable属性控制,默认开启(true)
  • 如果application master运行失败,则必须向ResourceManager请求新的地址。

 

 

NodeManager运行失败
  • application master向ResourceManager发送周期心跳,当失败时,ResrouceManager检测到失败并通知NodeManager开启一个新的容器并开始一个新的application master      
  •  MapReduce application master 使用作业历史恢复失败的应用程序任务状态,不需要重新运行       
  • 恢复功能由: yarn.app.mapreduce.am.job.reduce.enable属性控制,默认开启(true)
  • 如果application master运行失败,则必须向ResourceManager请求新的地址。

 

 

ResourceManager运行失败
  • ResourceManager失败,所有的作业都失败且不能恢复
  • 需要实现高可用(HA),在双机热备配置下运行一对ResourceMananger
  •  所有运行中的应用程序的信息存储在一个高可用的状态存储区(Zookeeper/HDFS备份)

 

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0650s