top 寫:
客戶端對 HDFS 執行寫入操作時, 會先記錄於 EditLog, 至一定時間 (default: 1 hr? ) 才會寫入 Fsimage, 請問 hadoop 如何去保持當下該時間點檔案狀況? 倘若該檔案有被更新
舉例說明:
有個 file 為 100MB, client 對 file append 寫 入 1MB 的資料, append 完後此時經由 namenode 管理 web 頁面得知該 fileSize 已更新為 101MB, namenode 從何處得知 101MB 的 metadata 資料?
另 editlog 的資料是 keep 在 memory 嗎?
對 fsimage and editlog 這中間的流程有些疑惑, 找了些資料這部份皆未有太多著磨.
Thanks.
1. editlog 存放於 ${hadoop.tmp.dir}/dfs/name/current/edits
2. 每小時 SecondaryNameNode 會將 edits 與 fsimage 做一次合併
3. NameNode 這個背景程式啟動時讀取 fsimage 載入記憶體中,執行過程中的檔案更動會快取狀態於記憶體中
- Jazz