Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System)麦备,簡(jiǎn)稱HDFS。對(duì)外部客戶機(jī)而言攀圈,HDFS 就像一個(gè)傳統(tǒng)的分級(jí)文件系統(tǒng)暴凑。可以創(chuàng)建赘来、刪除现喳、移動(dòng)或重命名文件,等等犬辰。很多時(shí)候嗦篱,我們就叫它DFS(Distributed File System)。
Hadoop 是一個(gè)以一種可靠幌缝、高效灸促、可伸縮的方式進(jìn)行處理的,能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的系統(tǒng)框架。所以可以理解為hadoop是一個(gè)框架浴栽,HDFS是hadoop中的一個(gè)部件荒叼。
文件系統(tǒng)是對(duì)文件存儲(chǔ)器空間進(jìn)行組織和分配,負(fù)責(zé)文件存儲(chǔ)并對(duì)存入的文件進(jìn)行保護(hù)和檢索的系統(tǒng)典鸡。
為什么我們需要HDFS:
1.數(shù)據(jù)量巨大被廓,磁盤(pán)開(kāi)始很糾結(jié)的處理我們需要的海量信息。所以需要文件系統(tǒng)有大規(guī)模數(shù)據(jù)分布存儲(chǔ)能力萝玷。
2.讀取一塊磁盤(pán)的所有數(shù)據(jù)需要很長(zhǎng)時(shí)間嫁乘,寫(xiě)入更是需要更長(zhǎng)時(shí)間(寫(xiě)入時(shí)間一般是讀取時(shí)間的3倍)即使有文件為1ZB,或者小點(diǎn)10EB時(shí)球碉,這樣的磁盤(pán)也無(wú)法做到隨讀隨取蜓斧。所以需要文件系統(tǒng)有高并發(fā)訪問(wèn)能力。
- 當(dāng)數(shù)據(jù)集的大小超過(guò)一臺(tái)獨(dú)立物理計(jì)算機(jī)的存儲(chǔ)能力時(shí)汁尺,就有必要對(duì)它進(jìn)行分區(qū)并存儲(chǔ)到若干臺(tái)單獨(dú)的計(jì)算機(jī)上法精。
- 從概念圖上看,分布化的文件系統(tǒng)會(huì)因?yàn)榉植己蟮慕Y(jié)構(gòu)不完整痴突,導(dǎo)致系統(tǒng)復(fù)雜度加大,并且引入的網(wǎng)絡(luò)編程狼荞,同樣導(dǎo)致分布式文件系統(tǒng)更加復(fù)雜辽装。所以需要強(qiáng)大的容錯(cuò)能力。
Paste_Image.png
- HDFS解決以上方案是分片冗余相味,本地校驗(yàn),需要數(shù)據(jù)塊存儲(chǔ)模式
Paste_Image.png
數(shù)據(jù)冗余式存儲(chǔ)拾积,直接將多份的分片文件交給分片后的存儲(chǔ)服務(wù)器去校驗(yàn)。
冗余后的分片文件還有個(gè)額外功能丰涉,只要冗余的分片文件中有一份是完整的拓巧,經(jīng)過(guò)多次協(xié)同調(diào)整后,其他分片文件也將完整一死。
經(jīng)過(guò)協(xié)調(diào)校驗(yàn)肛度,無(wú)論是傳輸錯(cuò)誤,I/O錯(cuò)誤投慈,還是個(gè)別服務(wù)器宕機(jī)承耿,整個(gè)系統(tǒng)里的文件是完整的。
- 分布后的文件系統(tǒng)有個(gè)無(wú)法回避的問(wèn)題伪煤,因?yàn)槲募辉谝粋€(gè)磁盤(pán)導(dǎo)致讀取訪問(wèn)操作的延時(shí)加袋,這個(gè)是HDFS現(xiàn)在遇到的主要問(wèn)題。
現(xiàn)階段抱既,HDFS的配置是按照高數(shù)據(jù)吞吐量?jī)?yōu)化的职烧,可能會(huì)以高時(shí)間延時(shí)為代價(jià)。但萬(wàn)幸的是,HDFS是具有很高彈性蚀之,可以針對(duì)具體應(yīng)用再優(yōu)化跋理。