1. 程式人生 > >Secondary NameNode:它究竟有什麼作用?

Secondary NameNode:它究竟有什麼作用?

Secondarynamenode作用

SecondaryNameNode有兩個作用,一是映象備份,二是日誌與映象的定期合併。兩個過程同時進行,稱為checkpoint. 映象備份的作用:備份fsimage(fsimage是元資料傳送檢查點時寫入檔案);日誌與映象的定期合併的作用:將Namenode中edits日誌和fsimage合併,防止(如果Namenode節點故障,namenode下次啟動的時候,會把fsimage載入到記憶體中,應用edit log,edit log往往很大,導致操作往往很耗時。)

Secondarynamenode工作原理

日誌與映象的定期合併總共分五步:

  1. SecondaryNameNode通知NameNode準備提交edits檔案,此時主節點產生edits.new
  2. SecondaryNameNode通過http get方式獲取NameNode的fsimage與edits檔案(在SecondaryNameNode的current同級目錄下可見到 temp.check-point或者previous-checkpoint目錄,這些目錄中儲存著從namenode拷貝來的映象檔案)
  3. SecondaryNameNode開始合併獲取的上述兩個檔案,產生一個新的fsimage檔案fsimage.ckpt
  4. SecondaryNameNode用http post方式傳送fsimage.ckpt至NameNode
  5. NameNode將fsimage.ckpt與edits.new檔案分別重新命名為fsimage與edits,然後更新fstime,整個checkpoint過程到此結束。 在新版本的hadoop中(hadoop0.21.0),SecondaryNameNode兩個作用被兩個節點替換, checkpoint node與backup node. SecondaryNameNode備份由三個引數控制fs.checkpoint.period控制週期,fs.checkpoint.size控制日誌檔案超過多少大小時合併, dfs.http.address表示http地址,這個引數在SecondaryNameNode為單獨節點時需要設定。

相關配置檔案

core-site.xml:這裡有2個引數可配置,但一般來說我們不做修改。fs.checkpoint.period表示多長時間記錄一次hdfs的映象。預設是1小時。fs.checkpoint.size表示一次記錄多大的size,預設64M。

<property><name>fs.checkpoint.period</name>

<value>3600</value>

<description>The number of seconds between two periodic checkpoints.

</description>

</property>

<property>

<name>fs.checkpoint.size</name>

<value>67108864</value>

<description>The size of the current edit log (in bytes) that triggers

a periodic checkpoint even if the fs.checkpoint.period hasn’t expired.

</description>

</property>

映象備份的週期時間是可以修改的,如果不想一個小時備份一次,可以改的時間短點。core-site.xml中的fs.checkpoint.period值

Secondarynamenode工作原理圖

這也解釋了下面的問題:

(1)、為什麼namenode和Secondary namenode需要同樣大記憶體

(2)、大叢集中namenode和Secondary namenode需要是各自獨立的兩個節點。

Checkpoint的日誌資訊

2011-07-19 23:59:28,435 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Number of transactions: 0 Total time for transactions(ms): 0Number of transactions batched in Syncs: 0 Number of syncs: 0 SyncTimes(ms): 02011-07-19 23:59:28,472 INFO org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Downloaded file fsimage size 548 bytes.

2011-07-19 23:59:28,473 INFO org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Downloaded file edits size 631 bytes.

2011-07-19 23:59:28,486 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: fsOwner=hadadm,hadgrp

2011-07-19 23:59:28,486 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: supergroup=supergroup

2011-07-19 23:59:28,486 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: isPermissionEnabled=true

2011-07-19 23:59:28,488 INFO org.apache.hadoop.hdfs.server.common.Storage: Number of files = 6

2011-07-19 23:59:28,489 INFO org.apache.hadoop.hdfs.server.common.Storage: Number of files under construction = 0

2011-07-19 23:59:28,490 INFO org.apache.hadoop.hdfs.server.common.Storage: Edits file /home/hadadm/clusterdir/tmp/dfs/namesecondary/current/edits of size 631 edits # 6 loaded in 0 seconds.

2011-07-19 23:59:28,493 INFO org.apache.hadoop.hdfs.server.common.Storage: Image file of size 831 saved in 0 seconds.

2011-07-19 23:59:28,513 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Number of transactions: 0 Total time for transactions(ms): 0Number of transactions batched in Syncs: 0 Number of syncs: 0 SyncTimes(ms): 0

2011-07-19 23:59:28,543 INFO org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Posted URL master:50070putimage=1&port=50090&machine=10.253.74.234&token=-18:1766583108:0:1311091168000:1311087567797

2011-07-19 23:59:28,561 WARN org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Checkpoint done. New Image Size: 831

 Namenode/Secondarynamenode檔案結構

[[email protected] /home/hadadm/clusterdir/tmp/dfs/namesecondary/current]$ ll

總用量 24

drwxr-xr-x  2 hadadm hadgrp 4096  7月 19 22:59 ./

drwxr-xr-x  5 hadadm hadgrp 4096  7月 19 23:59 ../

-rw-r–r–  1 hadadm hadgrp    4  7月 19 23:59 edits

-rw-r–r–  1 hadadm hadgrp  548  7月 19 22:59 fsimage

-rw-r–r–  1 hadadm hadgrp    8  7月 19 22:59 fstime

-rw-r–r–  1 hadadm hadgrp  101  7月 19 22:59 VERSION

[[email protected] /home/hadadm/clusterdir/tmp/dfs/namesecondary/current]

$ cat VERSION

#Tue Jul 19 22:59:27 CST 2011

namespaceID=1766583108

cTime=0

storageType=NAME_NODE

layoutVersion=-18

推這裡VERSION表示的是secondarynamenode中的fsimage版本是22:59時的;加上edits應用的日誌就可以到23:59

[[email protected] /home/hadadm/clusterdir/dfs/name/current]$ ls -l

總用量 16

-rw-r–r–  1 hadadm hadgrp   4  7月 19 23:59 edits

-rw-r–r–  1 hadadm hadgrp 831  7月 19 23:59 fsimage

-rw-r–r–  1 hadadm hadgrp   8  7月 19 23:59 fstime

-rw-r–r–  1 hadadm hadgrp 101  7月 19 23:59 VERSION

[[email protected] /home/hadadm/clusterdir/dfs/name/current]

$ cat VERSION

#Tue Jul 19 23:59:28 CST 2011

namespaceID=1766583108

cTime=0

storageType=NAME_NODE

layoutVersion=-18

這裡VERSION表示的是namenode中的fsimage版本是23:59時的; edits應用沒有變更

這裡的fsimage相當於secondarynamenode裡面的fsimage+edits

[[email protected] /home/hadadm/clusterdir/tmp/dfs/namesecondary]$ ls -l

總用量 12

drwxr-xr-x  2 hadadm hadgrp 4096  7月 19 23:59 current

drwxr-xr-x  2 hadadm hadgrp 4096  7月 19 22:59 image

-rw-r–r–  1 hadadm hadgrp    0  7月 19 23:59 in_use.lock

drwxr-xr-x  2 hadadm hadgrp 4096  7月 19 22:59 previous.checkpoint

[[email protected] /home/hadadm/clusterdir/tmp/dfs/namesecondary]

$ ls -l previous.checkpoint/

總用量 16

-rw-r–r–  1 hadadm hadgrp   4  7月 19 23:59 edits

-rw-r–r–  1 hadadm hadgrp 548  7月 19 22:59 fsimage

-rw-r–r–  1 hadadm hadgrp   8  7月 19 22:59 fstime

-rw-r–r–  1 hadadm hadgrp 101  7月 19 22:59 VERSION

這裡上一個檢查點的資料是可以用來恢復資料的

Import Checkpoint(恢復資料)

如果主節點namenode掛掉了,硬碟資料需要時間恢復或者不能恢復了,現在又想立刻恢復HDFS,這個時候就可以import checkpoint。步驟如下:

  1. 準備原來機器一樣的機器,包括配置和檔案
  2. 建立一個空的資料夾,該資料夾就是配置檔案中dfs.name.dir所指向的資料夾。
  3. 拷貝你的secondary NameNode checkpoint出來的檔案,到某個資料夾,該資料夾為fs.checkpoint.dir指向的資料夾(例如:/home/hadadm/clusterdir/tmp/dfs/namesecondary)
  4. 執行命令bin/hadoop namenode –importCheckpoint
  5. 這樣NameNode會讀取checkpoint檔案,儲存到dfs.name.dir。但是如果你的dfs.name.dir包含合法的 fsimage,是會執行失敗的。因為NameNode會檢查fs.checkpoint.dir目錄下映象的一致性,但是不會去改動它。

一般建議給maste配置多臺機器,讓namesecondary與namenode不在同一臺機器上值得推薦的是,你要注意備份你的dfs.name.dir和 ${hadoop.tmp.dir}/dfs/namesecondary。

後續版本中的backupnode

Checkpoint Node 和 Backup Node在後續版本中hadoop-0.21.0,還提供了另外的方法來做checkpoint:Checkpoint Node 和 Backup Node。則兩種方式要比secondary NameNode好很多。所以 The Secondary NameNode has been deprecated. Instead, consider using the Checkpoint Node or Backup Node. Checkpoint Node像是secondary NameNode的改進替代版,Backup Node提供更大的便利,這裡就不再介紹了。

BackupNode : 備份結點。這個結點的模式有點像 mysql 中的主從結點複製功能, NN 可以實時的將日誌傳送給 BN ,而 SNN 是每隔一段時間去 NN 下載 fsimage 和 edits 檔案,而 BN 是實時的得到操作日誌,然後將操作合併到 fsimage 裡。在 NN 裡提供了二個日誌流介面: EditLogOutputStream 和 EditLogInputStream 。即當 NN 有日誌時,不僅會寫一份到本地 edits 的日誌檔案,同時會向 BN 的網路流中寫一份,當流緩衝達到閥值時,將會寫入到 BN 結點上, BN 收到後就會進行合併操作,這樣來完成低延遲的日誌複製功能。

總結:

當前的備份結點都是冷備份,所以還需要實現熱備份,使得 NN 掛了後,從結點自動的升為主結點來提供服務。

主 NN 的效率問題: NN 的檔案過多導致記憶體消耗問題, NN 中檔案鎖問題, NN 的啟動時間。

因為Secondarynamenaode不是實施備份和同步,所以SNN會丟掉當前namenode的edit log資料,應該來說backupnode可以解決這個問題

相關推薦

hadoop:Secondary NameNode 究竟什麼作用

前言 最近剛接觸Hadoop, 一直沒有弄明白NameNode和Secondary NameNode的區別和關係。很多人都認為,Secondary NameNode是

Secondary NameNode:究竟什麼作用

Secondarynamenode作用 SecondaryNameNode有兩個作用,一是映象備份,二是日誌與映象的定期合併。兩個過程同時進行,稱為checkpoint. 映象備份的作用:備份fsimage(fsimage是元資料傳送檢查點時寫入檔案);日誌與映象的定期合併的作用:將Namenode中edi

關於HDFS的NameNodeSecondary NameNode、BackupNode的作用解釋

先來解釋一下HDFS幾個節點作用: 1.NameNode節點 A.執行在單個節點伺服器上作為主處理器 B.存有檔案的元資料(哪個資料塊在哪裡,比如名稱空間資訊,塊資訊等。當它執行的時候,這些資訊是存在記憶體中的。但是這些資訊也可以持久化到磁碟上。) C. 直接訪問檔案的客戶端 fs

只有才能讓雲端計算、大資料、人工智慧大放異彩?究竟什麼魔力?

對比20年前的生活,智慧手機、社交網路等智慧應用改變了我們的生活。但當AlphaGo第一次戰勝圍棋世界冠軍;當大資料,讓人腦資訊轉換為電腦資訊成為可能;當萬物互聯就在你的身邊。越來越多的新鮮事物呈現在大家眼前,讓過去我們不敢想象的事情,正一一變為現實,而這一切改變,都離不開雲端計算

加密軟件究竟哪些作用呢?

最大 文件的 文件顯示 單位 工作 企業 郵件 密文 規範 信息化時代,企業數據泄露事件層出不窮,給企業及個人造成了一定的危機。大家開始擔心自身數據安全,以及數據信息安全如何維護?伴隨著數據泄露事件的發生,加密軟件應運而生,並且市場上繁多的加密品牌,也成為人們選擇的難題加密

賽合一談新金融,金融科技在傳統銀行中作用究竟多大

一說到金融,現在大家首先想到的一般都是新金融。新金融是一個比較新穎的概念,在網際網路和資訊科技革命推動下,金融業架構中的基數物質正在發生深刻變化,移動化、雲端計算、大資料等大趨勢引發了金融業的變革。在新金融當中,金融科技是金融企業做戰略轉型的一個重要方向,很多做金融科技的新金

在資料的世界裡,低延遲網路究竟什麼作用

資料是企業的命脈。因此,緩慢的資料傳輸速率使得分析,備份,以及恢復資料變得更加困難。包括蘋果,Facebook,微軟和亞馬遜在內的許多公司都將資料作為其核心業務的一部分,他們同樣須每天應對資料延遲的挑戰: 緩慢的資料傳輸速率可能降低其提供新數字產品和服務的能力,

第二名稱節點(Secondary NAmeNode)的“檢查點”作用

HDFS中的名稱節點(NameNode) 名稱節點:負責管理分散式檔案系統的名稱空間,裡面包含了兩個核心的資料結構,即FsImage和EditLog。FsImage使用者檔案樹以及所有的檔案和資料夾的元資料。EfitLog記錄的是檔案的增刪改查。 首次安裝fo

想去學習千鋒PHP,PHP究竟哪些優點?

title sns 比較 使用 能夠 優點 門戶 csdn href PHP跨平臺。所謂跨平臺,就是在各種操作系統中都能使用。比如說Linux、UNIX、Windows、Mac OS。 開源、免費。和PHP搭檔的平臺都是免費的。你不用花一分錢,就能搭建自己的網站。比如說L

“程序員”和“碼農”究竟什麽區別?

pro 硬件 爆炸 https 工程學 得到 手機 rod tar 原文鏈接 很想心無旁騖的編碼,卻被產品經理、項目經理、測試、老板各種打擾,怎麽辦? 很想重構重構再重構,卻被構建、部署環境的各種坑拖累,什麽時候能夠擺脫哪些服務器、環境的雜活? 程序員一天中只能得到一段

"=="和 和 equals 究竟什麽區別

left 結果 區別 bject 兩個人 中一 語句 方法 地址   ==操作符專門用來比較兩個變量的值是否相等,也就是用於比較變量所對應的內存中所存儲的數值是否相同,要比較兩個基本類型的數據或兩個引用變量是否相等,只能用==操作符。  如果一個變量指向的數據是對象類型的,

修煉到此為止吧人懷疑她究竟他已經算是占了取出

bdc fly add b2c cda isa bce xv6 a20 http://baobao.baidu.com/article/4c3bb8653d054f1e6590de96934549e4.html?2017/10/04=f8sbtd http://baobao

電影裏的機械手臂,和現實究竟多大區別?

機械臂在《王牌特工2:黃金圈》中,最奪人眼球的已經不再是Kingsman能當防彈盾牌的雨傘和能發射×××的手表,而是反派特工的機械手臂。查理的機械手臂能開車、開槍還能開定位發送信息,可以說是科幻電影中機械手臂的標配。科幻電影中各種各樣先進的機械手臂引發了人們對這種產品的美好幻想,可現實往往是殘酷的。以下是想象

Secondary NameNode

元數據 地址 系統 文件系統 幫助 兩個文件 數控 更新 fsimage   在Hadoop中,有一些命名不好的模塊,Secondary NameNode是其中之一。從它的名字上看,它給人的感覺就像是NameNode的備份。但它實際上卻不是。HDFS集群有兩類節點以管理者和

人工智能研究人員究竟多賺錢?

人工智能“物以稀為貴”的道理人人都懂,畢竟供小於求就會讓商品變得走俏且價格昂貴。同樣,人才也適用於這一理念。越是稀缺的人才,越容易找到工作並獲得高薪。如果說前幾年的稀缺人才主要集中於互聯網、智能手機等領域,那麽現在人工智能領域對人才的渴求程度簡直達到了讓人瞠目結舌的地步! 原因也很簡單,一方面是人工智能領域

從幻想到現實未來飛行汽車成本究竟多少?

汽車成本就在今年3月4日路透社報道稱,保時捷高管Detlev von Platen在接受德國雜誌采訪時表示,保時捷公司可能會研發一款飛行汽車。彼時,業界就認為保時捷的該舉措或將在城市飛行汽車市場與Uber發生正面競爭。而隨著眾多企業入局飛行汽車市場,這一市場有望很快被引爆。換句話說,共享飛行汽車有望很快落地。

阿裏安全的自動化逆向機器人TimePlayer究竟多“變態”?

level mep 全面 類比 對象 升級 多人 商都 受害者 文 / 阿裏安全獵戶座實驗室 杭特 “如果殺毒軟件廠商的自動化水平和能力,相當於天上的衛星,能看到地上奔跑的羚羊。那麽,我們能做到什麽程度?我們能看到羚羊身上的每個細胞。” 這是阿裏安全資深專家、阿裏安全獵戶座

時事點評-紅芯瀏覽器事件 --“國產”究竟多遠?

頭條 下載 http 我認 都得 今日頭條 com 關註 get 一、紅芯事件 8月16日上午,打著“中國首個自主創新智能瀏覽器內核”旗號紅芯瀏覽器遭到網友和部分媒體“打臉”。8月17日,在輿論持續發酵

C++11新特性(81)-作用域的enum(scoped enumeration)

列舉型別的困惑 從C語言過度到C++以後,列舉作為減少程式錯誤的手段之一被廣泛地使用。但是同時也帶來一個問題:列舉值的重複。假設我們有下面的三原色定義: 程式碼中同時也需要定義三基色: 二者同時定義之後,就會遇到一個問題:red和blue連個值都被重複定義。 &nbs

淺析 Secondary NameNode(輔助namenode)

重點提示: 首先這個問題不要摳的過細。 SDNN即Secondary NameNode  NN即NameNode 1. 首先介紹NameNode節點上兩個重要檔案 (1)fsimage:它是元資料的映象檔案,映象這個東西大家都懂,所以它記錄的其實是某個時間點記憶體中元資料的