问题描述
- 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
解决方案
这个问题没人回答?唉,,幸亏我自己解决了,领导一直在问,晚上回家还在想这问题呢。其实从问题的报错显示是不能创建任务日志目录,且是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对于特别大的文件可能不能写入了,且沾满了硬盘的分区
时间: 2024-09-20 19:47:10