SW Engineering/Hadoop

MapReduce 메모리 부족으로 인한 쿼리 실패

SungWookKang 2019. 12. 14. 01:11
반응형

MapReduce 메모리 부족으로 인한 쿼리 실패

-         FAILED Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

 

·       Version : Hadoop 3.0.0-cdh6.3.2, Hive

 

Hue에서 Hive 결과셋이 쿼리를 실행하였을때 아래와 같은 오류가 발생하였다.

Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

 

위의 에러로그는 실제 에러로그가 아니기 때문에 문제를 해결하기 위해서는 실제 에러로그를 살펴보아야 한다. 필자의 경우 Hadoop Job History UI에서 에러 로그를 확인하였다.

[2019-12-12 09:11:17.232]Container [pid=11024,containerID=container_1576170300177_0002_01_000176] is running 45285376B beyond the 'PHYSICAL' memory limit. Current usage: 1.0 GB of 1 GB physical memory used; 2.5 GB of 2.1 GB virtual memory used. Killing container. Dump of the process-tree for container_1576170300177_0002_01_000176 : |- PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS) SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) RSSMEM_USAGE(PAGES) FULL_CMD_LINE |- 11024 11016 11024 11024 (bash) 0 0 9797632 287 /bin/bash -c /usr/lib/jvm/java-openjdk/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Djava.net.preferIPv4Stack=true -Xmx820m -Djava.io.tmpdir=/data/yarn/nm/usercache/admin/appcache/application_1576170300177_0002/container_1576170300177_0002_01_000176/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/data/yarn/container-logs/application_1576170300177_0002/container_1576170300177_0002_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 10.210.63.18 31249 attempt_1576170300177_0002_r_000011_0 176 1>/data/yarn/container-logs/application_1576170300177_0002/container_1576170300177_0002_01_000176/stdout 2>/data/yarn/container-logs/application_1576170300177_0002/container_1576170300177_0002_01_000176/stderr |- 11057 11024 11024 11024 (java) 3712 153 2693627904 272913 /usr/lib/jvm/java-openjdk/bin/java -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN -Djava.net.preferIPv4Stack=true -Xmx820m -Djava.io.tmpdir=/data/yarn/nm/usercache/admin/appcache/application_1576170300177_0002/container_1576170300177_0002_01_000176/tmp -Dlog4j.configuration=container-log4j.properties -Dyarn.app.container.log.dir=/data/yarn/container-logs/application_1576170300177_0002/container_1576170300177_0002_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 10.210.63.18 31249 attempt_1576170300177_0002_r_000011_0 176 [2019-12-12 09:11:17.303]Container killed on request. Exit code is 143 [2019-12-12 09:11:17.312]Container exited with a non-zero exit code 143.

 

필자가 생각할땐 메모리 리밋으로 인하여 MapReduce 충분한 메모리를 확보하지 못해 강제로 태스크가 종료된것으로 판단되었다. 실제 서버의 물리 메모리는 충분히 여유 공간이 많았기 때문에, MapReduce 할당된 메모리 설정에 문제가 있다고 판단되어  YARN에서 메모리 설정을 다음과 같이 변경하였으며, 이후 해당 문제가 발하지 않았다.

Map Task Memory (mapreduce.map.memory.mb)

변경 / : 0GB -> 6GB

Reduce Task Memory (mapreduce.reduce.memory.mb)

변경 / : 0GB -> 6GB

 

 

 

 

2019-12-13 / Sungwook Kang / http://sungwookkang.com

 

Hadoop, hive, YARN, Map Task Memory, Reduce Task Memory, MapReduce, 메모리 설정, 맵리듀스 메모리 설정

반응형

'SW Engineering > Hadoop' 카테고리의 다른 글

Hive Meta Database  (0) 2019.12.19
Hive Meta Store 설정  (0) 2019.12.18
HiveServer2 와 Beeline  (0) 2019.12.13
Hive CLI  (0) 2019.12.12
HDFS Safe 모드  (0) 2019.12.11