日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单节点配置SecondaryNameNode

發(fā)布時間:2023/12/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单节点配置SecondaryNameNode 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、SecondaryNameNode概念:

??? 光從字面上來理解,很容易讓一些初學者先入為主:SecondaryNameNode(snn)就是NameNode(nn)的熱備進程。其實不是。ssn是HDFS架構(gòu)中的一個組成部分,但是經(jīng)常由于名字而被人誤解它真正的用途,其實它真正的用途,是用來保存namenode中對HDFS metadata的信息的備份,并減少namenode重啟的時間。對于hadoop進程中,要配置好并正確的使用snn,還是需要做一些工作的。hadoop的默認配置中讓snn進程默認運行在了namenode的那臺機器上,但是這樣的話,如果這臺機器出錯,宕機,對恢復(fù)HDFS文件系統(tǒng)是很大的災(zāi)難,更好的方式是:將snn的進程配置在另外一臺機器上運行。

??? 在hadoop中,namenode負責對HDFS的metadata的持久化存儲,并且處理來自客戶端的對HDFS的各種操作的交互反饋。為了保證交互速度,HDFS文件系統(tǒng)的metadata是被load到namenode機器的內(nèi)存中的,并且會將內(nèi)存中的這些數(shù)據(jù)保存到磁盤進行持久化存儲。為了保證這個持久化過程不會成為HDFS操作的瓶頸,hadoop采取的方式是:沒有對任何一次的當前文件系統(tǒng)的snapshot進行持久化,對HDFS最近一段時間的操作list會被保存到namenode中的一個叫Editlog的文件中去。當重啟namenode時,除了load fslmage意外,還會對這個Editlog文件中記錄的HDFS操作進行replay,以恢復(fù)HDFS重啟之前的最終狀態(tài)。

??? 而SecondaryNameNode,會周期性的將Editlog中記錄的對HDFS的操作合并到一個checkpoint中,然后清空Editlog。所以namenode的重啟就會Load最新的一個checkpoint,并replay Editlog中記錄的hdfs操作,由于Editlog中記錄的是從上一次checkpoint以后到現(xiàn)在的操作列表,所以就會比較小。如果沒有snn的這個周期性的合并過程,那么當每次重啟namenode的時候,就會花費很長的時間。而這樣周期性的合并就能減少重啟的時間。同時也能保證HDFS系統(tǒng)的完整性。這就是SecondaryNameNode所做的事情。所以snn并不能分擔namenode上對HDFS交互性操作的壓力。盡管如此,當namenode機器宕機或者namenode進程出問題時,namenode的daemon進程可以通過人工的方式從snn上拷貝一份metadata來恢復(fù)HDFS文件系統(tǒng)。

??? 至于為什么要將snn進程運行在一臺非NameNode的機器上,這主要出于兩點考慮:

1、可擴展性:創(chuàng)建一個新的HDFS的snapshot需要將namenode中l(wèi)oad到內(nèi)存的metadata信息全部拷貝一遍,這樣的操作需要的內(nèi)存和namenode占用的內(nèi)存一樣,由于分配給namenode進程的內(nèi)存其實是對HDFS文件系統(tǒng)的限制,如果分布式文件系統(tǒng)非常的大,那么namenode那臺機器的內(nèi)存就可能會被namenode進程全部占據(jù)。

2、容錯性:當snn創(chuàng)建一個checkpoint的時候,它會將checkpoint拷貝成metadata的幾個拷貝。將這個操作運行到另外一臺機器,還可以提供分布式文件系統(tǒng)的容錯性。

SECONDARYNAMENODE工作原理

????日志與鏡像的定期合并總共分五步:

??? 1、SecondaryNameNode通知NameNode準備提交edits文件,此時主節(jié)點產(chǎn)生edits.new
??? 2、SecondaryNameNode通過http get方式獲取NameNode的fsimage與edits文件(在SecondaryNameNode的current同級目錄下可見到 temp.check-point或者previous-checkpoint目錄,這些目錄中存儲著從namenode拷貝來的鏡像文件)
??? 3、SecondaryNameNode開始合并獲取的上述兩個文件,產(chǎn)生一個新的fsimage文件fsimage.ckpt
??? 4、SecondaryNameNode用http post方式發(fā)送fsimage.ckpt至NameNode
??? 5、NameNode將fsimage.ckpt與edits.new文件分別重命名為fsimage與edits,然后更新fstime,整個checkpoint過程到此結(jié)束。 在新版本的hadoop中(hadoop0.21.0),SecondaryNameNode兩個作用被兩個節(jié)點替換, checkpoint node與backup node.???????? SecondaryNameNode備份由三個參數(shù)控制fs.checkpoint.period控制周期,fs.checkpoint.size控制日志文件超過多少大小時合并, dfs.http.address表示http地址,這個參數(shù)在SecondaryNameNode為單獨節(jié)點時需要設(shè)置。

二、配置將SeconddaryNameNode運行在另外一臺機器上

??? HDFS的一次運行實例是通過在namenode機器上的$HADOOP_HOME/bin/start-dfs.sh(或者start-all.sh)腳本來啟動的。這個腳本會在運行該腳本的機器上啟動namenode進程,而slaves機器上都會啟動DataNode進程,slave機器的列表保存在conf/slaves文件中,一行一臺機器。并且會在另外一臺機器上啟動一個snn進程,這臺機器由conf/masters文件指定。所以,這里需要嚴格注意,conf/masters文件中指定的機器,并不是說jobtracker或者namenode進程要運行在這臺機器上,因為這些進程是運行在launch bin/start-dfs.sh或者bin/start-mapred.sh(start-all.sh)的機器上的。所以,master這個文件名是非常的令人混淆的,應(yīng)該叫做secondaries會比較合適。然后通過以下步驟:

1、將所有想要運行secondarynamenode進程的機器寫到masters文件中,一行一臺。

2、修改在masters文件中配置了的機器上的conf/hdfs-site.xml文件,加上如下內(nèi)容:

1 <property> 2 <name>dfs.secondary.http.address</name> 3 <value>192.168.1.152:50090</value>##如果secondarynamenode為多個話可以設(shè)置為0.0.0.0:50090 4 </property> 5 <property> 6 <name>dfs.http.address</name> 7 <value>192.168.1.151:50070</value> 8 </property>

core-site.xml:這里有2個參數(shù)可配置,但一般來說我們不做修改。fs.checkpoint.period表示多長時間記錄一次hdfs的鏡像。默認是1小時。fs.checkpoint.size表示一次記錄多大的size,默認64M。

1 <property> 2 <name>fs.checkpoint.period</name> 3 <value>3600</value> 4 <description>The number of seconds between two periodic checkpoints.</description> 5 </property> 6 <property> 7 <name>fs.checkpoint.size</name> 8 <value>67108864</value> 9 <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> 10 </property> 11 <property> 12 <name>fs.checkpoint.dir</name> 13 <value>/app/user/hdfs/namesecondary</value> 14 <description>Determines where on the local filesystem the DFS secondary namenode should store the temporary images to merge.If this is a comma-delimited list of directories then the image is replicated in all of the directories for redundancy.</description> 15 </property>

3、配置檢查。配置完成之后,我們需要檢查一次是否成功。我們可以通過查看運行secondarynamenode的機器上文件目錄來確定是否成功配置。
三、恢復(fù)

??? 1、配置完成后,如何恢復(fù)。首先我們kill掉namenode進程,然后將hadoop.tmp.dir目錄下的數(shù)據(jù)刪除掉。制造master掛掉情況。

??? 2、在配置參數(shù)dfs.name.dir指定的位置建立一個空文件夾;把檢查點目錄的位置賦值給配置參數(shù)fs.checkpoint.dir;啟動namenode,并加上-importCheckpoint。

??? 3、啟動namenode的時候采用hadoop namenode -importCheckpoint.

四、Secondarynamenode的啟動和停止

啟動:

?? bin/hadoop-daemons.sh --config conf/ --hosts masters start secondarynamenode

停止:

?? bin/hadoop-daemons.sh --config conf/ --hosts masters stop secondarynamenode

五、總結(jié)

??? 1、secondarynamenode可以配置多個,master文件里面多寫幾個就可以。

??? 2、千萬記得如果要恢復(fù)數(shù)據(jù)是需要手動拷貝到namenode機器上的,不是自動的。

??? 3、鏡像備份的周期時間是可以修改的,如果不想一小時備份一次,可以改時間短點。


轉(zhuǎn)自:http://www.cnblogs.com/Richardzhu/p/3435568.html

總結(jié)

以上是生活随笔為你收集整理的单节点配置SecondaryNameNode的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。