问题导读
1、Hadoop YARN常见问题有哪些?
2、你是如何解决这些问题的?
本文汇总了几个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日志到底存在哪里?
- 浏览: 359654 次
最新评论
-
jfeifjlafekae:
另外,为什么存储日志会有拆分过程,而不是rotation方式? ...
HBASE数据架构 -
jfeifjlafekae:
“当然,数据刷写时,一个Region只要有一个列族的memSt ...
HBASE数据架构 -
hmc52107521:
你好,params.keys,params.values以及# ...
mybatis中使用map类型参数,其中key为列名,value为列值 -
zhangxiong0301:
qindongliang1922 写道AM中其它与内存相关的参 ...
(转)YARN内存配置 -
qindongliang1922:
AM中其它与内存相关的参数,还有JVM相关的参数,这些参数可以 ...
(转)YARN内存配置
相关推荐
在安装 Yarn 时,可能会遇到一些报错,以下是常见的解决方案: 1. PowerShell 无法加载文件错误 - 解决方案:以管理员身份运行 PowerShell,执行以下命令:`set-ExecutionPolicy RemoteSigned` - 这一步骤将更改...
本文将详细介绍如何通过Java编程语言来实现与YARN的交互,包括获取当前正在执行的应用程序列表、返回应用程序的相关信息、终止应用程序的操作,以及在使用Maven构建项目过程中可能遇到的一些常见问题。 #### 二、...
但是,在使用 Hive 过程中,经常会遇到一些常见错误,影响着整个项目的进度和效率。因此,本文将总结常见的 Hive 错误及解决方案,帮助开发者快速解决问题,提高工作效率。 错误一:SecureCRT 7.3 出现乱码或者删除...
3. **常见错误与解决方案** 在Spark on YARN环境中,常见的内存管理问题包括内存不足导致的任务失败和Executor被杀死。这些问题通常可以通过合理设置`spark.executor.memory`、`spark.yarn.executor.memoryOverhead...
这通常是开发或部署基于Node.js应用时的常见步骤,因为Yarn可以管理项目依赖,而Node.js则负责执行JavaScript代码。 总之,Yarn 1.22.5和Node.js v14.18.1是开发JavaScript应用程序的重要工具,它们的组合使用可以...
Node.js包管理器Yarn的出现,主要是为了解决npm(Node.js包管理器)的一些常见问题,如安装速度慢和每次都需要在线重新安装等。Yarn由Facebook推出,目标是提供一个更快、更可靠、更安全的替代方案。本文将简要介绍...
通过上述步骤,我们可以成功搭建起一个Hadoop 2.x集群,并解决了一些常见的问题,如MapReduce提交Job执行失败等。在整个过程中,关键是要仔细检查每一个配置细节,并确保集群各个组件之间能够协同工作。希望本篇文章...
6. **更好的错误处理**:`yarn-scripts` 提供了更好的错误处理机制,使得脚本执行失败时,能够提供更清晰的错误信息,帮助开发者快速定位问题。 7. **命令行选项传递**:你可以直接将命令行参数传递给脚本,这在...
### 大数据技术之Hive学习—Hive实战之谷粒影音+常见错误及解决方案 #### 10.1 需求描述 本实战案例旨在通过对谷粒影音视频网站的大数据分析,提炼出一系列关键指标,包括但不限于视频观看数量、类别热度等Top N...
2. **React Aria 的核心组件**:React Aria 提供了诸如 `useButton`, `useCheckbox`, `useSlider`, `useTab` 等 Hooks,它们分别对应各种常见的可交互元素,并负责处理键盘导航、焦点管理以及状态更新等无障碍功能。...
调试spark-submit的yarn部署 spark-submit --master yarn --packages com.databricks:spark-xml_2.12:0.16.0 --py-files service-prod.zip service-index.py
然而,在实际操作中,我们经常会遇到一些常见的错误,特别是当Hive运行在Tez引擎上时。这里我们将深入探讨五个在Hive on Tez中常见的报错问题及其解决方案。 1. 错误一:Failing because I am unlikely to write ...
ThingsBoard 3.4.4源码部署从零到落地 包含Navicat Premuim 12数据库连接工具、PostGres...整合了ThingsBoard源码落地绝大部分(常见错误),带你避坑ThingsBoard基于源码的二次开发体验 如有新的问题,欢迎留言讨论
通过以上步骤,我们可以有效地解决Electron-Vue项目中常见的安装与打包难题。值得注意的是,网络环境对于安装过程至关重要,合理使用镜像源可以显著提高安装成功率。此外,在遇到打包错误时,应仔细检查错误信息并...
您还将在控制台中看到任何棉绒错误。 yarn test 在交互式监视模式下启动测试运行器。 有关更多信息,请参见关于的部分。 yarn build 构建生产到应用程序build文件夹。 它在生产模式下正确捆绑了React,并优化了...
常见错误及其解决方案将在 所有yarn命令都可以替换为npm 吉特·胡克斯(Git Hooks) 该项目具有通过 husky)配置的githooks ,可以在找到钩子。 基本上,每次提交尝试都会按照样式指南检查代码,有些错误可以通过...
这使得代码更易于理解和调试,减少运行时错误,并支持IDE的高级功能,如自动补全和代码分析。 **Babel** Babel是一个转换JavaScript代码的工具,能够将ES6+(包括TypeScript)语法转换为当前浏览器广泛支持的ES5...
* OOM(Out of Memory)异常是 Spark 作业中常见的错误 * 通过监控 Spark 作业的资源使用情况,可以预测和避免 OOM 异常 知识点4: 监控工具的需求 * 监控工具需要提供集群范围的进程监控、每个节点的进程统计数据...
这个文档包含了Hadoop相关的常见笔试题答案,涵盖了Hadoop的基本概念、架构组件、配置文件以及操作命令等多个方面。 1. Hadoop的核心组成部分是HDFS(Hadoop Distributed File System),它是一个分布式文件系统,...