大資料小白系列 HDFS 2

2021-09-08 05:32:13 字數 1419 閱讀 9183

這裡是大資料小白系列,這是本系列的第二篇,介紹一下hdfs中secondarynamenode、單點失敗(spof)、以及高可用(ha)等概念。

首先,在啟動的時候,將磁碟中的元資料檔案讀取到記憶體,後續所有變化將被直接寫入記憶體,同時被寫入乙個叫edit log的磁碟檔案。(如果你熟悉關係型資料庫,這個edit log有點像oracle redo log,這是題外話)。

q: 為什麼不把這些變化直接寫到磁碟上的元資料中,使磁碟上的元資料保持最新呢?edit log是不是多此一舉?

a: 這個主要是基於效能考慮,由於對edit log的寫是「順序寫」(追加),對元資料的寫是「隨機寫」,兩者在磁碟上表現出來的效能有相當大的差異。有興趣的同學可以搜尋學習一下磁碟相關原理哦。

上面這個方案,帶來了一些明顯的***。

為了消除這些***,hdfs中引入了另外乙個角色,secondarynamenode。

它定期(比如每小時)從namenode上抓取edit log,使用它更新元資料檔案,並把最新的元資料檔案寫回到namenode。

說完了secondarynamenode的職責之後,大家應該明白,它並不是乙個「備用namenode」,其實這是典型的命名不當,它應該被命名成「checkpoint namenode」才比較恰當。

接下來我們來說說hdfs中的單點失敗問題(spof, single point of failure),即,當namenode掉線之後,整個hdfs集群就變得不可用了。為解決這個問題,hadoop 2.0中真正引入了乙個「備用namenode」。

由於這兩點,兩台namenode上的元資料將一直保持同步。這將保證當namenode掉線後,使用者可以立即切換到備用namenode,系統將保持可用。

由於備用namenode比較空閒(不用處理使用者請求),系統又給它安排了另外乙份工作——定期使用edit log更新元資料檔案,也就是說它接手了secondarynamenode的工作。

所以,在ha環境中,我們就不再需要secondarynamenode了。

hdfs 指令 大資料科普系列 五 HDFS概述

hdfs hadoop distributed file system hadoop分布式檔案系統,主要用來解決海量資料的儲存問題,在大資料系統架構中為各類分布式運算框架 mapreduce spark tez,flink等 提供資料儲存服務。前面我們已經講過分布式的儲存原理,下面來看看hdfs具體...

獲取hdfs (大資料)HDFS

hdfs 是 hadoop 的分布式檔案系統,主要用於離線的大檔案資料資料儲存。hdfs 架構 hdfs 其實與作業系統的檔案系統類似,hdfs 主要有兩種角色,乙個是 namenode 檔案索引 另乙個是 datanode 儲存資料 namenode 主要負責記錄乙個檔案的儲存元資料 例如 檔名 ...

大資料 學習hdfs

hdfs是什麼?hadoop distributed file system,它是一種分布式檔案儲存系統,主要解決大資料的儲存問題。hdfs的優缺點 優點 缺點 hdfs的主要角色 namenode 簡稱nn 是hdfs的核心節點,最重要 主要功能是 接收客戶端的讀寫請求,接收datanode傳送的...