2012-11-05 65 views
5

我們在Hadoop集羣中遇到了一個奇怪的問題。我們已經注意到,我們的一些工作失敗,帶有文件未找到異常[見下文]。基本上,任務仍在主機上運行時,「attempt_ *」目錄中的文件和目錄本身將被刪除。通過一些hadoop文檔,我發現在獲取KillJobAction時,作業目錄會被清除,但我不確定爲什麼在作業仍在運行時它會被清除。在任務節點上完成作業之前,Hadoop本地作業目錄被刪除

我的問題是什麼可以刪除它,而工作正在運行?任何想法或指導如何調試這將是有幫助的。

謝謝!

java.io.FileNotFoundException: <dir>/hadoop/mapred/local_data/taskTracker/<user>/jobcache/job_201211030344_15383/attempt_201211030344_15383_m_000169_0/output/spill29.out (Permission denied) 
    at java.io.FileInputStream.open(Native Method) 
    at java.io.FileInputStream.<init>(FileInputStream.java:120) 
    at org.apache.hadoop.fs.RawLocalFileSystem$TrackingFileInputStream.<init>(RawLocalFileSystem.java:71) 
    at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileInputStream.<init>(RawLocalFileSystem.java:107) 
    at org.apache.hadoop.fs.RawLocalFileSystem.open(RawLocalFileSystem.java:177) 
    at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:400) 
    at org.apache.hadoop.mapred.Merger$Segment.init(Merger.java:205) 
    at org.apache.hadoop.mapred.Merger$Segment.access$100(Merger.java:165) 
    at org.apache.hadoop.mapred.Merger$MergeQueue.merge(Merger.java:418) 
    at org.apache.hadoop.mapred.Merger$MergeQueue.merge(Merger.java:381) 
    at org.apache.hadoop.mapred.Merger.merge(Merger.java:77) 
    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.mergeParts(MapTask.java:1692) 
    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.flush(MapTask.java:1322) 
    at org.apache.hadoop.mapred.MapTask$NewOutputCollector.close(MapTask.java:698) 
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:765) 
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:369) 
    at org.apache.hadoop.mapred.Child$4.run(Child.java:259) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:396) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059) 
    at org.apache.hadoop.mapred.Child.main(Child.java:253) 
+0

這不是權限錯誤? –

+0

不,我們認爲是這樣,但文件本身不存在。 –

+0

這些文件從哪裏來?我的模式是在運行作業之前總是刪除輸出文件夾(我認爲你必須)。這可能發生在這裏嗎? –

回答

0

我有一個類似的錯誤,發現這個權限錯誤是由於hadoop程序無法創建或訪問文件引起的。

文件是在hdfs中還是在任何本地文件系統中創建的。 如果它們位於本地文件系統上,則嘗試對該文件夾設置權限,如果它們位於hdfs文件夾中,則嘗試設置對該文件夾的權限。

如果你的Ubuntu上運行它,然後

嘗試運行

搭配chmod -R A = RWX //的hadoop/mapred/local_data/TaskTracker共同// jobcache/job_201211030344_15383/attempt_201211030344_15383_m_000169_0 /輸出/