`
zhangxiong0301
  • 浏览: 360768 次
社区版块
存档分类
最新评论

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日志到底存在哪里?

分享到:
评论

相关推荐

    Yarn常见问题维护手册V1.01

    **YARN 常见问题** 1. **任务提交异常** - `[YARN-10001]` 在 Windows 环境下提交 MR 任务失败:这通常与环境变量配置不正确、Hadoop 客户端与服务器版本不匹配或权限问题有关。确保所有依赖项已正确安装,配置...

    yarn安装.docx

    Yarn 安装的常见问题 * 如何解决 PowerShell 无法加载文件错误? - 解决方案:以管理员身份运行 PowerShell,执行以下命令:`set-ExecutionPolicy RemoteSigned` * 如何查看当前的执行策略? - 使用以下命令:`...

    Yarn获取Application列表编码

    获取 Application 列表编码是 Yarn 中的一种常见操作,本文将对其进行详细的分析和介绍。 Yarn 获取 Application 列表编码概述 Yarn 获取 Application 列表编码是指通过 Yarn 客户端 API 获取当前 Hadoop 集群中的...

    yarn 前端打包工具指定配置文件

    指定配置文件在 `Yarn` 中有两种常见方法: 1. **通过环境变量**:在执行 `Yarn` 命令时,我们可以传递环境变量来指示打包工具使用特定的配置文件。例如,如果我们有两个 `Webpack` 配置文件 `webpack.common.js` ...

    npm cnpm yarn 的使用及常见的下载

    npm cnpm yarn 的使用及常见的下载

    YARN学习书籍及注解

    9. **YARN优化**:包括资源调度优化、应用程序性能调优、安全性和监控等方面,这些都是实际使用中必须考虑的问题。 10. **YARN的应用场景**:除了MapReduce,YARN还支持Spark、Tez、Flink等多种计算框架,使得...

    yarn调度流程.docx

    常见的 YARN 调度算法有:FIFO(First-In-First-Out)、Capacity Scheduler、Fair Scheduler 等。 * FIFO:按照应用程序的提交顺序分配资源,先提交的应用程序先获得资源。 * Capacity Scheduler:根据应用程序的...

    yarn-1.22.4.rar

    2. **确定性安装**:Yarn的`.lock`文件(在本例中可能是`yarn.lock`)记录了所有包的确切版本,确保在不同环境中安装的依赖一致,避免了npm中常见的“依赖地狱”问题。 3. **安全性**:Yarn支持并行安装,每个包都...

    Yarn编码获取Application列表

    本文将详细介绍如何通过Java编程语言来实现与YARN的交互,包括获取当前正在执行的应用程序列表、返回应用程序的相关信息、终止应用程序的操作,以及在使用Maven构建项目过程中可能遇到的一些常见问题。 #### 二、...

    Yarn的操作.pdf

    常见问题和解决方案 在使用YARN和Spark时,我们可能会遇到一些问题,例如Executor空闲、资源占用不均、Spark任务的并行度不够等。解决这些问题的办法是指定Executor的核心数、设置spark.default.parallelism参数、...

    Spark on Yarn模式部署.docx

    Spark on Yarn 模式部署是一种常见的 Spark 应用场景,本文将详细介绍 Spark on Yarn 模式部署的步骤和配置过程。 标题解释 Spark on Yarn 模式部署是指将 Spark 应用程序部署在 Yarn 集群上,使得 Spark 能够使用 ...

    Yarn 1.9.4 安装包

    5. **命令行界面(CLI)**:Yarn提供了丰富的命令行接口,使得常见的操作如添加、删除、更新依赖等变得更加便捷。 6. **工作空间(Workspaces)**:Yarn 1.9.4版本支持多项目管理,通过`workspaces`配置,可以在...

    yarn(JavaScript包管理器)v1.7.0官方最新安装版

    yarn(JavaScript包管理器)是一款快速、可靠和安全依赖关系的JavaScript(JS)包管理工具,有完全有替代npm的势头,yarn install用于安装一个项目的所有依赖, 这个命令最常见的使用场景是在你刚Check out一份项目代码...

    董西城-Hadoop技术内幕-深入理解YARN架构设计与实现原理----带完整书签--完整版共394页

    7. **实战与案例分析**:可能包含实际部署YARN集群的步骤,以及解决常见问题的策略。 通过阅读这本书,读者不仅可以了解YARN的基本工作原理,还能掌握如何优化YARN配置以适应不同业务场景,提升大数据处理效率。...

    hadoop2.6基于yarn的安装配置

    Hadoop 2.6 基于 YARN 的安装配置 ...常见问题 在安装过程中,我们可能会遇到一些问题。例如,如果 SSH 登录仍然需要密码,我们需要检查文件和文件夹权限。如果遇到其他问题,我们可以查看日志文件来诊断问题。

    java提交spark任务到yarn平台的配置讲解共9页.pdf.zip

    Java提交Spark任务到YARN平台是一项常见的大数据处理操作,它结合了Java的编程能力和Spark的高性能计算框架,以及Hadoop的资源管理系统YARN。在这个过程中,开发者需要理解多个关键概念和配置步骤,以便有效地调度和...

    大数据平台实践 六.HDFS数据迁移和yarn运行任务

    这种操作非常常见,在大数据平台中经常需要将数据从一个节点迁移到另一个节点,以便进行数据处理和分析。本节将介绍两种HDFS数据迁移方法:fs -cp命令和distcp命令。 1. fs -cp命令 fs -cp命令是HDFS中的基本命令...

    yarn-deduplicate:用于yarn.lock文件的重复数据删除工具

    最常见的情况是运行 yarn-deduplicate yarn.lock 这将使用默认策略来删除yarn.lock中重复的程序包。 如果您未指定yarn.lock路径,则默认为yarn.lock 。 使用以下命令检查所有可用选项: yarn-deduplicate --help...

    Hadoop Yarn 案例 2

    好友推荐系统是社交网络服务中常见的一种功能,其背后通常涉及到大量的数据处理和分析。在Hadoop YARN中,我们可以利用其强大的分布式计算能力,对用户的行为数据进行挖掘,找出潜在的好友关系。以下是一些关键知识...

Global site tag (gtag.js) - Google Analytics