您好,登錄后才能下訂單哦!
1、HDFS
HDFS(Hadoop Distributed File System)是Hadoop項目的核心子項目,是分布式計算中數(shù)據(jù)存儲管理的基礎(chǔ),是基于流數(shù)據(jù)模式訪問和處理超大文件的需求而開發(fā)的,可以運行于廉價的商用服務(wù)器上。它所具有的高容錯、高可靠性、高可擴(kuò)展性、高獲得性、高吞吐率等特征為海量數(shù)據(jù)提供了不怕故障的存儲,為超大數(shù)據(jù)集(Large Data Set)的應(yīng)用處理帶來了很多便利。
2、HDFS
HDFS 源于 Google 在2003年10月份發(fā)表的GFS(Google File System) 論文。
3、HDFS的優(yōu)缺點
優(yōu)點:
1、高容錯性
數(shù)據(jù)自動保存多個副本。它通過增加副本的形式,提高容錯性。
某一個副本丟失以后,它可以自動恢復(fù),這是由 HDFS 內(nèi)部機(jī)制實現(xiàn)的,我們不必關(guān)心。
2、適合批處理
它是通過移動計算而不是移動數(shù)據(jù)。
它會把數(shù)據(jù)位置暴露給計算框架。
3、適合大數(shù)據(jù)處理
處理數(shù)據(jù)達(dá)到 GB、TB、甚至PB級別的數(shù)據(jù)。
能夠處理百萬規(guī)模以上的文件數(shù)量,數(shù)量相當(dāng)之大。
能夠處理10K節(jié)點的規(guī)模。
4、流式文件訪問
簡化一致性模型,實現(xiàn)一次寫入,多次讀取。文件一旦寫入不能修改,只能追加。
它能保證數(shù)據(jù)的一致性。
5、可構(gòu)建在廉價機(jī)器上
它通過多副本機(jī)制,提高可靠性。
它提供了容錯和恢復(fù)機(jī)制。比如某一個副本丟失,可以通過其它副本來恢復(fù)。
缺點:
1、低延時數(shù)據(jù)訪問
* 比如毫秒級的來存儲數(shù)據(jù),這是不行的,它做不到。
* 它適合高吞吐率的場景,就是在某一時間內(nèi)寫入大量的數(shù)據(jù)。但是 它在低延時的情況下是不行的,比如毫秒級以內(nèi)讀取數(shù)據(jù),這樣它 是很難做到的。
2、小文件存儲
*存儲大量小文件(這里的小文件是指小于HDFS系統(tǒng)的Block大小的文 件(默認(rèn)64M))的話,它會占用 NameNode大量的內(nèi)存來存儲文 件、目錄和塊信息。這樣是不可取的,因為NameNode的內(nèi)存總是有 限的。
*小文件存儲的尋道時間會超過讀取時間,它違反了HDFS的設(shè)計目 標(biāo)。
3、并發(fā)寫入、文件隨機(jī)修改
*一個文件只能有一個寫,不允許多個線程同時寫。
*僅支持?jǐn)?shù)據(jù) append(追加),不支持文件的隨機(jī)修改。
hdfs的特性:
* 高容錯,可擴(kuò)展性及可配置性強(qiáng)
* 跨平臺
* shell命令接口
* 機(jī)架感知功能
* 負(fù)載均衡
Web界面
4.HDFS存儲數(shù)據(jù)
HDFS 采用Master/Slave的架構(gòu)來存儲數(shù)據(jù),這種架構(gòu)主要由HDFS Client、NameNode、DataNode和Secondary NameNode四個部分組成。
1、Client:就是客戶端。
文件切分。文件上傳 HDFS 的時候,Client 將文件切分成 一個一個的Block,然后進(jìn)行存儲。
與 NameNode 交互,獲取文件的位置信息。
與 DataNode 交互,讀取或者寫入數(shù)據(jù)。
Client 提供一些命令來管理 HDFS,比如啟動或者關(guān)閉HDFS。
Client 可以通過一些命令來訪問 HDFS。
2、NameNode:就是 master,它是一個主管、管理者。
管理 HDFS 的名稱空間
管理數(shù)據(jù)塊(Block)映射信息
配置副本策略
處理客戶端讀寫請求。
3、DataNode:就是Slave。NameNode 下達(dá)命令,DataNode 執(zhí)行實際的操作。
存儲實際的數(shù)據(jù)塊。
執(zhí)行數(shù)據(jù)塊的讀/寫操作。
4、Secondary NameNode:并非 NameNode 的熱備。當(dāng)NameNode 掛掉的時候,它并不能馬上替換 NameNode 并提供服務(wù)。
輔助 NameNode,分擔(dān)其工作量。
定期合并 fsimage和fsedits,并推送給NameNode。
在緊急情況下,可輔助恢復(fù) NameNode。
工作流程:
secondarynamenode通知namenode切換edits文件
secondarynamenode從namenode獲得fsimage和edits(通過http)
secondarynamenode將fsimage載入內(nèi)存,然后開始合并edits
secondarynamenode將新的fsimage發(fā)回給namenode
namenode用新的fsimage替換舊的fsimage
5.數(shù)據(jù)損壞處理
* 當(dāng)DN(DataNode)讀取block的時候,它會計算checksum;
* 如果計算后的checksum,與block創(chuàng)建時值不一樣,說明該block已經(jīng)損壞。
* client讀取其它DN上的block;NN(NameNode)標(biāo)記該塊已經(jīng)損壞,然后復(fù)制block達(dá)到預(yù)期設(shè)置的文件備份數(shù);
* DN在其文件創(chuàng)建后三周驗證其checksum。
關(guān)注大數(shù)據(jù)and機(jī)器學(xué)習(xí)公眾號,一起開創(chuàng)未來。
CLbigdata
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。