整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

6.2.2. YARN中的失败

hadoop 小红牛 6℃ 0评论

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

1. 任务运行失败

任务运行失败类似于经典的情况。JVM的运行时异常和突然退出被反馈给 applitation master,该任务尝试被标记为失败。类似的,通过在umbilical channe丨上的 ping 缺失(由 mapreduce.task.time 设定超时值),applitation master会注意到挂起的任务,任务尝试再次被标记为失败。

确定任务什么时候失败的配置属性和经典情况一样:4次尝试后任务标记为失败(map任务的由mapreduce.map.maxattemps设置,reducer任务的由mapreduce.reduce.maxattempts设置)。如果一个作业中超过mapreduce.map.failures.maxpercent map 任务或超过 mapreduce. reduce.failures.maxpercentreduce任务运行失败,那么整个作业就失败了。

2. application master 运行失败

YARN中的应用程序在运行失败的时候有几次尝试机会,就像MapReduce任务在遇到硬件或网络故障时要进行几次尝试一样。在默认情况下,只要应用程序运行失败一次就会被标记为失败,但我们可以设置yarn.resourcetnanager.am.max-retries属性增加允许失败的次数。

application master向资源管理器发送周期性的心跳,当application master发生故障时,资源管理器将检测到该故障并在一个新的容器(由节点管理器管 理)中开始一个新的master实例。Mapreduce application master可以恢复故障应用程序所运行任务的状态,使其不必重新运行。默认情况下是不能恢复的,因此故障application master将重新运行它们的所有任务,但我们可以设置 yarn.app.mapneduce.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都用前两节描述的机制进行恢复。

如果应用程序的运行失败次数高,那么节点管理器可能会被拉黑。由 application master管理黑名单,对于MapReduce,如果一个节点管理器上有 超过三个任务失败,application master就会尽量将任务调度到不同的节点 上〇 用户可以通过 mapneduce.job.maxtaskfailunes.per.tracker 设 置该阈值。

 

4. 资源管理器运行失败

资源管理器失败是非常严重的问题,没有资源管理器,作业和任务容器将无法启动。资源管理器的设计从一开始就通过使用检査点机制将其状态保存到持久性存储,从而实现从失败中恢复,不过在本书写作的时候,最新 版本还没有完全实现该功能。

在资源管理器失败后,由管理员启动一个新的资源管理器实例并恢复到保 存的状态。状态由系统中的节点管理器和运行的应用程序组成。(注意,任务并非资源管理器状态的组成部分,因为它们由application master管理。 因此,存储的状态数量比jobtmcker中的状态量更好管理。)

资源管理器使用的存储容量通过yarn.resourcemanager.store.class属性进行配置。 默认值为 org. apache. hadoop. yarn. server. resourcemanager. recovery.MemStore,这保存在内存中,因此可操作性不是很高。然而, 基于ZooKeeper的存储,以后会支持从资源管理器失败中进行可靠的恢复。

转载请注明:全栈大数据 » 6.2.2. YARN中的失败

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址