1、什么是元數據?
hdfs的目錄結構及每一個文件的塊信息(塊的id,塊的副本數量,塊的存放位置<datanode>)
2、元數據由誰負責管理?
namenode
3、namenode把元數據記錄在哪里?
namenode的實時的完整的元數據存儲在內存中;
namenode還會在磁盤中(dfs.namenode.name.dir)存儲內存元數據在某個時間點上的鏡像文件;
namenode會把引起元數據變化的客戶端操作記錄在edits日志文件中;
secondarynamenode會定期從namenode上下載fsimage鏡像和新生成的edits日志,然后加載fsimage鏡像到內存中,然后順序解析edits文件,對內存中的元數據對象進行修改(整合) 整合完成后,將內存元數據序列化成一個新的fsimage,並將這個fsimage鏡像文件上傳給namenode
|
上述過程叫做:checkpoint操作 提示:secondary namenode每次做checkpoint操作時,都需要從namenode上下載上次的fsimage鏡像文件嗎? 第一次checkpoint需要下載,以后就不用下載了,因為自己的機器上就已經有了。 |
補充:secondary namenode啟動位置的配置
默認值 |
<property> <name>dfs.namenode.secondary.http-address</name> <value>0.0.0.0:50090</value> </property> |
把默認值改成你想要的機器主機名即可
secondarynamenode保存元數據文件的目錄配置:
默認值 |
<property> <name>dfs.namenode.checkpoint.dir</name> <value>file://${hadoop.tmp.dir}/dfs/namesecondary</value> </property> |
改成自己想要的路徑即可:/root/dfs/namesecondary