我想了解Namenode,我提到了在線資料,並提到了本書Hadoop:權威指南。Namenode在重新啓動後如何重建完整的塊信息?
我知道Namenode有這樣的概念:「編輯日誌」,「fsimage」,我可以在我的Namenode中看到以下文件。
============================================== ==========================
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 23 22:53 edits_0000000000000000001-0000000000000000001
-rw-r--r-- 1 root root 1048576 Nov 23 23:42 edits_0000000000000000002-0000000000000000002
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 24 00:07 edits_0000000000000000003-0000000000000000003
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 24 21:03 edits_0000000000000000004-0000000000000000004
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 24 22:59 edits_0000000000000000005-0000000000000000005
-rw-r--r-- 1 root root 1048576 Nov 24 23:00 edits_0000000000000000006-0000000000000000006
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 25 21:15 edits_0000000000000000007-0000000000000000007
-rw-rw-r-- 1 vevaan24 vevaan24 1048576 Nov 25 21:34 edits_0000000000000000008-0000000000000000008
-rw-r--r-- 1 root root 1048576 Nov 26 02:13 edits_inprogress_0000000000000000009
-rw-rw-r-- 1 vevaan24 vevaan24 355 Nov 25 21:15 fsimage_0000000000000000006
-rw-rw-r-- 1 vevaan24 vevaan24 62 Nov 25 21:15 fsimage_0000000000000000006.md5
-rw-r--r-- 1 root root 355 Nov 26 00:12 fsimage_0000000000000000008
-rw-r--r-- 1 root root 62 Nov 26 00:12 fsimage_0000000000000000008.md5
-rw-r--r-- 1 root root 2 Nov 26 00:12 seen_txid
-rw-rw-r-- 1 vevaan24 vevaan24 201 Nov 26 00:12 VERSION
在這本書中提到,fsimage
不存儲塊位置在它。
我有以下問題:
1)是否edit logs
商店中的塊位置呢? (對於新的交易?)
2)當Namenode和Datanode重新啓動時,Namenode如何獲取塊地址?我的疑問是神經網絡讀fsimage
重建文件系統信息,但fsimage
沒有塊位置的信息,所以這些信息如何重建?
3)這是真的,fsimage
店BLOCK ID只,如果有的話,是塊ID對面的Datanode獨特之處? BLOCK ID與相同BLOCK地址?
非常感謝您的詳細信息。但有一件事我還不能理解。 Datanode具有塊形式的數據,但DN如何知道給定塊屬於哪個文件?我同意DN向NN提供塊信息,但是如何幫助查找DN上給定文件的塊地址。 – CuriousMind
塊由它們的塊ID標識,並且它們是唯一的。 Datanodes在其中保存這些信息。 – franklinsijo
那麼這是否意味着DN會將塊ID發送給NN,並且由於fsimage具有塊ID信息,因此它會根據塊ID進行映射。如果這是正確的,那麼它是有道理的。對於這項工作,block id需要是唯一的所有hdfs集羣。這是正確的理解? – CuriousMind