`

Hadoop YARN常见问题以及解决方案

 
阅读更多

 

本文汇总了几个hadoop yarn中常见问题以及解决方案,注意,本文介绍解决方案适用于hadoop 2.2.0以及以上版本。

 

(1) 默认情况下,各个节点的负载不均衡(任务数目不同),有的节点很多任务在跑,有的没有任务,怎样让各个节点任务数目尽可能均衡呢?

答: 默认情况下,资源调度器处于批调度模式下,即一个心跳会尽可能多的分配任务,这样,优先发送心跳过来的节点将会把任务领光(前提:任务数目远小于集群可以同时运行的任务数量),为了避免该情况发生,可以按照以下说明配置参数:

如果采用的是fair scheduler,可在yarn-site.xml中,将参数yarn.scheduler.fair.max.assign设置为1(默认是-1,)

如果采用的是capacity scheduler(默认调度器),则不能配置,目前该调度器不带负载均衡之类的功能。

当然,从hadoop集群利用率角度看,该问题不算问题,因为一般情况下,用户任务数目要远远大于集群的并发处理能力的,也就是说,通常情况下,集群时刻处于忙碌状态,没有节点一直空闲着。

 

(2)某个节点上任务数目太多,资源利用率太高,怎么控制一个节点上的任务数目?

答:一个节点上运行的任务数目主要由两个因素决定,一个是NodeManager可使用的资源总量,一个是单个任务的资源需求量,比如一个NodeManager上可用资源为8 GB内存,8 cpu,单个任务资源需求量为1 GB内存,1cpu,则该节点最多运行8个任务。

NodeManager上可用资源是由管理员在配置文件yarn-site.xml中配置的,相关参数如下:

yarn.nodemanager.resource.memory-mb:总的可用物理内存量,默认是8096

yarn.nodemanager.resource.cpu-vcores:总的可用CPU数目,默认是8

对于MapReduce而言,每个作业的任务资源量可通过以下参数设置:

mapreduce.map.memory.mb:物理内存量,默认是1024

mapreduce.map.cpu.vcores:CPU数目,默认是1

注:以上这些配置属性的详细介绍可参考文章:Hadoop YARN配置参数剖析(1)—RM与NM相关参数

默认情况,各个调度器只会对内存资源进行调度,不会考虑CPU资源,你需要在调度器配置文件中进行相关设置,具体可参考文章:Hadoop YARN配置参数剖析(4)—Fair Scheduler相关参数Hadoop YARN配置参数剖析(5)—Capacity Scheduler相关参数

 

(3)如何设置单个任务占用的内存量和CPU数目?

答:对于MapReduce而言,每个作业的任务资源量可通过以下参数设置:

mapreduce.map.memory.mb:物理内存量,默认是1024

mapreduce.map.cpu.vcores:CPU数目,默认是1

需要注意的是,默认情况,各个调度器只会对内存资源进行调度,不会考虑CPU资源,你需要在调度器配置文件中进行相关设置。

 

(4) 用户给任务设置的内存量为1000MB,为何最终分配的内存却是1024MB?

答:为了易于管理资源和调度资源,Hadoop YARN内置了资源规整化算法,它规定了最小可申请资源量、最大可申请资源量和资源规整化因子,如果应用程序申请的资源量小于最小可申请资源量,则YARN会将其大小改为最小可申请量,也就是说,应用程序获得资源不会小于自己申请的资源,但也不一定相等;如果应用程序申请的资源量大于最大可申请资源量,则会抛出异常,无法申请成功;规整化因子是用来规整化应用程序资源的,应用程序申请的资源如果不是该因子的整数倍,则将被修改为最小的整数倍对应的值,公式为ceil(a/b)*b,其中a是应用程序申请的资源,b为规整化因子。

以上介绍的参数需在yarn-site.xml中设置,相关参数如下:

yarn.scheduler.minimum-allocation-mb:最小可申请内存量,默认是1024

yarn.scheduler.minimum-allocation-vcores:最小可申请CPU数,默认是1

yarn.scheduler.maximum-allocation-mb:最大可申请内存量,默认是8096

yarn.scheduler.maximum-allocation-vcores:最大可申请CPU数,默认是4

对于规整化因子,不同调度器不同,具体如下:

FIFO和Capacity Scheduler,规整化因子等于最小可申请资源量,不可单独配置。

Fair Scheduler:规整化因子通过参数yarn.scheduler.increment-allocation-mb和yarn.scheduler.increment-allocation-vcores设置,默认是1024和1。

通过以上介绍可知,应用程序申请到资源量可能大于资源申请的资源量,比如YARN的最小可申请资源内存量为1024,规整因子是1024,如果一个应用程序申请1500内存,则会得到2048内存,如果规整因子是512,则得到1536内存。

 

(5)我们使用的是Fairscheduler,配置了多个队列,当用户提交一个作业,指定的队列不存在时,Fair Scheduler会自动创建一个新队列而不是报错(比如报错:队列XXX不存在),如何避免这种情况发生?

答:在yarn-site.xml中设置yarn.scheduler.fair.allow-undeclared-pools,将它的值配置为false(默认是true)。

 

(6)使用Hadoop 2.0过程中,遇到了错误,怎样排查错误?

答:从hadoop 日志入手,Hadoop日志存放位置可参考我这篇文章:Hadoop日志到底存在哪里?

分享到:
评论

相关推荐

    hadoop集群遇到的问题及其解决方法

    ### Hadoop集群遇到的问题及其解决方法 #### 异常一:DataNode无法连接到NameNode **问题描述:** 在Hadoop集群部署过程中,经常会出现DataNode无法成功连接到NameNode的情况,导致集群无法正常启动。 **原因分析...

    hadoop学习常见问题(手动整理)

    ### Hadoop学习常见问题解析 #### Namenode问题 ...通过上述方法,可以有效地解决Hadoop学习过程中常见的Namenode问题、启动问题、环境变量问题以及权限问题,帮助初学者更好地掌握Hadoop的使用技巧。

    hadoop节点问题.docx

    针对上述问题,有两种常见且有效的解决方法: **方法一:清理临时文件并重新格式化** 1. **定位问题文件夹**:首先,需要找到Hadoop集群中的临时文件存储位置。这通常是通过配置文件(如`hdfs-site.xml`)指定的`...

    hadoop中文版API.zip

    7. 故障排查和监控:提供解决常见问题的方法,以及如何使用Hadoop自带的监控工具。 通过深入学习和实践Hadoop中文版API,开发者能够更有效地开发和优化大数据处理程序,充分利用Hadoop平台的潜力,处理海量数据并...

    基于Greenplum Hadoop- 分布式平台的大数据解决方案03 - 安装Greenplum(1)

    本篇内容将深入探讨这两个平台如何结合,以及如何安装Greenplum作为实现分布式大数据解决方案的关键步骤。 **一、Greenplum简介** Greenplum是一种高性能的并行数据库系统,它基于PostgreSQL开源数据库,专为大数据...

    hadoop2.7.3+mahout0.9问题集

    - **社区支持**:利用开源社区,如Stack Overflow、GitHub等,搜索类似问题的解决方案,或者直接提问寻求帮助。 - **代码审查**:检查自己的代码,确保符合Hadoop和Mahout的最佳实践,以及遵循编程规范。 - **性能...

    hadoop面试题大全

    Hadoop并不单指一个组件,而是一系列相关工具的集合,如YARN(资源调度器)、Hive(数据仓库工具)、Pig(数据处理语言)、HBase(NoSQL数据库)、Spark(快速计算框架)等,它们共同构成了大数据处理的完整解决方案...

    成功安装-安装hadoop遇到的问题

    这篇博文"成功安装-安装hadoop遇到的问题"可能提供了一些在实际操作中可能会遇到的难点和解决方案。虽然没有具体的描述内容,但我们可以根据常见的安装问题进行深入探讨。 首先,Hadoop的安装通常涉及到以下几个...

    Hadoop书籍

    Hadoop是大数据处理领域的重要框架,它以分布式计算模型为基础,为海量数据的存储和处理提供了高效、可靠的解决方案。在Hadoop的学习过程中,有两本书籍被誉为经典:《Hadoop实战》和《Hadoop权威指南》。 《Hadoop...

    新版Hadoop视频教程 段海涛老师Hadoop八天完全攻克Hadoop视频教程 Hadoop开发

    04-hadoop对海量数据处理的解决思路.avi 05-hadoop版本选择和伪分布式安装.avi 06-hadoop版本选择和伪分布式安装2.avi 07-hdfs&mapreduce;测试.avi 08-hdfs的实现机制初始.avi 09-hdfs的shell操作.avi 10-...

    Hadoop常见的45个面试题

    - 随着技术发展,Hadoop不再是单一的解决方案,而是整个生态系统的一部分,包括Apache Storm、Tez、Flink等。 通过以上这些知识点,你可以对Hadoop有一个全面的理解,这对于准备Hadoop相关的面试至关重要。在实际...

    Pro Apache Hadoop, 2nd Edition

    第四章讨论了Hadoop集群的管理任务,包括集群的安装、配置、优化以及常见问题的解决方案。 **5. MapReduce开发基础(Basics of MapReduce Development)** 第五章介绍了MapReduce编程模型的基础知识。MapReduce是...

    实战hadoop中的源码

    通过研究Hadoop的源码,开发者可以深入了解其内部工作原理,优化系统性能,并定制化开发满足特定需求的解决方案。 【描述】"实战hadoop,源码,刘鹏,开启通向云计算的捷径"指出,学习Hadoop源码不仅是提升技术能力...

    linux下伪分布安装hadoop环境及问题处理

    本文旨在详细介绍如何在Linux CentOS 5.0系统下搭建Hadoop伪分布模式的测试环境,包括必要的步骤、注意事项以及可能遇到的问题及其解决方案。对于初次接触Hadoop的新手来说,这篇文章将会非常有帮助。 #### 二、...

    深入探究Hadoop生态圈及其应用技术

    此外,本文还包括有关Hadoop / Yarn / MapReduce等内存配置的具体方案及Hue- Oozie Editor常见问题解决方案的探讨。 适合人群:有一定Hadoop使用经验或者想深入理解整个生态系统的研究人员和技术开发者。 使用场景及...

    hadoop-common-2.7.3-bin-master-windows

    在解决问题时,建议查阅官方文档或社区的解决方案,因为Hadoop在Linux上运行更为常见,部分功能可能未针对Windows进行充分优化。 总之,Hadoop Common 2.7.3在Windows上的部署和使用需要对环境变量的配置有清晰的...

    高清大放送 Hadoop权威指南第3版 和 第4版 PDF

    5. 优化和故障排查:学习如何优化Hadoop性能,解决集群运行中的常见问题。 6. 安全与合规:理解Hadoop的安全设置,确保数据在传输和存储过程中的安全性。 无论是对于初学者还是经验丰富的开发者,这两本书都提供了...

Global site tag (gtag.js) - Google Analytics