窝头就辣椒 2015-10-08 01:17 采纳率: 0%
浏览 5693
已结题

cdh hadoop mapreduce 运行时的问题:(有时候会出现,有时候不出现,急求大神帮助)

15/10/08 08:49:13 INFO mapreduce.Job: Job job_1419225162729_18465 running in uber mode : false
15/10/08 08:49:13 INFO mapreduce.Job: map 0% reduce 0%
15/10/08 08:49:13 INFO mapreduce.Job: Job job_1419225162729_18465 failed with state FAILED due to: Application application_1419225162729_18465 failed 1 times due to AM Container for appattempt_1419225162729_18465_000001 exited with exitCode: -1000 due to: java.io.IOException: Not able to initialize app-log directories in any of the configured local directories for app application_1419225162729_18465
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.createAppLogDirs(DefaultContainerExecutor.java:459)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.startLocalizer(DefaultContainerExecutor.java:91)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService$LocalizerRunner.run(ResourceLocalizationService.java:861)

.Failing this attempt.. Failing the application.
15/10/08 08:49:13 INFO mapreduce.Job: Counters: 0
Moved: 'hdfs://oiddhnode02:8020/user/nmger/worktemp/2015100408' to trash at: hdfs://oiddhnode02:8020/user/nmger/.Trash/Current

  • 写回答

2条回答 默认 最新

  • 窝头就辣椒 2015-10-09 09:40
    关注

    这个问题没人回答?唉,,幸亏我自己解决了,领导一直在问,晚上回家还在想这问题呢。其实从问题的报错显示是不能创建任务日志目录,且是local directories ,那么如果集群之前一直正常,且执行此任务也正常,同时出错之前没人改过集群的配置什么,那么就是集群本身由于长时间不维护出现的问题
    ,开始的时候查看yarn-site.xml的配置,发现了如下两个参数的配置


    yarn.nodemanager.log-dirs
    /var/log/hadoop-yarn/container


    yarn.nodemanager.remote-app-log-dir
    /tmp/logs

    上面两个参数在集群机器上对比发现,第一个是在机器目录上创建的日志目录,第二个是在hdfs上存在的任务日志目录,最开始,是把container里面的日志压缩备份,删除了一些,但是不起作用,有又把hdfs tmp上的日志删除了一下,还是不起作用,。。。偶然间发现,集群机器有两台机器的磁盘一个分区已经占用了百分之百了,利用 df -h查看linux的磁盘情况,会不会是这个问题呢?于是du -sh * 查找到百分百的分区占用最大的文件,虽然不是container目录,不过,在/var/log/hadoop-yarn/下,的yarn-yarn-nodemanager-oiddhnode02.out 这个类似名字的文件,一看达到四十多G,我擦,,,,看看文件内容,其实跟/tmp/log 里日志文件内容一样,于是果断把它删除了,注意,linux大文件的删除,删除后可能删除进程还在,那么在df -h 的时候并不会更新硬盘的情况,删除完,用lsof |grep delete  查看,如果还存在删除的进程,就把它kill掉,这样再du -h;删除完之后要在原目录创建与已删除大文件同名的文件,其实这个步骤中,我除了删除几台机器中的大日志文件外,还把hdfs 上/tmp/log 给清理了一下,再之后重新跑任务没有那个问题出现了,我感觉上还是跟大日志文件的删除有关,因为原理上linux对于特别大的文件可能不能写入了,且沾满了硬盘的分区
    
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名