本文汇总了几个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日志到底存在哪里?
- 浏览: 351214 次
最新评论
-
jfeifjlafekae:
另外,为什么存储日志会有拆分过程,而不是rotation方式? ...
HBASE数据架构 -
jfeifjlafekae:
“当然,数据刷写时,一个Region只要有一个列族的memSt ...
HBASE数据架构 -
hmc52107521:
你好,params.keys,params.values以及# ...
mybatis中使用map类型参数,其中key为列名,value为列值 -
zhangxiong0301:
qindongliang1922 写道AM中其它与内存相关的参 ...
(转)YARN内存配置 -
qindongliang1922:
AM中其它与内存相关的参数,还有JVM相关的参数,这些参数可以 ...
(转)YARN内存配置
相关推荐
1、基本概念 2 2、常见问题 7 1、 基本概念
npm cnpm yarn 的使用及常见的下载
yarn(JavaScript包管理器)是一款快速、可靠和安全依赖关系的JavaScript(JS)包管理工具,有完全有替代npm的势头,yarn install用于安装一个项目的所有依赖, 这个命令最常见的使用场景是在你刚Check out一份项目代码...
最常见的情况是运行 yarn-deduplicate yarn.lock 这将使用默认策略来删除yarn.lock中重复的程序包。 如果您未指定yarn.lock路径,则默认为yarn.lock 。 使用以下命令检查所有可用选项: yarn-deduplicate --help...
Hadoop高可用整套配置与详细问题解决 core-site hdfs.site yarn-site 如:namenode启动失败 DFSZK启动失败 防火墙开关等
yarn start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。 yarn test 在交互式监视模式下启动测试运行器。 有关更多信息,请参见...
常见问题解答-React Avancado如何添加新的常见问题解答? 您必须克隆存储库,并在文件夹“ _faqs”内按照其他文件中已经存在的模式添加问题文件。 里面是什么? 该项目使用很多东西:TypeScript NextJS样式化组件...
Hadoop常见异常,以及hadoop配置,等资料
1.1.3 通过@jujuadams叙事引擎GameMaker工作室2.3.1 谈论上的Chatterbox 下载的... 关于与支持特征职能谁制作了Chatterbox以及如何获得帮助Chatterbox功能简介Chatterbox的每个功能以及在常见情况下如何使用它们
常见任务 通过babel和汇总进行转换。 # Start in the development environment $ yarn start # Build $ yarn build # Build and monitor file changes $ yarn build --watch # Build specified package only $ ...
该项目基于 vant-ui 框架,解决移动端开发和混合开发遇到常见问题,例如:mock 数据、h5 与 native 通信、h5 调试、适配、国际化等问题 Project setup yarn install Compiles and hot-reloads for development yarn ...
调试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
对于用户问题,请参考这些存储库中的任何一个Dask-Yarn用于在YARN上部署Dask( ) 普通YARN / Python交互的绞线( ) knit库为Scala提供了Python接口,可与YARN资源管理器进行交互。 查看有关knit的。概述knit ,您...
使用脚本运行项目yarn start 您还可以构建您的设计系统以发布到私有npm或您自己的github实例: yarn build:production常见问题我运行过yarn build:production但是travis失败,并出现以下错误: Please run 'yarn ...
首先,只需克隆存储库并运行yarn && yarn run dev : git clone https://github.com/manoel-lopes/move-yourself-typescritp-nextjs.git yarn yarn run dev 在生产中进行构建和部署 如果要在生产中运行此站点,则应...
版本问题 RN从0.60开始,Android平台移植到了androidx。 如果不想用androidx,安装rn必须指定版本为0.59。 $ yarn add react-native...常见问题 问题1 Unable to load script. Make sure you're either running a Metro
是基于vue和nodejs实现的一个简单docker管理平台,主要用到dockerode库实现简单的操作,创建之初也只是想简单管理docker一些常见的操作,让自己更好的去管理的docker,后续必然还会添加更多功能!!!! 功能 1. 支持连接多...
: [ " @rohberg/volto-accordion-block "]," dependencies " : { " @rohberg/volto-accordion-block " : " ^0.1.0 "} 安装新的加载项并重新启动Volto: $ yarn$ yarn start转到 通过添加常见问题类型块登录并编辑...
包含Navicat Premuim 12数据库连接工具、PostGres数据库、Maven-3.8.5(包含部署ThingsBoard可能遇到的Jar包和pom坐标问题报错)、Node.js以及yarn安装方法、OpenJdk11以及各种环境变量的配置方法,IDea请手动装载,...
npm run build以构建项目服务器脚步: nodemon index.js常见问题解答:常见问题解答虽然在package.json上未找到Nodemon 也许需要全局npm install -g nodemon 使用mongo docker镜像,我无法连接数据库。 为什么? ...