91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Secondary NameNode的功能是什么

發布時間:2021-12-30 10:04:13 來源:億速云 閱讀:193 作者:小新 欄目:大數據

這篇文章主要介紹Secondary NameNode的功能是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

最近有朋友問我Secondary NameNode的作用,是不是NameNode的備份?是不是為了防止NameNode的單點問題?確實,剛接觸Hadoop,從字面上看,很容易會把Secondary NameNode當作備份節點;其實,這是一個誤區,我們不能從字面來理解,閱讀官方文檔,我們可以知道,其實并不是這么回事,下面就來贅述下Secondary NameNode的作用。

在Hadoop中,有一些命名模塊不那么盡人意,Secondary NameNode就是一個典型的例子之一。從它的名字上看,它給人的感覺就像是NameNode的備份節點,但實際上卻不是。很多Hadoop的入門者都很疑惑,Secondary NameNode究竟在其中起什么作用,它在HDFS中所扮演的角色是什么。下面,我就來解釋下:

從名字來看,它確實與NameNode有點關系;因此,在深入了解Secondary NameNode之前,我們先來看看NameNode是做什么的。

2.1NameNode

NameNode主要是用來保存HDFS的元數據信息,比如命名空間信息,塊信息等等。當它運行的時候,這些信息是存在內存中的。但是這些信息也可以持久化到磁盤上。如下圖所示:

Secondary NameNode的功能是什么

上圖展示來NameNode怎么把元數據保存到磁盤上,這里有兩個不同的文件:

  • fsimage:

它是NameNode啟動時對整個文件系統的快照。

  • edits:

它是在NameNode啟動后,對文件系統的改動序列。

只有在NameNode重啟時,edits才會合并到fsimage文件中,從而得到一個文件系統的最新快照。但是在生產環境集群中的NameNode是很少重啟的,這意味者當NameNode運行來很長時間后,edits文件會變的很大。在這種情況下就會出現下面這些問題:

  1. edits文件會變的很大,如何去管理這個文件?

  2. NameNode的重啟會花費很長的時間,因為有很多改動要合并到fsimage文件上。

  3. 如果NameNode宕掉了,那我們就丟失了很多改動,因為此時的fsimage文件時間戳比較舊。

因此為了克服這個問題,我們需要一個易于管理的機制來幫助我們減小edits文件的大小和得到一個最新的fsimage文件,這樣也會減小在NameNode上的壓力。而Secondary NameNode就是為了幫助解決上述問題提出的,它的職責是合并NameNode的edits到fsimage文件中。如圖所示:

Secondary NameNode的功能是什么

上圖的工作原理,我這里也贅述下:

  1. 首先,它定時到NameNode去獲取edits,并更新到fsimage上。

  2. 一旦它有新的fsimage文件,它將其拷貝回NameNode上。

  3. NameNode在下次重啟時回使用這個新的fsimage文件,從而減少重啟的時間。

Secondary NameNode的整個目的在HDFS中提供一個Checkpoint Node,通過閱讀官方文檔可以清晰的知道,它只是NameNode的一個助手節點,這也是它在社區內被認為是Checkpoint Node的原因。

現在,我們明白Secondary NameNode所做的是在文件系統這設置一個Checkpoint來幫助NameNode更好的工作;它不是取代NameNode,也不是NameNode的備份。  

Secondary NameNode的檢查點進程啟動,是由兩個配置參數控制的:

  • fs.checkpoint.period,指定連續兩次檢查點的最大時間間隔, 默認值是1小時。

  • fs.checkpoint.size定義了edits日志文件的最大值,一旦超過這個值會導致強制執行檢查點(即使沒到檢查點的最大時間間隔)。

  • 默認值是64MB。

如果NameNode上除了最新的檢查點以外,所有的其他的歷史鏡像和edits文件都丟失了, NameNode可以引入這個最新的檢查點。以下操作可以實現這個功能。

  • 在配置參數dfs.name.dir指定的位置建立一個空文件夾;

  • 把檢查點目錄的位置賦值給配置參數fs.checkpoint.dir;

  • 啟動NameNode,并加上-importCheckpoint。

NameNode會從fs.checkpoint.dir目錄讀取檢查點,并把它保存在dfs.name.dir目錄下。如果dfs.name.dir目錄下有合法的鏡像文件,NameNode會啟動失敗。NameNode會檢查fs.checkpoint.dir目錄下鏡像文件的一致性,但是不會去改動它。

注:關于NameNode是什么時候將改動寫到edit logs中的?這個操作實際上是由DataNode的寫操作觸發的,當我們往DataNode寫文件時,DataNode會跟NameNode通信,告訴NameNode什么文件的第幾個block放在它那里,NameNode這個時候會將這些元數據信息寫到edit logs文件中。

下面附上官方文檔說明:

The NameNode stores modifications to the file system as a log appended to a native file system file, edits. When a NameNode starts up, it reads HDFS state from an image file, fsimage, and then applies edits from the edits log file. It then writes new HDFS state to the fsimage and starts normal operation with an empty edits file. Since NameNode merges fsimage and edits files only during start up, the edits log file could get verylarge over time on a busy cluster. Another side effect of a larger edits file is that next restart of NameNode takes longer.
  The secondary NameNode merges the fsimage and the edits log files periodically and keeps edits log size within a limit. It is usually run ona different machine than the primary NameNode since its memory requirements are on the same order as the primary NameNode.
  The start of the checkpoint process on the secondary NameNode is controlled by two configuration parameters.
* dfs.namenode.checkpoint.period, set to 1 hour by default, specifies the maximum delay between two consecutive checkpoints, and* dfs.namenode.checkpoint.txns, set to 1 million by default, defines the number of uncheckpointed transactions on the NameNode which will force   an urgent checkpoint, even if the checkpoint period has not been reached.  The secondary NameNode stores the latest checkpoint in a directory which is structured the same way as the primary NameNode's directory. So that the check pointed image is always ready to be read by the primary NameNode if necessary.

以上是“Secondary NameNode的功能是什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

珠海市| 偏关县| 缙云县| 乌海市| 金山区| 岳阳市| 远安县| 抚顺市| 陈巴尔虎旗| 衡东县| 务川| 邻水| 广西| 驻马店市| 师宗县| 介休市| 延津县| 柳江县| 龙陵县| 株洲县| 浮梁县| 克东县| 大名县| 关岭| 岳阳县| 绍兴市| 鄂温| 正阳县| 蒙城县| 乌兰县| 巨野县| 离岛区| 阳信县| 峨山| 九台市| 巴楚县| 兰溪市| 眉山市| 阳高县| 兴国县| 宁南县|