當map-reduce作業運行時,它必須創建大量臨時文件來存儲各種映射器和縮減器的結果。這些臨時文件是否寫入hdfs。hadoop mapreduce在hdfs中打開臨時文件
如果是,名稱節點的編輯日誌可能在很短的時間內變得很大,因爲它會記錄每一個事務,比如文件打開,關閉等。可以通過直接寫入本地文件系統而不是hdfs來避免這種情況,或者是餿主意?
當map-reduce作業運行時,它必須創建大量臨時文件來存儲各種映射器和縮減器的結果。這些臨時文件是否寫入hdfs。hadoop mapreduce在hdfs中打開臨時文件
如果是,名稱節點的編輯日誌可能在很短的時間內變得很大,因爲它會記錄每一個事務,比如文件打開,關閉等。可以通過直接寫入本地文件系統而不是hdfs來避免這種情況,或者是餿主意?
映射縮減代碼的中間結果已寫入本地文件系統,而不是hdfs,並在作業完成後自動將其刪除。
我的意思是說從映射器輸出已寫入到本地文件系統,具體位置可以配置,但默認情況下它寫入到/ tmp目錄/ Hadoop的用戶名*位置
你的意思是說,每次Mapper運行時都會創建臨時文件。 如果是,那麼你不能避免這種情況,因爲Mapper的輸出寫入磁盤而不是內存。 TaskTracker將負責爲MR作業創建設置併爲Mapper中間輸出創建臨時磁盤空間。一旦MR作業完成,臨時空間將由TaskTracker清理。
這是MR編程範例的瓶頸之一。
任何意見/反饋將不勝感激。
「你不能避免這一點,因爲映射的輸出寫入磁盤而不是內存「 - 我理解這一部分。我不確定它是否直接寫入hdfs或底層文件系統本身。 – 2014-09-23 06:16:18