今年馬上工作三年了,17年畢業到現在,正好複習下學到的大資料知識,如果有什麼錯誤請指正。
當檔案被上傳到hdfs上時,客戶端會詢問namenode元資料,namenode合理分配,將檔案以塊(通常為128m)
的形式分配到不同的資料節點上,也就是datanode,以及分配副本,namenode儲存著資料檔案的元資訊,比如哪個塊,在哪個datanode上。
namenode元資料管理有三種形式
一種是記憶體元資料,也就是metadata
第二種是edits,也就是編輯日誌,儲存了對元資料的操作資訊。
第三種是fsimage,是在磁碟中儲存的記憶體元資料的映象,通常也叫檢查點。
網上大多只有官方文件的翻譯,說說我個人的理解吧
standbynamenode和secondarynamenode是兩個東西,ha立馬切換,snamenode只是為了更好地輔助namenode
因為namenode操作會產生日誌,這個就是edits.log ,正常情況下只有重啟才會合併日誌,但是生產情況通常namenode都是7x24小時的,所以edtis.log會大大大,這樣的話,重啟會很消耗時間,snn就是為了這種情況而生
操作資訊首先會被記錄到edits中,然後當edits滿了,會新建乙個edits_new,停止向edits中寫入資料,secondarynamenode 會通過http get將fsimage和edits_old放入到記憶體中,並合併成fsimage_new,最後通過http_put用fsimage_new 替換掉fsimage,同時edits_new改名成edits
而ha呢,會把edits複製到 本地(差別乙個是本地,snamenode通常都是另外乙個機器),然後放入到類似共享集群中,然後standby會定時讀edit.log,會和fsimage合併,然後再講合併後的fsimage放入到共享集群中,active namenode會替換掉fsimage,至於替換的時機,由兩個引數決定,乙個是時間,乙個是edit事務條目
回顧c 基礎(1)
一 虛函式與純虛函式的區別。1 虛函式 用virtual進行修飾,比如 virtual void foo cout a foo is called 定義虛函式是為了允許基類的指標可以進行呼叫。定義了虛函式不代表此函式不能被實現。2 純虛函式 是在基類的定義中進行宣告,它在基類中沒有定義。但是要任何派...
html css js基礎知識回顧 1
新標籤新特性 答 emmmmmm 這個明天補上。doctype有什麼作用?標準模式與混雜模式如何區分?它們有何意義?答 告訴瀏覽器以哪個版本的html規範來渲染文件,doctype不存在會導致html文件以混雜模式呈現。標準模式是以瀏覽器支援的最高標準來執行。混雜模式中頁面以一種比較寬鬆的向後相容的...
大資料基礎
hadoop是提供分布式的儲存 乙個檔案被拆分成很多個快,並且以副本的反式儲存在各個節點中 和計算。分布式檔案系統 hdfs實現將檔案分布式儲存在很多的伺服器上。hdfs特點 擴充套件性 容錯性 海量數量儲存 工作機制 將檔案切分為指定大小的資料塊並以多副本儲存在多個機器上。資料切分 多副本 容錯等...