本文汇总了几个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集群遇到的问题及其解决方法 #### 异常一:DataNode无法连接到NameNode **问题描述:** 在Hadoop集群部署过程中,经常会出现DataNode无法成功连接到NameNode的情况,导致集群无法正常启动。 **原因分析...
### Hadoop学习常见问题解析 #### Namenode问题 ...通过上述方法,可以有效地解决Hadoop学习过程中常见的Namenode问题、启动问题、环境变量问题以及权限问题,帮助初学者更好地掌握Hadoop的使用技巧。
针对上述问题,有两种常见且有效的解决方法: **方法一:清理临时文件并重新格式化** 1. **定位问题文件夹**:首先,需要找到Hadoop集群中的临时文件存储位置。这通常是通过配置文件(如`hdfs-site.xml`)指定的`...
7. 故障排查和监控:提供解决常见问题的方法,以及如何使用Hadoop自带的监控工具。 通过深入学习和实践Hadoop中文版API,开发者能够更有效地开发和优化大数据处理程序,充分利用Hadoop平台的潜力,处理海量数据并...
本篇内容将深入探讨这两个平台如何结合,以及如何安装Greenplum作为实现分布式大数据解决方案的关键步骤。 **一、Greenplum简介** Greenplum是一种高性能的并行数据库系统,它基于PostgreSQL开源数据库,专为大数据...
- **社区支持**:利用开源社区,如Stack Overflow、GitHub等,搜索类似问题的解决方案,或者直接提问寻求帮助。 - **代码审查**:检查自己的代码,确保符合Hadoop和Mahout的最佳实践,以及遵循编程规范。 - **性能...
Hadoop并不单指一个组件,而是一系列相关工具的集合,如YARN(资源调度器)、Hive(数据仓库工具)、Pig(数据处理语言)、HBase(NoSQL数据库)、Spark(快速计算框架)等,它们共同构成了大数据处理的完整解决方案...
这篇博文"成功安装-安装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不再是单一的解决方案,而是整个生态系统的一部分,包括Apache Storm、Tez、Flink等。 通过以上这些知识点,你可以对Hadoop有一个全面的理解,这对于准备Hadoop相关的面试至关重要。在实际...
第四章讨论了Hadoop集群的管理任务,包括集群的安装、配置、优化以及常见问题的解决方案。 **5. MapReduce开发基础(Basics of MapReduce Development)** 第五章介绍了MapReduce编程模型的基础知识。MapReduce是...
通过研究Hadoop的源码,开发者可以深入了解其内部工作原理,优化系统性能,并定制化开发满足特定需求的解决方案。 【描述】"实战hadoop,源码,刘鹏,开启通向云计算的捷径"指出,学习Hadoop源码不仅是提升技术能力...
本文旨在详细介绍如何在Linux CentOS 5.0系统下搭建Hadoop伪分布模式的测试环境,包括必要的步骤、注意事项以及可能遇到的问题及其解决方案。对于初次接触Hadoop的新手来说,这篇文章将会非常有帮助。 #### 二、...
此外,本文还包括有关Hadoop / Yarn / MapReduce等内存配置的具体方案及Hue- Oozie Editor常见问题解决方案的探讨。 适合人群:有一定Hadoop使用经验或者想深入理解整个生态系统的研究人员和技术开发者。 使用场景及...
在解决问题时,建议查阅官方文档或社区的解决方案,因为Hadoop在Linux上运行更为常见,部分功能可能未针对Windows进行充分优化。 总之,Hadoop Common 2.7.3在Windows上的部署和使用需要对环境变量的配置有清晰的...
5. 优化和故障排查:学习如何优化Hadoop性能,解决集群运行中的常见问题。 6. 安全与合规:理解Hadoop的安全设置,确保数据在传输和存储过程中的安全性。 无论是对于初学者还是经验丰富的开发者,这两本书都提供了...