【Hadoop】HDFS的運(yùn)行原理

簡介
HDFS(Hadoop Distributed File System )Hadoop分布式文件系統(tǒng)列肢。是根據(jù)google發(fā)表的論文翻版的载庭。論文為GFS(Google File System)Google 文件系統(tǒng)(中文苇本,英文)遵蚜。
HDFS有很多特點
**① **保存多個副本憾赁,且提供容錯機(jī)制俯渤,副本丟失或宕機(jī)自動恢復(fù)。默認(rèn)存3份乳规。
**② **運(yùn)行在廉價的機(jī)器上员淫。
**③ **適合大數(shù)據(jù)的處理序矩。多大蜈抓?多衅舸隆昂儒?HDFS默認(rèn)會將文件分割成block沟使,64M為1個block。然后將block按鍵值對存儲在HDFS上渊跋,并將鍵值對的映射存到內(nèi)存中腊嗡。如果小文件太多着倾,那內(nèi)存的負(fù)擔(dān)會很重。


如上圖所示燕少,HDFS也是按照Master和Slave的結(jié)構(gòu)卡者。分NameNode、SecondaryNameNode客们、DataNode這幾個角色崇决。
NameNode:是Master節(jié)點,是大領(lǐng)導(dǎo)底挫。管理數(shù)據(jù)塊映射恒傻;處理客戶端的讀寫請求;配置副本策略建邓;管理HDFS的名稱空間盈厘;
SecondaryNameNode:是一個小弟,分擔(dān)大哥namenode的工作量官边;是NameNode的冷備份沸手;合并fsimage和fsedits然后再發(fā)給namenode。
DataNode:Slave節(jié)點注簿,奴隸契吉,干活的。負(fù)責(zé)存儲client發(fā)來的數(shù)據(jù)塊block诡渴;執(zhí)行數(shù)據(jù)塊的讀寫操作栅隐。
熱備份:b是a的熱備份,如果a壞掉玩徊。那么b馬上運(yùn)行代替a的工作租悄。
冷備份:b是a的冷備份,如果a壞掉恩袱。那么b不能馬上代替a工作泣棋。但是b上存儲a的一些信息,減少a壞掉之后的損失畔塔。
fsimage:元數(shù)據(jù)鏡像文件(文件系統(tǒng)的目錄樹潭辈。)
edits:元數(shù)據(jù)的操作日志(針對文件系統(tǒng)做的修改操作記錄)
namenode內(nèi)存中存儲的是=fsimage+edits。
SecondaryNameNode負(fù)責(zé)定時默認(rèn)1小時澈吨,從namenode上把敢,獲取fsimage和edits來進(jìn)行合并,然后再發(fā)送給namenode谅辣。減少namenode的工作量修赞。

工作原理
寫操作:


有一個文件FileA,100M大小桑阶。Client將FileA寫入到HDFS上柏副。
HDFS按默認(rèn)配置勾邦。
HDFS分布在三個機(jī)架上Rack1,Rack2割择,Rack3眷篇。

a. Client將FileA按64M分塊。分成兩塊荔泳,block1和Block2;
b. Client向nameNode發(fā)送寫數(shù)據(jù)請求蕉饼,如圖藍(lán)色虛線①------>。
c. NameNode節(jié)點玛歌,記錄block信息椎椰。并返回可用的DataNode,如粉色虛線②--------->沾鳄。
Block1: host2,host1,host3
Block2: host7,host8,host4
原理:
NameNode具有RackAware機(jī)架感知功能慨飘,這個可以配置。
若client為DataNode節(jié)點译荞,那存儲block時瓤的,規(guī)則為:副本1,同client的節(jié)點上吞歼;副本2圈膏,不同機(jī)架節(jié)點上;副本3篙骡,同第二個副本機(jī)架的另一個節(jié)點上稽坤;其他副本隨機(jī)挑選。
若client不為DataNode節(jié)點糯俗,那存儲block時尿褪,規(guī)則為:副本1,隨機(jī)選擇一個節(jié)點上得湘;副本2杖玲,不同副本1,機(jī)架上淘正;副本3摆马,同副本2相同的另一個節(jié)點上;其他副本隨機(jī)挑選鸿吆。
d. client向DataNode發(fā)送block1囤采;發(fā)送過程是以流式寫入。
流式寫入過程惩淳,
** 1>**將64M的block1按64k的package劃分;
2>然后將第一個package發(fā)送給host2;
3>host2接收完后蕉毯,將第一個package發(fā)送給host1,同時client想host2發(fā)送第二個package;
4>host1接收完第一個package后恕刘,發(fā)送給host3缤谎,同時接收host2發(fā)來的第二個package抒倚。
5>以此類推褐着,如圖紅線實線所示,直到將block1發(fā)送完畢托呕。
6>host2,host1,host3向NameNode含蓉,host2向Client發(fā)送通知,說“消息發(fā)送完了”项郊。如圖粉紅顏色實線所示馅扣。
7>client收到host2發(fā)來的消息后,向namenode發(fā)送消息着降,說我寫完了差油。這樣就真完成了。如圖黃色粗實線
8>發(fā)送完block1后任洞,再向host7蓄喇,host8,host4發(fā)送block2交掏,如圖藍(lán)色實線所示妆偏。
9>發(fā)送完block2后,host7,host8,host4向NameNode盅弛,host7向Client發(fā)送通知钱骂,如圖淺綠色實線所示。
10>client向NameNode發(fā)送消息挪鹏,說我寫完了见秽,如圖黃色粗實線。讨盒。张吉。這樣就完畢了。
分析催植,通過寫過程肮蛹,我們可以了解到:
寫1T文件,我們需要3T的存儲创南,3T的網(wǎng)絡(luò)流量貸款伦忠。
在執(zhí)行讀或?qū)懙倪^程中,NameNode和DataNode通過HeartBeat進(jìn)行保存通信稿辙,確定DataNode活著昆码。如果發(fā)現(xiàn)DataNode死掉了,就將死掉的DataNode上的數(shù)據(jù),放到其他節(jié)點去赋咽。讀取時旧噪,要讀其他節(jié)點去。
掛掉一個節(jié)點脓匿,沒關(guān)系淘钟,還有其他節(jié)點可以備份;甚至陪毡,掛掉某一個機(jī)架米母,也沒關(guān)系;其他機(jī)架上毡琉,也有備份铁瞒。

讀操作:


讀操作就簡單一些了,如圖所示桅滋,client要從datanode上慧耍,讀取FileA。而FileA由block1和block2組成丐谋。

那么芍碧,讀操作流程為:
a. client向namenode發(fā)送讀請求。
b. namenode查看Metadata信息笋鄙,返回fileA的block的位置师枣。
block1:host2,host1,host3
block2:host7,host8,host4
c. block的位置是有先后順序的,先讀block1萧落,再讀block2践美。而且block1去host2上讀取找岖;然后block2陨倡,去host7上讀取许布;

上面例子中兴革,client位于機(jī)架外,那么如果client位于機(jī)架內(nèi)某個DataNode上蜜唾,例如,client是host6杂曲。那么讀取的時候,遵循的規(guī)律是:
優(yōu)選讀取本機(jī)架上的數(shù)據(jù)袁余。

HDFS中常用到的命令
1擎勘、hadoop fs
+ View Code

2、hadoop fsadmin
+ View Code

3颖榜、hadoop fsck
4棚饵、start-balancer.sh

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末煤裙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子噪漾,更是在濱河造成了極大的恐慌硼砰,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欣硼,死亡現(xiàn)場離奇詭異题翰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)分别,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進(jìn)店門遍愿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來存淫,“玉大人耘斩,你說我怎么就攤上這事∥ε兀” “怎么了括授?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長岩饼。 經(jīng)常有香客問我荚虚,道長,這世上最難降的妖魔是什么籍茧? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任版述,我火速辦了婚禮,結(jié)果婚禮上寞冯,老公的妹妹穿的比我還像新娘渴析。我一直安慰自己,他們只是感情好吮龄,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布俭茧。 她就那樣靜靜地躺著,像睡著了一般漓帚。 火紅的嫁衣襯著肌膚如雪母债。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天尝抖,我揣著相機(jī)與錄音毡们,去河邊找鬼。 笑死昧辽,一個胖子當(dāng)著我的面吹牛衙熔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播奴迅,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼青责,長吁一口氣:“原來是場噩夢啊……” “哼挺据!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起脖隶,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤扁耐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后产阱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體婉称,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年构蹬,在試婚紗的時候發(fā)現(xiàn)自己被綠了王暗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡庄敛,死狀恐怖俗壹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情藻烤,我是刑警寧澤绷雏,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站怖亭,受9級特大地震影響涎显,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜兴猩,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一期吓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧倾芝,春花似錦讨勤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拯刁,卻和暖如春脊岳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背垛玻。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工割捅, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人帚桩。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓亿驾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親账嚎。 傳聞我的和親對象是個殘疾皇子莫瞬,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容