何時從本地文件系統中刪除映射程序任務的輸出?他們堅持到整個工作完成或者他們早於刪除時間嗎?映射器任務的結果何時從磁盤中刪除?
回答
除了地圖和reduce任務,創建另外兩個任務:一個任務設置任務 和作業清理任務。這些由任務管理器運行,用於在任何地圖任務運行之前運行代碼以設置 作業,並在所有減少任務完成後進行清理。 爲作業配置的OutputCommitter確定要運行的代碼,默認情況下爲 ,這是一個FileOutputCommitter。對於作業設置任務,它將創建作業的最終 輸出目錄和任務輸出的臨時工作空間,對作業清理任務創建 ,它將刪除任務輸出的臨時工作空間。
如果您的hadoop.tmp.dir
設置爲默認設置(例如,/ tmp /),則它很可能會受到tmpwatch
以及操作系統中的任何默認設置的限制。我建議在/etc/cron.d/
,/etc/cron.daily
,etc/cron.weekly/
等處查找,以準確查看您的操作系統默認值是什麼。
關於tmpwatch
需要注意的一件事是,默認情況下,它將關鍵訪問時間,而不是修改時間(即,由於X將被視爲「陳舊」,並且未被「觸及」去除)。然而,Hadoop使用noatime
和nodiratime
標誌掛載文件系統是一種常見做法,這意味着訪問時間不會更新,從而歪曲您的tmpwatch行爲。
否則,默認情況下,Hadoop將清除超過24小時(任務完成後)的任務嘗試日誌。雖然幾歲,this writeup有一些關於默認行爲的很好的信息。請特別注意參考mapreduce.job.userlog.retain.hours
的部分。
編輯:應對OP的評論,它清除了我的問題的誤解:
至於map任務中輸出,其溢出到磁盤上,通過任意組合使用,複製到任何減速機, Hadoop的權威指南有這樣一段話:
的TaskTracker不盡快刪除磁盤映射輸出作爲第一 減速已經檢索它們,減速可能會失敗。相反,他們 等到他們被告知要在作業完成後由作業跟蹤者刪除它們,即 。
我也+1 @mgs回答以下,因爲他們有聯繫的是控制這一點,所描述的工作清理任務的源代碼。
因此,是,地圖輸出數據在作業完成後立即刪除,成功或不成功,並且不會立即刪除。
謝謝,但我問的是由各個映射器寫入的輸出被保留,然後複製到reducer,而不是單個任務的日誌文件。在完成任務之前,映射器的輸出最終會被Hadoop刪除,但是,如果發生這種清理是我的問題的焦點。 – slayton
哦,我明白了。我的錯。我編輯了我的答案以反映這一點。 – jtravaglini
「一旦第一個reducer檢索到它們,任務管理器就不會從磁盤上刪除映射輸出,因爲reducer可能會失敗,而是等到它們被jobtracker刪除,完成」
的Hadoop權威指南(第6.4節)
- 1. 何時從fresco android中的磁盤中刪除圖像緩存?
- 2. XSLT - 從映射結果中刪除重複項
- 3. 映射結果在SQL服務器
- 4. 基於Scala磁盤的映射
- 5. CHS到LBA映射 - (磁盤存儲)
- 6. 內存映射物理磁盤和卷
- 7. 在虛擬機刪除後從Azure中刪除磁盤
- 8. QFileSystemModel和QFileSystemWatcher從磁盤上刪除
- 9. 從刪除虛擬機azure detatch磁盤
- 10. 映射結果
- 11. Azure刪除孤立磁盤
- 12. Docker磁盤內存:我可以刪除中間映像嗎?
- 13. 當磁盤空間不足時從表中刪除多行
- 14. 如何從Eclipse項目中刪除文件而不從磁盤刪除文件?
- 15. 將C++映射結構保存到磁盤
- 16. 安裝磁盤映像時從磁盤仲裁中進行雙重回調
- 17. Celery如何在讀取後刪除redis中的任務結果
- 18. Pytsk - 從磁盤映像發送文件到服務器
- 19. 將sql服務器xml結果保存到磁盤
- 20. 刪除TFS映射
- 21. IntelliJ從項目中刪除文件,但從磁盤中刪除文件
- 22. 在fwrite中檢測磁盤刪除C
- 23. 如何從運行Hadoop集羣中刪除磁盤?
- 24. 如何在IntelliJ IDEA中從磁盤刪除文件?
- 25. 敲除映射不會產生結果
- 26. 刪除的TFS shelveset如何影響服務器上的磁盤空間?
- 27. 從磁盤刪除不在Visual Studio項目中的文件
- 28. 如何從ScheduledExecutorService中刪除任務?
- 29. Linux服務器中的磁盤空間
- 30. 如何從結果中刪除\ t
你的意思是,當他們從每個數據節點的臨時HDFS文件夾中刪除? –
不,映射程序任務的結果保存爲本地文件系統上的目錄「hadoop.tmp.dir」,而不是hdfs – slayton
Youch,對不起。當然,它們並不存儲在HDFS中。我的錯。 –