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

YARN的一些常见错误

阅读更多

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

分享到:
评论

相关推荐

    spark调试中常见的错误集锦

    调试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

    ThingsBoard 3.4.4源码部署从零到落地

    ThingsBoard 3.4.4源码部署从零到落地 包含Navicat Premuim 12数据库连接工具、PostGres...整合了ThingsBoard源码落地绝大部分(常见错误),带你避坑ThingsBoard基于源码的二次开发体验 如有新的问题,欢迎留言讨论

    common-situation:一些常见场景解决方案

    您还将在控制台中看到任何棉绒错误。 yarn test 在交互式监视模式下启动测试运行器。 有关更多信息,请参见关于的部分。 yarn build 构建生产到应用程序build文件夹。 它在生产模式下正确捆绑了React,并优化了...

    caronaboard-native:使用React Native制作的CaronaBoard

    常见错误及其解决方案将在 所有yarn命令都可以替换为npm 吉特·胡克斯(Git Hooks) 该项目具有通过 husky)配置的githooks ,可以在找到钩子。 基本上,每次提交尝试都会按照样式指南检查代码,有些错误可以通过...

    syntactor:JSON编辑器,用于编辑数据而不是语法

    仅允许输入有效代码(无语法错误) 与其他编辑器相比,击键次数或多或少的常见代码转换 目前,它只是一个JSON编辑器。 用法 在您的命令行中: yarn add syntactor # or npm install syntactor --save 在您的代码...

    molb-libui:g2b网站的通用ui组件

    使用脚本运行项目yarn start 您还可以构建您的设计系统以发布到私有npm或您自己的github实例: yarn build:production常见问题我运行过yarn build:production但是travis失败,并出现以下错误: Please run 'yarn ...

    moh-error:统一常见的结构,如错误

    莫-错误 先进的http响应友好型Error类(从Error扩展)来处理具有更多信息和功能的错误。 特征 使用额外信息创建高级错误的简便方法 轻松转换为Http响应 易于将错误发送给哨兵 安装 # with yarn yarn add moh-error...

    react-template

    一些预先提交的钩子,以避免您提交不够干净的东西 可用脚本 对于常见的Create React App命令,请点击上面的链接。 yarn lint:js 对所有.js,.ts,.tsx文件运行ESLint .js,.ts,.tsx并返回错误和警告。 yarn lint:js 对...

    frontend

    该项目使用eslint捕获常见错误,查找如何在编辑器中启用结果报告。 我们正在使用@reach/router来处理应用程序中的导航,请查看其以熟悉它们。 如果要合并测试,请使自己熟悉编写测试,并在代码中提供它们。 这里...

    adonis-ts-blog:使用AdonisJs框架v5的Web应用程序示例

    可以防御常见的网络攻击和的代码格式化 作为网络漂亮错误报告(用于开发) :memo: 先决条件 :chequered_flag: 入门在bash中运行: # Install dependenciesyarn install# Starts and keeps running Adonis Serveryarn...

    React-router-4:通过安装yarn和运行命令来运行仓库

    您将在下面找到一些有关如何执行常见任务的信息。 您可以在找到本指南的最新版本。 目录 自动格式化代码 更改页面<title> 安装依赖项 导入组件 代码分割 添加样式表 后处理CSS 添加CSS预处理器(Sass,Less...

    template-react-app:React应用程序的快速起点

    使用和Webpack&Babel捆绑模块,并配置用于加载样式表和常见资源(如图像和音频)。 还包括eslint的配置,以及通过Github Pages进行单线部署的自定义脚本。用法需要。安装应用yarn install启动开发服务器yarn start...

    accordion:常见问题问答手风琴。 基于https

    您还将在控制台中看到任何棉绒错误。 yarn test 在交互式监视模式下启动测试运行器。 有关更多信息,请参见关于的部分。 yarn build 构建生产到应用程序build文件夹。 它在生产模式下正确捆绑了React,并优化了...

    batch-submitter:[乐观]批量放大

    批量提交者 ... 以下是一些常见的选择: debug* -将匹配所有调试语句-非常冗长 info* -将匹配所有info语句-不太冗长,在大多数情况下很有用 warn* -将匹配所有警告-至少建议 error* -将匹配所有错误-不会忽

    css-positioning:为简单起见,使用 react 构建的常见 css 定位方法教程

    为简单起见,使用 react 构建的常见 css 定位方法教程。 此 repo 旨在用作现场演示和概念证明。 npx create-react-app 生成的自述文件: 创建 React 应用程序入门 这个项目是用引导的。 可用脚本 在项目目录中,您...

    Advanced React课程以及相关内容中的常见问题和错误。-JavaScript开发

    常见问题解答-React Avancado如何添加新的常见问题解答? 您必须克隆存储库,并在文件夹“ _faqs”内按照其他文件中已经存在的模式添加问题文件。 里面是什么? 该项目使用很多东西:TypeScript NextJS样式化组件...

    http-exception-transformer:ExpressJS中间件可发送结构化,干净且健壮的错误响应,并且不会对用户造成干扰

    特征常见问题的例外,例如NotFound(404),内部服务器错误(500),冲突(409),[...正在添加] 只是抛出错误。 无需将代码库包装到try catch块中并使代码库冗余。 简洁易用的API。简单用法要将软件包添加到您的...

    html-validator-module:NuxtHTML验证

    检测常见的可访问性错误 快速设置 将@nuxtjs/html-validator依赖项添加到您的项目中 yarn add @nuxtjs/html-validator # or npm install @nuxtjs/html-validator 添加@nuxtjs/html-validator到buildModules的...

    fetch-retry:包装在`fetch`周围,并具有合理的重试默认值

    重试 通过合理的默认设置(通过 )在fetch之上的一层,用于重试以防止常见错误。如何使用fetch-retry是一个下拉更换为fetch : const fetch = require ( '@vercel/fetch-retry' ) ( require ( 'node-fetch' ) )...

    rokoloca-front

    请参阅docs/create-redux-app以找到有关如何执行常见任务的更多信息。 安装完成后,您可以在项目文件夹中运行一些命令: npm start或yarn start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行...

Global site tag (gtag.js) - Google Analytics