前言
這一篇感覺是進(jìn)入hadoop生態(tài)圈的第一步澈魄,了解hdfs的構(gòu)造俯树。
hdfs設(shè)計(jì)的初衷
其實(shí)hdfs是山寨的gfs丸冕,是開源社區(qū)的仿造關(guān)于gfs的那篇論文開發(fā)出來(lái)的分布式文件系統(tǒng)沫勿。所以hdfs和gfs的設(shè)計(jì)目的初衷時(shí)相同的综液。
- 超大文件(TB款慨,PB級(jí)文件)
- 高容錯(cuò)性 (保證數(shù)據(jù)的不丟失)
- 高吞吐量
hdfs的優(yōu)點(diǎn)
- 可以滿足大數(shù)據(jù)量的存儲(chǔ)
- 使用普通低廉的硬盤設(shè)備,但是硬盤損壞后數(shù)據(jù)不會(huì)丟失谬莹。
- 使用廉價(jià)硬盤檩奠,但是整體讀寫性能較好
hdfs的缺點(diǎn)
- 不適合小數(shù)據(jù)
- 讀取延遲時(shí)間長(zhǎng)
- 隨機(jī)讀取能力差
- 架構(gòu)復(fù)雜
hdfs怎么保存超大文件
假設(shè)有一個(gè)100T的文件桩了,但是硬盤最大的只有1T,所以這些數(shù)據(jù)就要使用100塊硬盤埠戳。這其實(shí)就是文件的分塊存儲(chǔ)井誉,hdfs在軟件的級(jí)別上實(shí)現(xiàn)了文件的分塊存儲(chǔ)。
hdfs為什么可以保證數(shù)據(jù)不丟失
保證數(shù)據(jù)不丟失基本只有一種方式——冗余數(shù)據(jù)整胃。在hdfs用默認(rèn)所有的數(shù)據(jù)塊都會(huì)有3份備份颗圣,具體幾份可以自己設(shè)定。
hdfs為什么硬盤低廉也可以實(shí)現(xiàn)高吞吐
假設(shè)由1T的數(shù)據(jù)屁使,如果由一塊普通的硬盤存儲(chǔ)在岂,將數(shù)據(jù)全部讀出需要2.5個(gè)小時(shí),但是如果有10塊硬盤蛮寂,將數(shù)據(jù)分塊存儲(chǔ)在10個(gè)硬盤里蔽午,進(jìn)行并行的讀取,速度就提高了10倍酬蹋。hdfs的原理也是相同的及老。
hdfs為什么不適合小數(shù)據(jù)
不是hdfs不能存儲(chǔ)小數(shù)據(jù),而是存儲(chǔ)小數(shù)據(jù)的時(shí)候性能不如linux文件系統(tǒng)(原因后續(xù)會(huì)講)除嘹,所以不適合写半。
hdfs為什么讀取延遲長(zhǎng)
hdfs為了提高吞吐量,每次需要初始化尉咕,啟動(dòng)時(shí)間較長(zhǎng)叠蝇,所以讀取延遲增加。
結(jié)尾語(yǔ)
計(jì)算機(jī)的技術(shù)雖然不同年缎,但是想法都是共同的悔捶,比如這里提升吞吐量就是并行,保證數(shù)據(jù)不丟失只有備份冗余单芜,對(duì)大文件也只有分塊存儲(chǔ)蜕该。