背景

线上Hadoop集群资源严重不足,可能存在添加磁盘,添加CPU,添加节点的操作,那么在添加这些硬件资源之后,我们的集群是不能立马就利用上这些资源的,需要修改集群Yarn资源配置,然后使其生效。

现有环境

服务器:12台,内存64Gx12=768G,物理cpu16x12=192,磁盘12Tx12=144T

组件:Hadoop-2.7.7,Hive-2.3.4,Presto-220,Dolphinscheduler-1.3.6,Sqoop-1.4.7

分配策略

由于我们的版本是Hadoop-2.7.7,有些默认配置是固定一个值,好比可用内存8G,可用CPU核数8核,如果调优就需要我们配置的东西比较多。

官方Yarn参数配置:https://hadoop.apache.org/docs/r2.7.7/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

未来的版本(Hadoop-3.0+)其实是有自动检测硬件资源的机制,需要开启配置:yarn.nodemanager.resource.detect-hardware-capabilities,然后会自动计算资源配置,不过这个是默认关闭的,每个节点的NodeManager可用内存配置 yarn.nodemanager.resource.memory-mb 和CPU核数 yarn.nodemanager.resource.cpu-vcores 也是受此配置影响, 默认配置都是-1,则可用内存为8G,CPU核数为8核。如果开启了自动监测硬件资源,其他配置则可以忽略不用配置,简化了配置。

官方Yarn参数配置:https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

还有一个重要的配置 yarn.nodemanager.vmem-pmem-ratio ,表示NodeManager上的Container物理内存不足时,可用使用虚拟内存,默认为物理内存的2.1倍。

修改配置

yarn-site.xml

修改yarn-site.xml,有则修改,没有则添加,这里我们设置单个节点可用内存30G,可用CPU核数为16

<property>
   <name>yarn.nodemanager.resource.memory-mb</name>
   <value>30720</value>
   <discription>每个节点可用内存,默认8192M(8G),这里设置30G</discription>
</property>
<property>
   <name>yarn.scheduler.minimum-allocation-mb</name>
   <value>1024</value>
   <discription>单个任务可申请最少内存,默认1024MB</discription>
</property>
<property>
   <name>yarn.scheduler.maximum-allocation-mb</name>
   <value>20480</value>
   <discription>单个任务可申请最大内存,默认8192M(8G),这里设置20G</discription>
</property>
<property>
   <name>yarn.app.mapreduce.am.resource.mb</name>
   <value>2048</value>
   <discription>默认为1536。MR运行于YARN上时,为AM分配多少内存。默认值通常来说过小,建议设置为2048或4096等较大的值。</discription>
</property>
<property>
   <name>yarn.nodemanager.resource.cpu-vcores</name>
   <value>16</value>
   <discription>默认为8。每个节点可分配多少虚拟核给YARN使用,通常设为该节点定义的总虚拟核数即可。</discription>
</property>
<property>
   <name>yarn.scheduler.maximum-allocation-vcores</name>
   <value>32</value>
   <discription>分别为1/32,指定RM可以为每个container分配的最小/最大虚拟核数,低 于或高于该限制的核申请,会按最小或最大核数来进行分配。默认值适合 一般集群使用。</discription>
</property>
<property>
   <name>yarn.scheduler.minimum-allocation-vcores</name>
   <value>1</value>
   <discription>分别为1/32,指定RM可以为每个container分配的最小/最大虚拟核数,低 于或高于该限制的核申请,会按最小或最大核数来进行分配。默认值适合 一般集>群使用。</discription>
</property>
<property>
 <name>yarn.nodemanager.vcores-pcores-ratio</name>
 <value>2</value>
 <discription>每使用一个物理cpu,可以使用的虚拟cpu的比例,默认为2</discription>
</property>

<property>
 <name>yarn.nodemanager.vmem-pmem-ratio</name>
 <value>5.2</value>
 <discription>物理内存不足时,使用的虚拟内存,默认是2.1,表示每使用1MB的物理内存,最多可以使用2.1MB的虚拟内存总量。</discription>
</property>

mapred-site.xml

修改mapred-site.xml,有则修改,没有则添加

给单个任务设置内存资源,注意这里的值不能大于上面对应的内存 yarn.scheduler.maximum-allocation-mb

<property>
   <name>mapreduce.map.memory.mb</name>
   <value>2048</value>
   <discription>默认均为1024,调度器为每个map/reduce task申请的内存数。各Job也可以单独指定。</discription>
</property>
<property>
   <name>mapreduce.reduce.memory.mb</name>
   <value>2048</value>
   <discription>默认均为1024,调度器为每个map/reduce task申请的内存数。各Job也可以单独指定。</discription>
</property>

集群生效

分发

修改完配置后,一定要将配置分发到其他集群节点,使用 scp 或者 xsync 工具分发到其他节点,这里举例分发到一个节点

cd /data/soft/hadoop/hadoop-2.7.7/etc/hadoop

scp -r yarn-site.xml mapred-site.xml data002:`pwd`

动态重启

为了不影响集群使用,我们单独启停Yarn,Yarn的服务主要有两个NodeManager和ResourceManager,单独启停命令

yarn-daemon.sh stop nodemanager yarn-daemon.sh start nademanager

yarn-daemon.sh stop resourcemanager yarn-daemon.sh start resourcemanager

根据集群节点逐个执行以上命令,ResourceManager对应的节点执行对应的命令。这样我们就保证了集群资源的动态调优。

当然,如果单个重启麻烦,也可以执行Yarn的重启命令

stop-yarn.sh start-yarn.sh

ResourceManager对应的从节点单独启停即可。

更多请在公号平台搜索:选手一号位,本文编号:2004,回复即可获取。

YARN线上动态资源调优的更多相关文章

  1. CentOS7安装CDH 第十二章:YARN的资源调优

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  2. Spark(六)Spark之开发调优以及资源调优

    Spark调优主要分为开发调优.资源调优.数据倾斜调优.shuffle调优几个部分.开发调优和资源调优是所有Spark作业都需要注意和遵循的一些基本原则,是高性能Spark作业的基础:数据倾斜调优,主 ...

  3. Spark性能优化--开发调优与资源调优

    参考: https://tech.meituan.com/spark-tuning-basic.html https://zhuanlan.zhihu.com/p/22024169 一.开发调优 1. ...

  4. (转)WebSphere 中池资源调优 - 线程池、连接池和 ORB

    WebSphere 中池资源调优 - 线程池.连接池和 ORB 来自:https://www.ibm.com/developerworks/cn/websphere/library/techartic ...

  5. Yarn的资源调优

    一.概述 每个job提交到yarn上执行时,都会分配Container容器去运行,而这个容器需要资源才能运行,这个资源就是Cpu和内存. 1.CPU资源调度 目前的CPU被Yarn划分为虚拟CPU,这 ...

  6. (转)Spark性能优化:资源调优篇

      在开发完Spark作业之后,就该为作业配置合适的资源了.Spark的资源参数,基本都可以在spark-submit命令中作为参数设置.很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何 ...

  7. 【转载】 Spark性能优化:资源调优篇

    在开发完Spark作业之后,就该为作业配置合适的资源了.Spark的资源参数,基本都可以在spark-submit命令中作为参数设置.很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置 ...

  8. 013 Spark中的资源调优

    1.平常的资源使用情况 2.官网 3.资源参数调优 cores memory JVM 4.具体参数 可以在--conf参数中给定资源配置相关信息(配置的一般是JVM的一些垃圾回收机制) --drive ...

  9. Spark学习之路 (十二)SparkCore的调优之资源调优

    摘抄自:https://tech.meituan.com/spark-tuning-basic.html 一.概述 在开发完Spark作业之后,就该为作业配置合适的资源了.Spark的资源参数,基本都 ...

随机推荐

  1. OpenCores注册步骤和成功提交

    一  OpenCores 网站简介,这个是全世界最大的FPGA开源IP核网站.由于最近在学习USB2.0host control IP,所以想去网上下载相关的IP例程学习.通过搜索发现,有两个网站十分 ...

  2. 请说说你对Struts2的拦截器的理解?

    Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现. 拦截器栈(Interceptor Stac ...

  3. BIO、NIO、AIO 有什么区别?

    BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低.NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 ...

  4. 使用 JDBC 操作数据库时,如何提升读取数据的性能?如 何提升更新数据的性能?

    要提升读取数据的性能,可以指定通过结果集(ResultSet)对象的 setFetchSize() 方法指定每次抓取的记录数(典型的空间换时间策略):要提升更新数据的性能 可以使用 PreparedS ...

  5. 什么是微服务架构中的 DRY?

    DRY 代表不要重复自己.它基本上促进了重用代码的概念.这导致开发和共享库, 这反过来导致紧密耦合.

  6. 创建POJO

    创建一个名为student.java的POJO. 第一步,在包里面创建一个student类,右键点击包,点击新建,再点击创建一个类. 第二步,输入类名,点击完成. 第三步,输入数据类型和主键名,再写一 ...

  7. js技术之input只读功能可以通过js设置readonly

    一.input标签 输入项标签,不同type属性,会有不同的显示效果和不同的作用 input标签的属性: disabled:表单项禁用,不可修改值,也不会被提交 readonly:表单项只读,不可修改 ...

  8. 动态规划 洛谷P1616 疯狂的采药

    动态规划 洛谷P1616 疯狂的采药 同样也是洛谷的动态规划一个普及-的题目,接下来分享一下我做题代码 看到题目,没很认真的看数据大小,我就提交了我的代码: 1 //动态规划 洛谷P1616 疯狂的采 ...

  9. 小程序web-view加载H5信息不全

    满足小程序的web-view标签跳转网页形式 配置小程序后台的web-view(业务域名) 可打开关联的公众号的文章 通常实现逻辑 页面加载的时候赋值于一个data对象的值,然后赋值到web-view ...

  10. Codepen 每日精选(2018-4-16)

    按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以打开原始页面. 内容切换的交互效果https://codepen.io/jcoulterde... 报价卡片的交互效果ht ...