hive出现内存溢出_CDH中,Hive执行大表查询,等操作时候,出现is running beyond physical memory limits. Current usage: 1.0 GB o...

本文描述了在CDH 5.13.2环境下,Hive执行大表查询时遇到的内存溢出问题。错误显示容器使用了超过1GB的物理内存和2.7GB的虚拟内存。解决方案包括在`mapreduc-site.xml`中调整map和reduce的内存分配,并在`yarn-site.xml`中修改`yarn.nodemanager.vmem-pmem-ratio`参数以避免虚拟内存溢出。通过高级配置进行这些参数设置并重启服务后,问题得到解决。
摘要由CSDN通过智能技术生成

1.版本信息

CDH 5.13.2

hive 1.2.1

hadoop 2.6.0

2.错误现象Container [pid=28500,containerID=container_e15_1570527924910_2927_01_000176] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 2.7 GB of 2.1 GB virtual memory used. Killing container.Dump of the process-tree for container_e15_1570527924910_2927_01_000176 : |- PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS) SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) RSSMEM_USAGE(PAGES) FULL_CMD_LINE |- 28500 28497 28500 28500 (bash) 0 1 115904512 358 /bin/bash -c /usr/java/jdk1.8.0_181-cloudera/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Djava.net.preferIPv4Stack=true -Xmx820m -Djava.io.tmpdir=/cloudera/yarn/nm/usercache/hdfs/appcache/application_1570527924910_2927/container_e15_1570527924910_2927_01_000176/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/cloudera/yarn/container-logs/application_1570527924910_2927/container_e15_1570527924910_2927_01_000176 -Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA -Dhadoop.root.logfile=syslog -Dyarn.app.mapreduce.shuffle.logger=INFO,shuffleCLA -Dyarn.app.mapreduce.shuffle.logfile=syslog.shuffle -Dyarn.app.mapreduce.shuffle.log.filesize=0 -Dyarn.app.mapreduce.shuffle.log.backups=0 org.apache.hadoop.mapred.YarnChild 192.168.100.226 43124 attempt_1570527924910_2927_r_000000_3 16492674416816 1>/cloudera/yarn/container-logs/application_1570527924910_2927/container_e15_1570527924910_2927_01_000176/stdout 2>/cloudera/yarn/container-logs/application_1570527924910_2927/container_e15_1570527924910_2927_01_000176/stderr |- 28519 28500 28500 28500 (java) 46681 2683 2833100800 263531 /usr/java/jdk1.8.0_181-cloudera/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Djava.net.preferIPv4Stack=true -Xmx820m -Djava.io.tmpdir=/cloudera/yarn/nm/usercache/hdfs/appcache/application_1570527924910_2927/container_e15_1570527924910_2927_01_000176/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/cloudera/yarn/container-logs/application_1570527924910_2927/container_e15_1570527924910_2927_01_000176 -Dyarn.app.container.log.filesize=0 -Dhadoop.root.logger=INFO,CLA -Dhadoop.root.logfile=syslog -Dyarn.app.mapreduce.shuffle.logger=INFO,shuffleCLA -Dyarn.app.mapreduce.shuffle.logfile=syslog.shuffle -Dyarn.app.mapreduce.shuffle.log.filesize=0 -Dyarn.app.mapreduce.shuffle.log.backups=0 org.apache.hadoop.mapred.YarnChild 192.168.100.226 43124 attempt_1570527924910_2927_r_000000_3 16492674416816

错误分析:Container [pid=28500,containerID=container_e15_1570527924910_2927_01_000176] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 2.7 GB of 2.1 GB virtual memory used. Killing container.

显示物理内存和虚拟内存的占用情况,

问题1.系统分配物理内存 1G ,hive执行时需要1.0G   :可能物理内存溢出(分为map 和 reduce两种可能)

问题2.系统虚拟内存2.1G,hive执行时候需要2.7G:虚拟内存溢出

3.解决方案

重在调节参数

问题1、在mapreduc-site.xml配置里面设置mapreduce的内存分配大小,本人服务器内存为128G。

mapreduce.map.memory.mb

5120

mapreduce.reduce.memory.mb

5120

注意,CHD界面的参数设置有可能不会生效,需要通过高级配置(博主在这里花费了很多时间,最终通过高级配置得已解决问题)如图。配置完成后重启服务。

d280a699e810

配置图

问题2. 解决虚拟机内存问题,通过调节yarn-site.xml 中的yarn.nodemanager.vmem-pmem-ratio,默认为2.1(虚拟机内存=比例参数*contain内存大小)同样需要通过高级配置,具体数据不要太离谱。

d280a699e810

cdh,yarn配置里面

完成以上配置重启服务,问题得以解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值