1、name node管理元數據html
元數據:hdfs的目錄結構以及文件文件的塊信息(塊副本數量,存放位置等)。node
Namenode把元數據存在內存中,以方便改動,同時也會在某個時間點上面將其寫到磁盤上(fsimage鏡像文件)。同時還會把引發元數據變化的操做記錄在edits日誌文件中。從新啓動或者是服務掛了的時候,也能夠從磁盤文件和日誌文件中還原數據。redis
長此以往edits文件會愈來愈大,若是重啓可能會花費很長時間。這個時候就有了Sencondary NameNode,Secondary NameNode按期合併fsimage和edits日誌,把edits日誌文件大小控制在一個限度下。由於內存需求和NameNode差很少,因此通常都是另外配置一臺機器。oop
Sencondary NameNode整合完畢會將新的fsimages傳回給namenode。這個過程叫作checkpoint。那麼什麼執行這個操做呢。默認的時一個小時,也能夠經過參數配置spa
fs.checkpoint.period 設置checkpoint間隔時間日誌
fs.checkpoint.size 規定edits文件的最大值,一旦超過這個值則強制checkpoint,無論是否到達最大時間間隔。htm
dfs.namenode.checkpoint.dir Sencondary NameNode保存數據的位置blog
這個過程和redis的混合持久化有點點相似,RDB快照和AOF重放內存
2、讀寫文件過程hadoop