hadoop分布式檔案系統:架構和設計
為了容錯,檔案的所有資料塊都會有副本。每個檔案的資料塊大小和副本係數都是可配置的。應用程式可以指定某個檔案的副本數目。副本係數可以在檔案建立的時候指定,也可以在之後改變。
通過乙個機架感知的過程,namenode可以確定每個datanode所屬的機架id。乙個簡單但沒有優化的策略就是將副本存放在不同的機架上。這樣可以有效防止當整個機架失效時資料的丟失,並且允許讀資料的時候充分利用多個機架的頻寬。這種策略設定可以將副本均勻分布在集群中,有利於當元件失效情況下的負載均衡。但是,因為這種策略的乙個寫操作需要傳輸資料塊到多個機架,這增加了寫的代價。
流水線複製:當客戶端向hdfs檔案寫入資料的時候,一開始是寫到本地臨時檔案中。假設該檔案的副本係數設定為3,當本地臨時檔案累積到乙個資料塊的大小時,客戶端會從namenode獲取乙個datanode列表用於存放副本。然後客戶端開始向第乙個datanode傳輸資料,第乙個datanode一小部分一小部分(4 kb)地接收資料,將每一部分寫入本地倉庫,並同時傳輸該部分到列表中第二個datanode節點。第二個datanode也是這樣,一小部分一小部分地接收資料,寫入本地倉庫,並同時傳給第三個datanode。最後,第三個datanode接收資料並儲存在本地。因此,datanode能流水線式地從前乙個節點接收資料,並在同時**給下乙個節點,資料以流水線的方式從前乙個datanode複製到下乙個。
為了降低整體的頻寬消耗和讀取延時,hdfs會盡量讓讀取程式讀取離它最近的副本。
每個datanode節點周期性地向namenode傳送心跳訊號。網路割裂可能導致一部分datanode跟namenode失去聯絡。namenode通過心跳訊號的缺失來檢測這一情況,並將這些近期不再傳送心跳訊號datanode標記為宕機,不會再將新的io請求發給它們。
hdfs的工作原理
基本上,客戶端聯絡namenode以獲取檔案的元資料或修飾屬性,而真正的檔案i/o操作是直接和datanode進行互動的。
web介面
namenode和datanode各自啟動了乙個內建的web伺服器,顯示了集群當前的基本狀態和資訊。在預設配置下namenode的首頁位址是http://namenode-name:50070/。這個頁面列出了集群裡的所有datanode和集群的基本狀態。這個web介面也可以用來瀏覽整個檔案系統(使用namenode首頁上的"browse the file system"鏈結)。
shell命令
hadoop包括一系列的類shell的命令,可直接和hdfs以及其他hadoop支援的檔案系統進行互動。bin/hadoop fs -help 命令列出所有hadoop shell支援的命令。而 bin/hadoop fs -help command-name 命令能顯示關於某個命令的詳細資訊。這些命令支援大多數普通檔案系統的操作,比如複製檔案、改變檔案許可權等。它還支援一些hdfs特有的操作,比如改變檔案副本數目。
dfsadmin命令
• -report:報告hdfs的基本統計資訊。有些資訊也可以在namenode web服務首頁看到。
• -safemode:雖然通常並不需要,但是管理員的確可以手動讓namenode進入或離開安全模式。
secondary namenode
namenode將對檔案系統的改動追加儲存到本地檔案系統上的乙個日誌檔案(edits)。久而久之日誌檔案可能會變得非常龐大。
secondary namenode定期合併fsimage和edits日誌,將edits日誌檔案大小控制在乙個限度下。因為記憶體需求和namenode在乙個數量級上,所以通常secondary namenode和namenode執行在不同的機器上。secondary namenode通過bin/start-dfs.sh在conf/masters中指定的節點上啟動。
機架感知(rack awareness)
通常,大型hadoop集群是以機架的形式來組織的,同乙個機架上不同節點間的網路狀況比不同機架之間的更為理想。另外,namenode設法將資料塊副本儲存在不同的機架上以提高容錯性。hadoop允許集群的管理員通過配置dfs.network.script引數來確定節點所處的機架。當這個指令碼配置完畢,每個節點都會執行這個指令碼來獲取它的機架id。預設的安裝假定所有的節點屬於同乙個機架。
待續。。 Yaffs 檔案系統分析
1 yaffs檔案系統結構 1.1 簡介 1.1.1 應用場合 yaffs yet another flash file system 檔案系統是專門針對nand快閃儲存器設計的嵌入式檔案系統,目前有yaffs和yaffs2兩個版本,兩個版本的主要區別之一在於yaffs2能夠更好的支援大容量的nan...
檔案 FAT檔案系統分析
一 硬碟儲存結構 硬碟總體儲存圖 採用希捷硬碟120g,winhex檢視,主引導記錄mbr如下 硬碟分割槽表,64位元組,分四個分割槽,每個分割槽佔16位。擴充套件分割槽,就像加入了乙個u盤,第乙個扇區512位元組,為分割槽引導記錄dbr,還有其他。二 fat檔案儲存基本原理 fat表就是乙個簇號的...
SIM卡檔案系統分析
本文出自 hi.baidu.com roooy sim卡全稱為subscriber identity module,它不僅僅能包含使用者的 簿和簡訊息,而且一些智慧型sim卡還包含了乙個微型的處理器晶元和乙個檔案系統在裡面。這個在sim卡裡面的檔案系統是基於iso 7816這個標準來設計而且完全參照...