介紹: hdfs是主從架構(gòu),所有為了實(shí)時(shí)的得知dataNode是否存活,必須建立心跳機(jī)制,在整個(gè)hdfs運(yùn)行過程中,dataNode會(huì)定時(shí)的向nameNode發(fā)送心跳報(bào)告已告知nameNode自己的狀態(tài)。
心跳內(nèi)容:
- 報(bào)告自己的存活狀態(tài),每次匯報(bào)之后都會(huì)更新維護(hù)的計(jì)數(shù)信息
- 向nameNode匯報(bào)自己的存儲(chǔ)的block列表信息
心跳報(bào)告周期:
<property>
<name>dfs.heartbeat.interval</name>
<value>3</value> //單位秒
</property>
nameNode判斷一個(gè)dataNode宕機(jī)的基準(zhǔn):連續(xù)10次接收不到dataNode的心跳信息,和2次的檢查時(shí)間。
檢查時(shí)間:表示在nameNode在接收不到dataNode的心跳時(shí),此時(shí)會(huì)向dataNode主動(dòng)發(fā)送檢查
<property>
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>300000</value> //單位毫秒
</property>
計(jì)算公式:2dfs.namenode.heartbeat.recheck-interval+10dfs.heartbeat.interval=310+3002=630s=10.5min
介紹:hdfs在啟動(dòng)的時(shí)候,首先會(huì)進(jìn)入的安全模式中,當(dāng)達(dá)到規(guī)定的要求時(shí),會(huì)退出安全模式。在安全模式中,不能執(zhí)行任何修改元數(shù)據(jù)信息的操作。
hdfs的元數(shù)據(jù)的介紹(三個(gè)部分):
- 抽象目錄樹
- 數(shù)據(jù)與塊的對(duì)應(yīng)關(guān)系(文件被切分成多少個(gè)塊)
- block塊存放的位置信息
hdfs元數(shù)據(jù)的存儲(chǔ)位置:
- 內(nèi)存:內(nèi)存中存儲(chǔ)了一份完整的元數(shù)據(jù)信息(抽象目錄樹、數(shù)據(jù)與塊的對(duì)應(yīng)關(guān)系、block塊存放的位置信息)
- 硬盤:抽象目錄樹、數(shù)據(jù)與塊的對(duì)應(yīng)關(guān)系
注意:其中內(nèi)存中的元數(shù)據(jù)的block塊存放的位置信息,是通過dataNode向nameNode匯報(bào)心跳時(shí)獲取的,硬盤中的元數(shù)據(jù),是因?yàn)閮?nèi)存中的元數(shù)據(jù)在機(jī)器宕機(jī)時(shí)就自動(dòng)消失,所以需要將內(nèi)存中的元數(shù)據(jù)持久化到硬盤
而硬盤中的元數(shù)據(jù)只有抽象目錄樹、數(shù)據(jù)與塊的對(duì)應(yīng)關(guān)系,沒有block塊存放的位置信息
nameNode在啟動(dòng)的所作的操作:
集群的啟動(dòng)順序:nameNode---》dataNode---》secondaryNameNode
將硬盤中的元數(shù)據(jù)信息加載內(nèi)存,如果是第一次啟動(dòng)集群,此時(shí)會(huì)在本地生成一個(gè)fsimage鏡像文件,接收dataNode匯報(bào)的心跳,將匯報(bào)中的block的位置信息,加載到內(nèi)存。當(dāng)然就在此時(shí)hdfs會(huì)進(jìn)入安全模式。
退出安全模式的條件:
- 如果在集群?jiǎn)?dòng)時(shí)dfs.namenode.safemode.min.datanodes(啟動(dòng)的dataNode個(gè)數(shù))為0時(shí),并且,數(shù)據(jù)塊的最小副本數(shù)dfs.namenode.replication.min為1時(shí),此時(shí)會(huì)退出安全模式,也就是說,集群達(dá)到了最小副本數(shù),并且能運(yùn)行的datanode節(jié)點(diǎn)也達(dá)到了要求,此時(shí)退出安全模式
- 啟動(dòng)的dataNode個(gè)數(shù)為0時(shí),并且所有的數(shù)據(jù)塊的存貨率達(dá)到0.999f時(shí),集群退出安全模式(副本數(shù)達(dá)到要求)
<property>
<name>dfs.namenode.safemode.threshold-pct</name>
<value>0.999f</value>
</property>
手動(dòng)退出或者進(jìn)入安全模式
hdfs dfsadmin -safemode enter 進(jìn)入
hdfs dfsadmin -safemode leave 退出
hdfs dfsadmin -safemode get 查看
第一個(gè)副本,放置在離客戶端最近的那個(gè)機(jī)架的任意節(jié)點(diǎn),如果客戶端是本機(jī),那就存放在本機(jī)(保證有一個(gè)副本數(shù)),第二個(gè)副本,放置在跟第一個(gè)副本不同機(jī)架的任意節(jié)點(diǎn)上,第三個(gè)副本,放置在跟第二個(gè)副本相同機(jī)架的不同節(jié)點(diǎn)上。
修改副本的方法:
1. 修改配置文件:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
2. 命令設(shè)置: hadoop fs -setrep 2 -R dir
hdfs的負(fù)載均衡:表示每一個(gè)dataNode存儲(chǔ)的數(shù)據(jù)與其硬件相匹配,即占用率相當(dāng)
,如何手動(dòng)調(diào)整負(fù)載均衡:
- 集群自動(dòng)調(diào)整負(fù)載均衡的帶寬:(默認(rèn)為1M)
<property>
<name>dfs.datanode.balance.bandwidthPerSec</name>
<value>1048576</value> //1M
</property>
- 告訴集群進(jìn)行負(fù)載均衡:start-balancer.sh -t 10% 表示節(jié)點(diǎn)大占用率與節(jié)點(diǎn)的最小的占用率之間的差值當(dāng)超過10%時(shí),此時(shí)集群不會(huì)立刻進(jìn)行負(fù)載均衡,會(huì)在集群不忙的時(shí)候進(jìn)行。
這是在分布式的基礎(chǔ)上,secondaryNamenode對(duì)元數(shù)據(jù)的合并:
合并時(shí)機(jī):
A:間隔多長(zhǎng)時(shí)間合并一次
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>3600</value> //單位秒
</property>
B:操作日志記錄超過多少條合并一次
<property>
<name>dfs.namenode.checkpoint.txns</name>
<value>1000000</value>
</property>
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前題目:hdfs的四大機(jī)制和兩大核心-創(chuàng)新互聯(lián)
當(dāng)前地址:http://chinadenli.net/article18/dcpsdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、定制開發(fā)、外貿(mào)建站、搜索引擎優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容