HDFS 核心原理
HDFS 核心原理
?
HDFS(Hadoop?Distribute?File?System)是一個(gè)分布式文件系統(tǒng) 文件系統(tǒng)是操作系統(tǒng)提供的磁盤空間管理服務(wù),只需要我們指定把文件放到哪兒,從哪個(gè)路徑讀取文件句可以了,不用關(guān)心文件在磁盤上是如何存放的 當(dāng)文件所需空間大于本機(jī)磁盤空間時(shí),如何處理呢? 一是加磁盤,但加到一定程度就有限制了 二是加機(jī)器,用遠(yuǎn)程共享目錄的方式提供網(wǎng)絡(luò)化的存儲(chǔ),這種方式可以理解為分布式文件系統(tǒng)的雛形,可以把不同文件放入不同的機(jī)器中,空間不足了可以繼續(xù)加機(jī)器,突破了存儲(chǔ)空間的限制 但這個(gè)方式有多個(gè)問題 (1)單機(jī)負(fù)載可能極高 例如某個(gè)文件是熱門,很多用戶經(jīng)常讀取這個(gè)文件,就使此文件所在機(jī)器的訪問壓力極高 (2)數(shù)據(jù)不安全 如果某個(gè)文件所在的機(jī)器出現(xiàn)故障,這個(gè)文件就不能訪問了,可靠性很差 (3)文件整理困難 例如想把一些文件的存儲(chǔ)位置進(jìn)行調(diào)整,就需要看目標(biāo)機(jī)器的空間是否夠用,并且需要自己維護(hù)文件位置,如果機(jī)器非常多,操作就極為復(fù)雜 HDFS的解決思路 HDFS是個(gè)抽象層,底層依賴很多獨(dú)立的服務(wù)器,對(duì)外提供統(tǒng)一的文件管理功能,對(duì)于用戶來講,感覺就想在操作一臺(tái)機(jī)器,感受不到HDFS下面的多臺(tái)服務(wù)器 例如用戶訪問HDFS中的?/a/b/c.mpg?這個(gè)文件,HDFS負(fù)責(zé)從底層相應(yīng)服務(wù)器中讀取,然后返回給用戶,這樣用戶只需和HDFS打交道,不關(guān)心這個(gè)文件是怎么存儲(chǔ)的 寫文件示例 例如用戶需要保存一個(gè)文件?/a/b/xxx.avi HDFS首先會(huì)把這個(gè)文件進(jìn)行分割,例如分為4塊,然后分別放到不同服務(wù)器上 這樣做有個(gè)好處,不怕文件太大,并且讀文件的壓力不會(huì)全都集中在一臺(tái)服務(wù)器上 但如果某臺(tái)服務(wù)器壞了,文件就讀不全了 HDFS為保證文件可靠性,會(huì)把每個(gè)文件塊進(jìn)行多個(gè)備份 塊1?:?A?B?C 塊2?:?A?B?D 塊3?:?B?C?D 塊4?:?A?C?D 這樣文件的可靠性就大大增強(qiáng)了,即使某個(gè)服務(wù)器壞了,也可以完整讀取文件 同時(shí)還帶來一個(gè)很大的好處,就是增加了文件的并發(fā)訪問能力,比如多個(gè)用戶讀取這個(gè)文件時(shí),都要讀塊1,HDFS可以根據(jù)服務(wù)器的繁忙程度,選擇從哪臺(tái)服務(wù)器讀塊1 元數(shù)據(jù)的管理 HDFS中存了哪些文件? 文件被分成了哪些塊? 每個(gè)塊被放在哪臺(tái)服務(wù)器上? …… 這些都叫做元數(shù)據(jù),這些元數(shù)據(jù)被抽象為一個(gè)目錄樹,記錄了這些復(fù)雜的對(duì)應(yīng)關(guān)系 這些元數(shù)據(jù)由一個(gè)單獨(dú)的模塊進(jìn)行管理,這個(gè)模塊叫做?NameNode 存放文件塊的真實(shí)服務(wù)器叫做?DataNode 所以用戶訪問HDFS的過程可以理解為: 用戶?->?HDFS?->?NameNode?->?DataNode HDFS?優(yōu)點(diǎn) (1)容量可以線性擴(kuò)展 (2)有副本機(jī)制,存儲(chǔ)可靠性高,吞吐量增大 (3)有了NameNode后,用戶訪問文件只需指定HDFS上的路徑 posted on 2018-08-12 01:03 micwin 閱讀(...) 評(píng)論(...) ?編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/chinanetwind/articles/9461814.html
總結(jié)
- 上一篇: 大型网站系统架构系列:负载均衡详解(一)
- 下一篇: requests模块的入门使用