日志:

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资源分配性能调优相关推荐

  1. Spark性能调优之资源分配

    **性能优化王道就是给更多资源!**机器更多了,CPU更多了,内存更多了,性能和速度上的提升,是显而易见的.基本上,在一定范围之内,增加资源与性能的提升,是成正比的:写完了一个复杂的spark作业之后 ...

  2. Hadoop性能调优、YARN的内存和CPU配置

    转 Hadoop性能调优.YARN的内存和CPU配置 2018年06月12日 21:01:54 toto1297488504 阅读数:2417 转: https://blog.csdn.net/deh ...

  3. CDH6.3.2之YARN生产环境调优(yarn 生产必做优化项)

    调整YARN 本主题仅适用于YARN群集,并介绍如何为群集调整和优化YARN. 注意:下载Cloudera YARN调整电子表格以帮助计算YARN配置. 有关简短视频概述,请参阅调整YARN应用程序. ...

  4. Apache Spark Jobs 性能调优(二)

    Apache Spark Jobs 性能调优(二) 调试资源分配 调试并发 压缩你的数据结构 数据格式 在这篇文章中,首先完成在 Part I 中提到的一些东西.作者将尽量覆盖到影响 Spark 程序 ...

  5. Spark的性能调优

    下面这些关于Spark的性能调优项,有的是来自官方的,有的是来自别的的工程师,有的则是我自己总结的. 基本概念和原则 首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起: 每一台 ...

  6. Spark性能调优 之 合理规划资源配置

    文章目录 1. 合理规划资源配置 1.1 简介 1.1.1 资源配置调优原理 1.2 资源配置说明 1.2.1 资源配置种类 1.2.2 资源配置方式 1.2.3 调优原则 2. 调节并行度 2.1 ...

  7. 大数据技术之_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. ...

  8. Spark开发性能调优

    Spark开发性能调优 标签(空格分隔): Spark –Write By Vin 1. 分配资源调优 Spark性能调优的王道就是分配资源,即增加和分配更多的资源对性能速度的提升是显而易见的,基本上 ...

  9. [3.0.0]性能调优之最大化资源配置

    " 性能调优的王道,就是增加和分配更多的资源,如果说你的spark作业,能够分配的资源达到了你的能力范围的顶端之后,无法再分配更多的资源了,那么才是考虑去做后面的其他性能调优的点" ...

最新文章

  1. ProE官方网站系列视频教程
  2. ffmpeg 怎么处理udp音频_STREAM: srs 2.0release,ffmpeg实时转码udp流,出现只有音频没有视频的问题?...
  3. 自定义UISegmentedControl
  4. Java中ListE对象赋值问题(引用传递和值传递)
  5. ITK:将内核与位置上的图像相乘
  6. 13-函数的封装和复用
  7. 小程序 || 语句_C ++条件语句| 查找输出程序| 套装1
  8. 线上分享|云和恩墨大讲堂201902:MySQL基础之体系结构
  9. python发送邮件并返回提示_用python3的smtplib库发邮件一直返回无法发送邮件提示,是什么原因?...
  10. 深入解析软件测试行业!它是否存在前景和出路?
  11. java 向下转型运行时错误_java多态和向下转型问题。
  12. Git(10):删除远端仓库中多余文件(**.iml/target文件)
  13. 利用HTML和CSS做的简历模板
  14. 怎么用spss做冗余分析_SPSS在线_SPSSAU_SPSS典型相关分析
  15. 如何在Mac OS上从Photoshop 2020作为插件访问Topaz DeNoise AI?
  16. C# 操作Excel加水印
  17. 基于51单片机的呼出有毒气体(煤气、酒精、co)检测仪设计
  18. Android移动开发——全方面分析 Hilt 和 Koin 性能
  19. 服务器密码修改db2数据库密码错误,db2数据库近一年运行正常,9月4日晚突然连不上数据库,报密码错误,重启数据库后正常?...
  20. windows 技术篇-共享地址里的共享文件显示为灰色叉叉不可用问题原因及解决方法

热门文章

  1. 如何解决VC2019中:error C3861: “xxxx”: 找不到标识符
  2. 识别干系人-启动过程组
  3. 项目成员责任分配矩阵
  4. Code Review(代码评审规范)
  5. Front-end_1_前端介绍
  6. Canvas实现绚丽的倒计时效果(动画效果)
  7. 连麦+PK+电商+问答,声网助力Kumu实现多种直播玩法创新
  8. 一个超方便使用SQL的Python神器
  9. 达摩院开放AI能力宝塔,万般法器助力新时代智能应用
  10. CTF平台题库writeup(四)--BugKuCTF-代码审计(14题详解)