线上部分job运行失败,报OOM的错误:

因为是maptask报错,怀疑是map数量过少,导致oom,因此调整参数,增加map数量,但是问题依然存在。看来和map的数量没有关系。
通过jobid查找jobhistory中对应的日志信息,定位到出错的task id和对应的host.通过日志查看出问题的containerid.
由于container是由RM进行分配的,查看RM的日志,可以看到container的分配情况:
比如下面的例子:
2014-05-06 16:00:00,632 INFO org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode: Assigned container container_1399267192386_43455_01_000037 of capacity <memory:1536, vCores:1> on host xxxx:44614, which currently has 4 containers, <memory:6144, vCores:4> used and <memory:79872, vCores:42> available

可以看到container的id,host和内存大小,cpu 大小。
进一步查看NM的相关container日志:
2014-05-05 10:14:47,001 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl: Start request for container_1399203487215_21532_01_000035 by user hdfs
2014-05-05 10:14:47,001 INFO org.apache.hadoop.yarn.server.nodemanager.NMAuditLogger: USER=hdfs IP=10.201.203.111       OPERATION=Start Container Request       TARGET=ContainerManageImpl      RESULT=SUCCESS  APPID=application_1399203487215_21532   CONTAINERID=container_1399203487215_21532_01_000035
2014-05-05 10:14:47,001 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.application.Application: Adding container_1399203487215_21532_01_000035 to application application_1399203487215_21532
2014-05-05 10:14:47,055 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1399203487215_21532_01_000035 transitioned from NEW to LOCALIZING
2014-05-05 10:14:47,058 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService: Created localizer for container_1399203487215_21532_01_000035
2014-05-05 10:14:47,060 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService: Writing credentials to the nmPrivate file /home/vipshop/hard_disk/10/yarn/local/nmPrivate/container_1399203487215_21532_01_000035.tokens. Credentials list:
2014-05-05 10:14:47,412 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1399203487215_21532_01_000035 transitioned from LOCALIZING to LOCALIZED
2014-05-05 10:14:47,454 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1399203487215_21532_01_000035 transitioned from LOCALIZED to RUNNING
2014-05-05 10:14:47,493 INFO org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: launchContainer: [bash, /home/vipshop/hard_disk/6/yarn/local/usercache/hdfs/appcache/application_1399203487215_21532/container_1399203487215_21532_01_000035/default_container_executor.sh]
2014-05-05 10:14:48,827 INFO org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor: Copying from /home/vipshop/hard_disk/10/yarn/local/nmPrivate/container_1399203487215_21532_01_000035.tokens to /home/vipshop/hard_disk/11/yarn/local/usercache/hdfs/appcache/application_1399203487215_21532/container_1399203487215_21532_01_000035.tokens
2014-05-05 10:14:49,169 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Starting resource-monitoring for container_1399203487215_21532_01_000035
2014-05-05 10:14:49,305 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Memory usage of ProcessTree 21209 for container-id container_1399203487215_21532_01_000035: 66.7 MB of 1.5 GB physical memory used; 2.1 GB of 3.1 GB virtual memory used
2014-05-05 10:14:53,063 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Memory usage of ProcessTree 21209 for container-id container_1399203487215_21532_01_000035: 984.1 MB of 1.5 GB physical memory used; 2.1 GB of 3.1 GB virtual memory used
2014-05-05 10:14:56,379 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Memory usage of ProcessTree 21209 for container-id container_1399203487215_21532_01_000035: 984.5 MB of 1.5 GB physical memory used; 2.1 GB of 3.1 GB virtual memory used
.......
2014-05-05 10:19:26,823 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: Memory usage of ProcessTree 21209 for container-id container_1399203487215_21532_01_000035: 1.1 GB of 1.5 GB physical memory used; 2.1 GB of 3.1 GB virtual memory used
2014-05-05 10:19:27,459 INFO org.apache.hadoop.yarn.server.nodemanager.NMAuditLogger: USER=hdfs IP=10.201.203.111       OPERATION=Stop Container Request        TARGET=ContainerManageImpl      RESULT=SUCCESS  APPID=application_1399203487215_21532   CONTAINERID=container_1399203487215_21532_01_000035
2014-05-05 10:19:27,459 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1399203487215_21532_01_000035 transitioned from RUNNING to KILLING
2014-05-05 10:19:27,459 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch: Cleaning up container container_1399203487215_21532_01_000035
2014-05-05 10:19:27,800 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.container.Container: Container container_1399203487215_21532_01_000035 transitioned from KILLING to CONTAINER_CLEANEDUP_AFTER_KILL

可以看到,虽然container分配的内存为1.5,但是在使用到1.1G(1.1 GB of 1.5 GB physical memory used)时task被kill掉了。。还有400多M的剩余,看来不是task的整个内存大小分配的太小导致,比较像perm的问题(默认为64m)
更新mapred的设置如下:
<property><name>mapreduce.map.java.opts</name><value>-Xmx1280m -Xms1280m -Xmn256m -XX:SurvivorRatio=6 -XX:MaxPermSize=128m</value></property><property><name>mapreduce.reduce.java.opts</name><value>-Xmx1280m -Xms1280m -Xmn256m -XX:SurvivorRatio=6 -XX:MaxPermSize=128m</value></property><property><name>mapred.child.java.opts</name><value>-Xmx1280m -Xms1280m -Xmn256m -XX:SurvivorRatio=6 -XX:MaxPermSize=128m</value><final>true</final></property>

重新运行job,成功。
其实对应java的oom问题来说,最好的方法是打印gc的信息和dump内存的堆栈,然后使用MAT一类的工具来进行分析。

转载于:https://blog.51cto.com/caiguangguang/1407424

yarn oom问题一例相关推荐

  1. idea内存溢出解决_各种OOM代码样例及解决方法

    针对目前大家对OOM的类型不太熟悉,那么来总结一下各种OOM出现的情况以及解决方法.把各种OOM的情况列出来,然后逐一进行代码编写复现和提供解决方法. 1. 堆溢出-java.lang.OutOfMe ...

  2. 各种OOM代码样例及解决方法

    点击上方「蓝字」关注我们 针对目前大家对OOM的类型不太熟悉,那么来总结一下各种OOM出现的情况以及解决方法.把各种OOM的情况列出来,然后逐一进行代码编写复现和提供解决方法. 1. 堆溢出-java ...

  3. yarn的配置 -- 无法将“yo”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

    yo : 无法将"yo"项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次. 在这里以 yarn 安装 yeom ...

  4. spark submit参数及调优

    spark submit参数及调优 原文地址 spark submit参数介绍 你可以通过spark-submit --help或者spark-shell --help来查看这些参数. 使用格式:  ...

  5. spark submit参数及调优(转载)

    spark submit参数介绍 你可以通过spark-submit --help或者spark-shell --help来查看这些参数. 使用格式:  ./bin/spark-submit \--c ...

  6. spark submit参数及调试

    原文:http://www.cnblogs.com/haoyy/p/6893943.html spark submit参数介绍 你可以通过spark-submit --help或者spark-shel ...

  7. Spark Submit提交及参数调优

    https://www.cnblogs.com/LHWorldBlog/p/8414342.html https://www.cnblogs.com/haoyy/p/6893943.html spar ...

  8. Spark:spark submit参数及调优 perfect

    先看下spark运行原理流程: 我们使用spark-submit提交一个Spark作业之后,这个作业就会启动一个对应的Driver进程. 根据你使用的部署模式(deploy-mode)不同,Drive ...

  9. Android面试总结经

    自上周怒辞职以后,就開始苦逼的各种面试生涯,生活全然靠私活来接济,时有时没有,真难.还能快乐的玩耍吗.最多一天面试了5家,哎感觉都是不急招人,各种等待通知.好不easy等来一家.还克扣了薪资,从我要的 ...

最新文章

  1. 如何解决从数据库里面取出的时间晚了8个小时
  2. Centos5.5下lvs+keepalived集群
  3. Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
  4. python3.7 6如何安装-Python 3.7.1在CentOS 6.10 安装部署
  5. IT PRO的职业生涯
  6. 数据结构解析——小白也能看懂的单链表
  7. Silverlight初级教程-库
  8. Presto基本概念
  9. 设置其他用户文件、文件夹权限与现用户权限相同(命令、权限)
  10. 如何配置 strongSwan 客户端 -- 节选自 OpenSuSE 中文用户手册
  11. javaScript与MVC
  12. PacketFence ZEN 4.0.1 发布,网络接入控制
  13. 解决atomikos在oracle应用中的XA事务异常 Error in recovery
  14. 在写spring项目的时候,有时候需要写ApplicationContext,有时候不要写ApplicationContext
  15. linux sokit使用方法,【sokit TCP/UDP 数据包收发测试(调试)工具怎么用】sokit TCP/UDP 数据包收发测试(调试)工具好不好_使用技巧-ZOL软件百科...
  16. Word修改标题样式缩进不起作用原因
  17. Linux显示2015年日历表
  18. js底层原理作用域和作用域链
  19. CC00009.CloudOpenStack——|OpenStack组件.V02|——|openstack-glance|controller节点下部署glanc
  20. [网站建设] 深度解析搜索引擎的原理结构

热门文章

  1. python定时任务_Python定时任务(上)
  2. freemarker html 引入script_HTML编码规范
  3. 引用 Map 数据结构的排序问题
  4. 阶乘因式分解(一) -- ACM解决方案
  5. Linux 部分常用命令
  6. linux网络编程之通信协议格式
  7. php变量使用,php变量的使用
  8. C语言多文件编译链接为1个可执行文件的简单原理
  9. MMKV集成与原理,轻松拿下offer
  10. html知识笔记(二)——div、table、a标签