Yarn资源分配性能调优
日志:
Container [pid=134663,containerID=container_1430287094897_0049_02_067966] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 1.5 GB of 10 GB virtual memory used. Killing container. Dump of the process-tree forError: Java heap space
问题1:Container xxx is running beyond physical memory limits
问题2:java heap space
优化前:
yarn.nodemanager.resource.memory-mb
8GB
yarn.nodemanager.resource.cpu-vcores
32core
pre Mapper
CPU:1 [mapreduce.map.cpu.vcores ]
MEM:1G [mapreduce.map.memory.mb ]
===> 8 map slot / nodepre Reducer
CPU:1 [mapreduce.reduce.cpu.vcores]
MEM:1G [mapreduce.reduce.memory.mb]
===> 8 reduce slot / node 【有8G内存,实际有CPU 32个,所以只能启动8个reduce在每个node上】
- map slot / reduce slot 由nodemanager的内存/CPU core上限与客户
端设置的单mapper, reducer内存/CPU使用值决定 - heapsize( java.opts中的-Xmx)应根据单mapper, reducer内存进
行调整,而与slot个数无关 => heapsize不能大于memory.mb值,一
般设置为memory.mb的85%左右
OOM
•内存、Heap
需要设置:
-内存:mapreduce.map.memory.mb
–Heap Size:-Xmx在mapreduce.map.java.opts做相同调整
–内存:mapreduce.reduce.memory.mb
–Heap Size:-Xmx在mapreduce.reduce.java.opts做相同调整
Container 超过了虚拟内存的使用限制
– Container XXX is running beyond virtual memory limits
• NodeManager端设置,类似系统层面的overcommit问题
–yarn.nodemanager.vmem-pmem-ratio 【默认2.1,我们的做法呢【物理内存和虚拟内存比率】值为了15,yarn-site.xml中修改】
<property><name>yarn.nodemanager.vmem-pmem-ratio</name><value>10</value></property>
–或者yarn.nodemanager.vmem-check-enabled,false掉 <property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property>
调优后:
mapreduce.map.java.opts, mapreduce.map.java.opts.max.heap=1.6G
mapreduce.reduce.java.opts,mapreduce.reduce.java.opts.max.heap=3.3G
注意上面两个参数和下面的mapper,reducer的内存有关系,是下面mem的0.85倍!
yarn.nodemanager.resource.memory-mb=32GB
yarn.nodemanager.resource.cpu-vcores=32core
pre Mapper
CPU:2 [mapreduce.map.cpu.vcores ]
MEM:2G [mapreduce.map.memory.mb ]
===> 16 map slot / nodepre Reducer
CPU:4 [mapreduce.reduce.cpu.vcores]
MEM:4G [mapreduce.reduce.memory.mb]
==> 8 reduce slot / node
shuffle.parallelcopies如何计算?
(reduce.shuffle并行执行的副本数,最大线程数–sqrt(节点数 map slot数) 与 (节点数 map slot数)/2 之间 ==>结果:{12-72}
mapreduce.reduce.shuffle.parallelcopies=68
1 |
`排序文件时要合并的流的数量。也就是说,在 reducer 端合并排序期间要使用的排序头 数量。此设置决定打开文件句柄数。并行合并更多文件可减少合并排序迭代次数并通过消 除磁盘 I/O 提高运行时间。注意:并行合并更多文件会使用更多的内存。如 'io.sort. factor' 设置太高或最大 JVM 堆栈设置太低,会产生过多地垃圾回收。Hadoop 默认值为 10,但 Cloudera 建议使用更高值。将是生成的客户端配置的一部分。` |
mapreduce.task.io.sort.factor=64
xml配置
yarn.nodemanager.vmem-pmem-ratio=10 # yarn-site.xml 的 YARN 客户端高级配置
mapreduce.task.timeout=1800000
impala调优
Impala 暂存目录:需要注意此目录磁盘空间问题!最好在单独的一个挂载点!
1、内存
-服务器端(impalad)
Mem:default_query_options MEM_LIMIT=128g
2、并发查询
queue.queue_wait_timeout_ms默认只有60s- queue_wait_timeout_ms=600000.default pool设置
3、资源管理
-Dynamic Resource Pools
.并发控制:max running queries
4、yarn资源隔离
http://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/NodeManagerCgroups.html
Yarn资源分配性能调优相关推荐
- Spark性能调优之资源分配
**性能优化王道就是给更多资源!**机器更多了,CPU更多了,内存更多了,性能和速度上的提升,是显而易见的.基本上,在一定范围之内,增加资源与性能的提升,是成正比的:写完了一个复杂的spark作业之后 ...
- Hadoop性能调优、YARN的内存和CPU配置
转 Hadoop性能调优.YARN的内存和CPU配置 2018年06月12日 21:01:54 toto1297488504 阅读数:2417 转: https://blog.csdn.net/deh ...
- CDH6.3.2之YARN生产环境调优(yarn 生产必做优化项)
调整YARN 本主题仅适用于YARN群集,并介绍如何为群集调整和优化YARN. 注意:下载Cloudera YARN调整电子表格以帮助计算YARN配置. 有关简短视频概述,请参阅调整YARN应用程序. ...
- Apache Spark Jobs 性能调优(二)
Apache Spark Jobs 性能调优(二) 调试资源分配 调试并发 压缩你的数据结构 数据格式 在这篇文章中,首先完成在 Part I 中提到的一些东西.作者将尽量覆盖到影响 Spark 程序 ...
- Spark的性能调优
下面这些关于Spark的性能调优项,有的是来自官方的,有的是来自别的的工程师,有的则是我自己总结的. 基本概念和原则 首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起: 每一台 ...
- Spark性能调优 之 合理规划资源配置
文章目录 1. 合理规划资源配置 1.1 简介 1.1.1 资源配置调优原理 1.2 资源配置说明 1.2.1 资源配置种类 1.2.2 资源配置方式 1.2.3 调优原则 2. 调节并行度 2.1 ...
- 大数据技术之_19_Spark学习_07_Spark 性能调优 + 数据倾斜调优 + 运行资源调优 + 程序开发调优 + Shuffle 调优 + GC 调优 + Spark 企业应用案例
大数据技术之_19_Spark学习_07 第1章 Spark 性能优化 1.1 调优基本原则 1.1.1 基本概念和原则 1.1.2 性能监控方式 1.1.3 调优要点 1.2 数据倾斜优化 1.2. ...
- Spark开发性能调优
Spark开发性能调优 标签(空格分隔): Spark –Write By Vin 1. 分配资源调优 Spark性能调优的王道就是分配资源,即增加和分配更多的资源对性能速度的提升是显而易见的,基本上 ...
- [3.0.0]性能调优之最大化资源配置
" 性能调优的王道,就是增加和分配更多的资源,如果说你的spark作业,能够分配的资源达到了你的能力范围的顶端之后,无法再分配更多的资源了,那么才是考虑去做后面的其他性能调优的点" ...
最新文章
- ProE官方网站系列视频教程
- ffmpeg 怎么处理udp音频_STREAM: srs 2.0release,ffmpeg实时转码udp流,出现只有音频没有视频的问题?...
- 自定义UISegmentedControl
- Java中ListE对象赋值问题(引用传递和值传递)
- ITK:将内核与位置上的图像相乘
- 13-函数的封装和复用
- 小程序 || 语句_C ++条件语句| 查找输出程序| 套装1
- 线上分享|云和恩墨大讲堂201902:MySQL基础之体系结构
- python发送邮件并返回提示_用python3的smtplib库发邮件一直返回无法发送邮件提示,是什么原因?...
- 深入解析软件测试行业!它是否存在前景和出路?
- java 向下转型运行时错误_java多态和向下转型问题。
- Git(10):删除远端仓库中多余文件(**.iml/target文件)
- 利用HTML和CSS做的简历模板
- 怎么用spss做冗余分析_SPSS在线_SPSSAU_SPSS典型相关分析
- 如何在Mac OS上从Photoshop 2020作为插件访问Topaz DeNoise AI?
- C# 操作Excel加水印
- 基于51单片机的呼出有毒气体(煤气、酒精、co)检测仪设计
- Android移动开发——全方面分析 Hilt 和 Koin 性能
- 服务器密码修改db2数据库密码错误,db2数据库近一年运行正常,9月4日晚突然连不上数据库,报密码错误,重启数据库后正常?...
- windows 技术篇-共享地址里的共享文件显示为灰色叉叉不可用问题原因及解决方法
热门文章
- 如何解决VC2019中:error C3861: “xxxx”: 找不到标识符
- 识别干系人-启动过程组
- 项目成员责任分配矩阵
- Code Review(代码评审规范)
- Front-end_1_前端介绍
- Canvas实现绚丽的倒计时效果(动画效果)
- 连麦+PK+电商+问答,声网助力Kumu实现多种直播玩法创新
- 一个超方便使用SQL的Python神器
- 达摩院开放AI能力宝塔,万般法器助力新时代智能应用
- CTF平台题库writeup(四)--BugKuCTF-代码审计(14题详解)