集羣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)命令行