產(chǎn)生背景:分布式文件管理系統(tǒng),源自于Google的GFS(Goole File System)論文埋市,GFS的開(kāi)源克隆版
重點(diǎn):分布式掘宪,易擴(kuò)展(增加機(jī)器來(lái)增加存儲(chǔ)量搏恤,多副本)
HDFS架構(gòu)
1.master(主節(jié)點(diǎn) NameNode/NN)和多個(gè)salve(副節(jié)點(diǎn) DataNode/DN)
一個(gè)文件按照一定規(guī)則拆分成多個(gè)Block (一般為128M為一塊)
NN:(1)負(fù)責(zé)客戶(hù)端請(qǐng)求的響應(yīng)
?? ?? (2)負(fù)責(zé)元數(shù)據(jù)的管理【名稱(chēng),副本系數(shù)舶赔,Block存放的DN】
DN:(1)存儲(chǔ)用戶(hù)的文件隊(duì)形的數(shù)據(jù)塊(Block)
?? ?? (2)定期向NN發(fā)送信息扫倡,匯報(bào)其本身和所有Block,狀態(tài)
經(jīng)典部署:NameNode+N個(gè)DataNode
副本存放策略:本Rack(機(jī)架)放置一個(gè),另一機(jī)架放置在不同節(jié)點(diǎn)分別放置(不作要求總共為3份)
優(yōu)點(diǎn):
? ? 數(shù)據(jù)冗余,硬件容錯(cuò)(block,多副本)
? ? 適合批處理
? ? 處理流式的數(shù)據(jù)訪問(wèn)
? ? 適合存儲(chǔ)大文件
? ? 可構(gòu)建在廉價(jià)機(jī)器
缺點(diǎn):
? ? 不適合低延遲的數(shù)據(jù)訪問(wèn)
? ? 不適合小文件存儲(chǔ)
? ? 并發(fā)寫(xiě)入撵溃、文件隨機(jī)修改(只支持append追加)
組成結(jié)構(gòu):
? ? Client:客戶(hù)端用戶(hù)程序
?? ??? ??? ??? ??? ?切分文件成數(shù)據(jù)塊
?? ??? ??? ??? ?? ? 與NameNode交互疚鲤,獲取文件的位置信息
?? ??? ??? ??? ?? ? 與DataNode交互,讀取對(duì)應(yīng)數(shù)據(jù)塊
?? ??? ??? ??? ?? ? 管理和訪問(wèn)HDFS
? ? NameNode(Master):集群管理者缘挑,負(fù)責(zé)者
?? ??? ??? ??? ??? ??? ??? ?? ???? ??? ?管理HDFS名稱(chēng)空間
?? ??? ??? ??? ??? ??? ??? ?? ? ?? ??? ?管理數(shù)據(jù)塊的映射關(guān)系
?? ??? ??? ??? ??? ??? ??? ?? ? ?? ??? ?配合副本策略
?? ??? ??? ??? ??? ??? ??? ?? ? ?? ??? ?客戶(hù)端的讀寫(xiě)請(qǐng)求
? ? SecondaryNameNode:輔助NameNode
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?? ? 分擔(dān)工作量
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?? ? 定期合并image鏡像文件和edits日志文件集歇,并推送給NameNode
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?? ? 緊急情況恢復(fù)NameNode
? ? DataNode(Slave):實(shí)際存儲(chǔ)數(shù)據(jù)
?? ??? ??? ??? ??? ??? ?? ? ?? ??? ?存儲(chǔ)實(shí)際的數(shù)據(jù)塊
?? ??? ??? ??? ??? ??? ??? ??? ?? ? 執(zhí)行數(shù)據(jù)塊的讀寫(xiě)操作?
解決NameNode單點(diǎn)故障:
?? ?namdNode(active)與nameNode(standby(備用))數(shù)據(jù)的共享存儲(chǔ)(zoookeeper解決兩者之間同步問(wèn)題)
?? ?jnNode(日志,鏡像文件(fsimage))
?? ?zoookeeper接收nameNode的心跳语淘,調(diào)控nameNode接替工作
?? ?HA架構(gòu)擴(kuò)展nameNode