YARN中的失败分析

对于在YARN中运行的MapReduce程序,需要考虑以下几种实体的失败
任务、application master、节点管理器、资源管理器

1. 任务运行失败

任务运行失败类似于MapReduce1的情况。JVM的运行时异常和突然退出被反馈给application master,该任务尝试被标记为失败。类似的,通过在umbilical channel上的ping缺失(由mapreduce.task.time设定超时值),application master会注意到挂起的任务,任务尝试再次被标记为失败。
4次尝试后任务标记为失败(map任务由mapreduce.map.maxattemps设置,reduce任务由mapreduce.reduce.maxattempts设置)。如果一个作业中超过mapreduce.map.failures.maxpercent的map任务或超过mapreduce.reduce.failures.maxpercent的reduce任务运行失败,name整个作业就失败了。

2. application master运行失败

YARN中的应用程序在运行失败的时候有几次尝试机会,就像MapReduce任务在遇到硬件或网络故障时要进行几次尝试一样。在默认情况下,只要应用程序运行失败一次就会被标记为失败,但我们可以设置yarn.resourcemanager.am.max-retries属性增加允许失败的次数。
Application master向资源管理器发送周期性的心跳,当application master发生故障时,资源管理器将检测到该故障并在一个新的容器(由节点管理器管理)中开始一个新的master实例。MapReduce application master可以恢复故障应用程序所运行任务的状态,使其不必重新运行。默认情况下是不能恢复的,因此故障application master将重新运行它们的所有任务,但我们可以设置yarn.app.mapreduce.am.job.recovery.enable为true,启用这个功能。
客户端向application master轮询进度报告,如果它的application master运行失败,客户端就需要定位新的实例。在作业初始化期间,客户端向资源管理器询问并缓存application master的地址,使其每次需要向application master查询是不必重载资源管理器。但是,如果application master运行失败,客户端就会在发出状态更新请求时超时,这时客户端会返回资源管理器请求新的application master的地址。

3. 节点管理器运行失败

如果节点管理器失败,就会停止向资源管理器发送心跳信息并被移出可用节点资源管理器池。默认值为600000(10分钟)的属性yarn.resourcemanager.nm.liveness-monitor.expiry-interval-ms决定着资源管理器认为节点管理器失败之前的等待时间。
如果应用程序的运行失败次数过高,那么节点管理器可能会被拉黑。由application master管理黑名单,对于MapReduce,如果一个节点管理器上有超过三个任务失败,application master就会尽量将任务调度到不同的节点上。可以通过mapreduce.job.maxtaskfailures.per.tracker设置该阈值。

4. 资源管理器运行失败

资源管理器失败是非常严重的问题,没有资源管理器,作业和任务容器将无法启动。资源管理器的设计从一开始就通过使用检查点机制将其状态保存到持久性存储,从而实现从失败中恢复。
在资源管理器失败后,由管理员启动一个新的资源管理器实例并恢复到保存的状态。状态由系统中的节点管理器和运行的应用程序组成。(注意,任务并非资源管理器状态的组成部分,因为它们由application master管理。因此,存储的状态数量比jobtracker中的状态更好管理)
资源管理器使用的存储容量通过yarn.resourcemanager.store.class的属性进行配置。默认值为org.apache.hadoop.yarn.server.resourcemanager.recovery.MemStore,这保存在内存中,因此可操作性不是很高

转载于:https://www.cnblogs.com/EnzoDin/p/9439744.html

YARN中的失败分析相关推荐

  1. Hadoop2.6.0中YARN底层状态机实现分析

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/beliefer/article/details/51190842 前言 Hadoop2.x.x版本的 ...

  2. hadoop yarn 获取日志_在 YARN 中简化用户日志的管理和使用

    Hadoop 的用户日志有很多的用途, 首先最重要的是, 它们能用来调试 MapReduce 应用(application)的问题, 可能是应用本身的问题, 或者在极少数的情况下, 当在集群中执行应用 ...

  3. 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmContinueOptimizati() 函数分析 )

    文章目录 前言 一.DexPrepare.cpp 中 dvmContinueOptimizati() 方法分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ( DEX 优化流程分析 | D ...

  4. 深入理解Hadoop YARN中的Container概念

    在学习Hadoop  YARN-Hadoop 2.0新引入的通用资源管理系统过程中,总会遇到Container这一概念,由于中文资料的缺乏,很多人对Container这一概念仍非常的模糊.它与Linu ...

  5. 可靠性技术在医学仪器中的应用前景分析

    可靠性技术在医学仪器中的应用前景分析 1 引言 可靠性研究起源于武器系统,经过近半个世纪的发展,已成为一门遍及各学科各行业的工程技术学科,已经从电子产品的可靠性发展到机械和非电子产品的可靠性,从硬件的 ...

  6. [大话IT]圈套玄机—《圈子圈套》中的案例分析

    [@2006-02-22 00:20:14] Filter-pattern:$_(楼主) ~supernal_pig~ 地址:http://www12.tianya.cn/new/Publicforu ...

  7. Pixhawk无人机教程-8.1 在Mission Planner中下载与分析日志(转载)

    摘自:https://www.ncnynl.com/archives/201608/491.html Pixhawk无人机教程-8.1 在Mission Planner中下载与分析日志 * 闪存日志 ...

  8. Apollo 配置中心源码分析

    Apollo 配置中心源码分析 ​ Apollo是携程开源的一款分布式配置管理中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用 ...

  9. 论电子计算机在审计中的应用,计算机技术在审计中的应用领域分析.doc

    计算机技术在审计中的应用领域分析.doc 计算机技术在审计中的应用 [ ]审计工作作为我WW民经济屮的重要的一个环节,由于有大量的数据需耍处理, 使得计算机技术在审计领域的大规模推广具有很强的实践意义 ...

最新文章

  1. spark1.4加载mysql数据 创建Dataframe及join操作连接方法问题
  2. SAP PM 初级系列之27 – SAP系统怎么知道某种类型的维修工单检验批上的检验类型是14?
  3. css中元素居中总结
  4. 【机器学习】详解 BackPropagation 反向传播算法!
  5. ECMAScript5.1的运算符、类型转换总结
  6. linux7.0ftp,Linux(Centos7)搭建FTP服务
  7. gprs连接中断记录_请收好!脉搏波血压计连接天天血压APP使用指南
  8. ASP.NET 抓取网页内容
  9. 六一特辑丨“我的礼物我开发”这群小朋友在用新的方式对话未来
  10. 计算机二级省份,【计算机二级】这些省份发布报名时间!调整前的最后一次考试!...
  11. 【tf.keras.Model】构建模型小结(部分问题未解决)
  12. 用C语言编写一个关机程序
  13. Excel公式不自动计算出结果
  14. vue+element-ui select必填项验证回显问题+实现重置表单内容
  15. 大规模容器镜像管理方案
  16. 软件实施工程师需要掌握的技能
  17. 如何 拆 贴片电容 而不是把焊盘给搞坏
  18. HMI-47-【多媒体】Title界面实现 2
  19. 苹果系统版本依次顺序_iphone所有型号上市顺序
  20. 【Android】使用MediaExtractor、MediaMuxer去掉视频文件中的音频数据

热门文章

  1. Apache OpenWebBeans 发布适用于 Java EE 微服务的 Meecrowave 服务器 1.0
  2. Mybatis的xml文件中$ 与 #的区别
  3. dos下批量卸载apk文件
  4. 一文探讨 RPC 框架中的服务线程隔离
  5. Kafka如何通过精妙的架构设计优化JVM GC问题
  6. 百度开源分布式id生成器uid-generator源码剖析
  7. 2020年,从提升认知开始
  8. MySQL 如何查找删除重复行?
  9. 图解Linux系统调用
  10. RESTful Web 服务 - 资源