CDH中,Hive执行大表查询,等操作时候,出现is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB p...

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


配置图

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


cdh,yarn配置里面

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

你可能感兴趣的:(CDH中,Hive执行大表查询,等操作时候,出现is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB p...)