集群hadoop 0.20 使用oozie进行任务调度,运行一段时间,jobtracker发生崩溃。java
分析其缘由发现jobtracker在执行oozie提交的任务时,leasechecker线程不断增长,致使jobtracker崩溃。而使用hadoop 自带的命令行提交任务,线程不会增长。所以经过多方手段肯定,oozie在向hadoop提交任务时,会提交配置文件到hdfs,而jobtracker的后续某些操做会直接使用提交上来的配置文件,在提交上来的配置文件中有fs禁止使用缓存一项,这就会致使jobtracker获取fs时,不停的建立相关实例而不释放。故此解决方法较为简单,oozie提交的配置文件中,不要禁止使用缓存便可。apache
相关代码:缓存
src/mapred/org/apache/hadoop/mapred/JobInProgress.java 等initTasks方法调用JobHistory方法。传递的参数就包括jobCient传递过来的。oop
src/mapred/org/apache/hadoop/mapred/JobHistory.java 中的logSubmitted的fs = userLogFile.getFileSystem(jobConf)命令行