运行于Yarn的Map Reduce作业,可能发生失败的点包括
- Task Failure
- Application Master Failure
- Node Manager Failure
- Resource Manager Failure
1. Task Failure
任务执行过程中产生的异常和JVM的意外终止会汇报给Application Master。僵死的任务也会被Application Master监测到,这是通过Task和Application Master之间的心跳实现的,对于Applciation Master来说,任务意外终止和任务僵死(长时间不给Application Master发送心跳包,这个心跳时间超时时间可以通过mapreduce.task.timeout进行设置)是一样的。
Hadoop MapReduce如何判定一个任务失败,任务失败是否使得整个作业失败
- 任务有重试机制,如果重试四次任务仍然失败则认为任务彻底失败,不再进行尝试运行。Mapper任务的重试次数以及Reducer任务的重试次数可以分别通过mapreduce.map.maxattempts和mapreduce.reduce.maxattempts进行设置
-
作业失败是根据失败的Mapper Task占Mapper Task的总数百分比和失败的Reducer Task的占Reducer任务总数的百分比进行判定的,这个百分数可以分别通过mapreduce.map.failures.maxpercent以及mapreduce.reduce.failures.maxpercent进行设置
2. Application Master Failure
同任务失败后进行重试一样,Application Master失败也会进行重试,默认情况下,Application Master失败一次,Yarn就认为Application Master失败了,即默认情况下是没有重试机制的。 重试的次数可以通过yarn.resourcemanager.am.max-retries进行次数设置。
作业运行过程中,Application Master会定时的向Resource Manager发送心跳包,如果在给定的时间内Resource Manager没有收到来自Application Master心跳包,那么Resource Manager进行失败检测然后重新启动一个新的Container,然后在这个Container中启动新的Application Master进程。对于新创建的Application Master,它能够检测到之前失败的Application Master已经运行完成的任务,因此,新的Application Master无需重头开始已经执行过的任务。
客户端从Application Master获取任务执行的状态信息,如果Application Master挂了然后新的Application Master启动后,客户端需要知道新的Application Master地址。在Application Master初始化作业时,客户端会向Resource Manager发送请求询问Application Master的地址,然后缓存在客户端本地。如果客户端长时间得不到Application Master的应答,那么客户端会重新向Resource Manager发送请求询问新的Application Master的地址
3. Node Manager failure
如果Node Manager挂了,那么Node Manager停止向Resource Manager发送心跳包,此时,ResourceManager会将它从可用节点中移除。默认情况下,Resource Manager等待10分钟以确定node manager已经挂了。这个时间间隔可以通过yarn.resourcemanager.nm.liveness-monitor.expiry-interval-ms进行设置, 默认600000
Node Manager挂了,那么运行于其上的Task和Application Master都会失败,Application Master和Task的恢复机制前面已有描述。
如果Node Manager本身没有挂,但是运行于这个节点的任务数失败率非常高,那么Application Master将把这个Node Manager加入到黑名单中。(是Application Master将Node Manager加入到了黑名单中)
4. Resource Manager failure
Resource Manager挂了,那么Yarn的各个组件,包括正在执行的作业、任务都会受到影响。Resource Manager的作用如此重要,因此Hadoop提供了检查点不定时的将它的状态持久化到存储系统,以便在它失败后,能够从失败的状态中恢复过来。
Resource Manager挂了之后,系统管理员重新启动一个新的Resource Manager,然后从上个失败的Resource Manager保存的检查点进行状态恢复。保存的状态信息包括包括集群的Node Managers以及正在运行的作业,Task和Application Master不在要恢复的状态中,因为Application Master是由Node Manager管理,Task是由Application Master管理。
用于记录Resource Manager状态信息的存储介质是由yarn.resourcemanager.store.class设置的,这个属性接受一个类,默认是org.apache.hadoop.yarn.server.resourcemanager.recovery.MemStore,即Resource Manager默认将状态信息记录到内存中,这很不合理,如果Resource Manager挂了,内存数据也挤有可能挂了,将状态信息记录到内存中,不知道是怎么考虑的!Resource Manager也可以将状态信息记录到Zookeeper中
相关推荐
Map阶段将数据拆分成可处理的小块,Reduce阶段则对Map阶段的结果进行聚合,从而得出最终的分析结果。在这个过程中,我们可以编写Java程序,利用Hadoop API来实现数据处理逻辑,例如计算平均分、统计评分分布和提取...
此外,还可能涉及YARN(Yet Another Resource Negotiator),这是Hadoop 2.x版本中取代JobTracker的新资源管理框架。 数据处理的过程中,Shuffle和Sort是两个关键环节。Shuffle是数据在Map和Reduce任务间的传输过程...
它包括Map、Reduce和Driver三个部分,使用Hadoop的Writable接口进行数据序列化,例如BooleanWritable、IntWritable等。在实际操作中,需要编写Mapper将文本拆分成单词,Reducer则对单词计数并输出。 **环境准备与...
Hadoop基于Google提出的Map-Reduce编程模型和GFS(Google File System)分布式存储系统原理。作为Apache基金会的开源项目,Hadoop提供了简单的分布式编程接口,让开发者能够编写程序,借助集群的强大计算与存储能力...
《Hadoop技术内幕》系列书籍包含了MapReduce、YARN和HDFS三个核心组件的深入解析,是理解Hadoop生态系统不可或缺的资源。以下是这些主题的详细概述: **Hadoop MapReduce** MapReduce是Hadoop处理大数据的主要计算...
例如,通过Map阶段将数据分散到不同的节点进行处理,Reduce阶段再进行聚合,从而快速获取用户兴趣模式和商品关联信息。 四、推荐算法实现 1. 协同过滤:这是一种基于用户行为的推荐方法,通过分析用户历史行为找到...
其主要组成部分包括:HDFS(Hadoop Distributed File System)、MapReduce(一种编程模型)、以及YARN(Yet Another Resource Negotiator,资源管理系统)。随着时间的发展,Hadoop生态系统不断壮大,现在还包含了如...
MapReduce则是Hadoop的数据处理模型,它将复杂的大规模数据处理任务分解为两个阶段:Map阶段和Reduce阶段。Map阶段将原始数据分割,对每个部分进行局部处理,生成中间键值对;Reduce阶段则负责将这些中间结果聚合,...
**MapReduce**是Hadoop的核心计算模型,灵感来源于函数式编程语言中的映射(map)和归约(reduce)操作。它将大规模数据处理分解为两个主要阶段:Map阶段和Reduce阶段。在Map阶段,原始数据被分割成小块,并在各个...
MapReduce是Hadoop处理大数据的主要计算模型,由“Map”阶段和“Reduce”阶段组成。Map阶段将输入数据拆分成键值对,由多个任务并行处理;Reduce阶段则聚合Map的输出,进一步处理数据。此外,还有Shuffle和Sort过程...
MapReduce是Hadoop用于大规模数据处理的编程模型,由“Map”阶段(数据分发和预处理)和“Reduce”阶段(聚合和总结数据)组成。 Hadoop生态系统的其他重要组件还包括: 1. **YARN(Yet Another Resource ...
MapReduce 则是Hadoop的计算模型,通过“映射”(map)和“化简”(reduce)两个阶段,实现大规模数据集的并行处理。 在网络云盘的设计中,HDFS扮演了基础架构的角色。用户上传的文件会被HDFS自动切分成数据块,...
《基于Hadoop的大数据实战详解》 在当今信息爆炸的时代,大数据已经成为企业决策、科学研究和社会治理的重要工具。而Hadoop作为开源的分布式计算框架,无疑是处理海量数据的首选方案之一。本文将深入探讨Hadoop在...
Hadoop是大数据处理领域的重要工具,它以其分布式计算模型、高容错性和可扩展性而闻名。本主题“Hadoop核心技术”将深入探讨Hadoop的基本原理、核心组件以及如何进行优化配置,最后通过实例来加深理解。 首先,我们...
MapReduce则是一种编程模型,用于大规模数据集的并行计算,通过“映射”(map)阶段将任务分解,再通过“化简”(reduce)阶段进行结果聚合。 二、Hadoop在人工智能中的角色 1. 数据存储:Hadoop的分布式特性使其成为...
MapReduce是Hadoop的主要计算模型,它将复杂的计算任务分解为两个阶段:Map和Reduce。Map阶段将原始数据转化为键值对,然后在不同的节点上并行处理;Reduce阶段则聚合Map阶段的结果,生成最终输出。Hadoop 3.2.4可能...
映射(Map)阶段将数据切分成小块并分配到集群的不同节点,然后化简(Reduce)阶段对这些数据进行聚合和处理,生成推荐的候选集。 3. **推荐算法**:可能包含基于内容的推荐、协同过滤、深度学习模型等。例如,基于...
MapReduce的核心思想是将复杂的并行计算分解为两个主要步骤:Map阶段和Reduce阶段。 1. **Map阶段**: - 在Map阶段,输入数据被分割成多个小块,每个小块由一个独立的Map任务处理。这些Map任务可以在集群的不同...
《Hadoop权威指南中文版(第二版)》与《Hadoop in Action》及《Pro Hadoop》这三本书是深入理解和掌握Hadoop生态系统的关键资源。Hadoop作为一个分布式计算框架,其核心是解决大规模数据处理的问题,它允许在廉价...