hadoop的分布式文件系統(tǒng)HDFS

1.HDFS性能介紹

HDFS(Hadoop Distributed File System)是一個(gè)分布式文件系統(tǒng)捍岳。它具有高容錯(cuò)性并提供了高吞吐量的數(shù)據(jù)訪問金踪,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用沪悲,它提供了一個(gè)高度容錯(cuò)性和高吞吐量的海量數(shù)據(jù)存儲(chǔ)解決方案。

1)高吞吐量訪問:HDFS的每個(gè)Block分布在不同的Rack上,在用戶訪問時(shí),HDFS會(huì)計(jì)算使用最近和訪問量最小的服務(wù)器給用戶提供塘秦。由于Block在不同的Rack上都有備份,所以不再是單數(shù)據(jù)訪問动看,所以速度和效率是非匙鹛蓿快的。另外HDFS可以并行從服務(wù)器集群中讀寫菱皆,增加了文件讀寫的訪問帶寬须误。

2)高容錯(cuò)性:系統(tǒng)故障是不可避免的,如何做到故障之后的數(shù)據(jù)恢復(fù)和容錯(cuò)處理是至關(guān)重要的仇轻。HDFS通過多方面保證數(shù)據(jù)的可靠性京痢,多份復(fù)制并且分布到物理位置的不同服務(wù)器上飞崖,數(shù)據(jù)校驗(yàn)功能生闲、后臺(tái)的連續(xù)自檢數(shù)據(jù)一致性功能都為高容錯(cuò)提供了可能眯漩。

3)線性擴(kuò)展:因?yàn)镠DFS的Block信息存放到NameNode上狐史,文件的Block分布到DataNode上,當(dāng)擴(kuò)充的時(shí)候僅僅添加DataNode數(shù)量默刚,系統(tǒng)可以在不停止服務(wù)的情況下做擴(kuò)充圾结,不需要人工干預(yù)脉幢。

2.hadoop主從結(jié)構(gòu)圖

HDFS是Master和Slave的結(jié)構(gòu)

如上圖所示HDFS是Master和Slave的結(jié)構(gòu)鸭轮,分為NameNode臣淤、Secondary NameNode和DataNode三種角色橄霉。

1)NameNode:在Hadoop1.X中只有一個(gè)Master節(jié)點(diǎn)窃爷,管理HDFS的名稱空間和數(shù)據(jù)塊映射信息、配置副本策略和處理客戶端請(qǐng)求姓蜂;

2)Secondary NameNode:輔助NameNode按厘,分擔(dān)NameNode工作,定期合并fsimage和fsedits并推送給NameNode钱慢,緊急情況下可輔助恢復(fù)NameNode逮京;

3)DataNode:Slave節(jié)點(diǎn),實(shí)際存儲(chǔ)數(shù)據(jù)束莫、執(zhí)行數(shù)據(jù)塊的讀寫并匯報(bào)存儲(chǔ)信息給NameNode懒棉;

3.HDFS讀操作流程圖詳解

讀操作流程

1)客戶端通過調(diào)用FileSystem對(duì)象的open()方法來打開希望讀取的文件,對(duì)于HDFS來說览绿,這個(gè)對(duì)象是分布文件系統(tǒng)的一個(gè)實(shí)例策严;

2)DistributedFileSystem通過使用RPC來調(diào)用NameNode以確定文件起始?jí)K的位置,同一Block按照重復(fù)數(shù)會(huì)返回多個(gè)位置饿敲,這些位置按照Hadoop集群拓?fù)浣Y(jié)構(gòu)排序妻导,距離客戶端近的排在前面;

3)前兩步會(huì)返回一個(gè)FSDataInputStream對(duì)象,該對(duì)象會(huì)被封裝成DFSInputStream對(duì)象倔韭,DFSInputStream可以方便的管理datanode和namenode數(shù)據(jù)流术浪,客戶端對(duì)這個(gè)輸入流調(diào)用read()方法;

4)存儲(chǔ)著文件起始?jí)K的DataNode地址的DFSInputStream隨即連接距離最近的DataNode寿酌,通過對(duì)數(shù)據(jù)流反復(fù)調(diào)用read()方法胰苏,可以將數(shù)據(jù)從DataNode傳輸?shù)娇蛻舳耍?/p>

5)到達(dá)塊的末端時(shí),DFSInputStream會(huì)關(guān)閉與該DataNode的連接醇疼,然后尋找下一個(gè)塊的最佳DataNode碟联,這些操作對(duì)客戶端來說是透明的,客戶端的角度看來只是讀一個(gè)持續(xù)不斷的流僵腺;

6)一旦客戶端完成讀取鲤孵,就對(duì)FSDataInputStream調(diào)用close()方法關(guān)閉文件讀取。

4.HDFS寫操作流程圖詳解

寫操作流程圖

1)客戶端通過調(diào)用DistributedFileSystem的create()方法創(chuàng)建新文件辰如;

2)DistributedFileSystem通過RPC調(diào)用NameNode去創(chuàng)建一個(gè)沒有Blocks關(guān)聯(lián)的新文件普监,創(chuàng)建前NameNode會(huì)做各種校驗(yàn),比如文件是否存在琉兜、客戶端有無權(quán)限去創(chuàng)建等凯正。如果校驗(yàn)通過,NameNode會(huì)為創(chuàng)建新文件記錄一條記錄豌蟋,否則就會(huì)拋出IO異常廊散;

3)前兩步結(jié)束后會(huì)返回FSDataOutputStream的對(duì)象,和讀文件的時(shí)候相似梧疲,F(xiàn)SDataOutputStream被封裝成DFSOutputStream允睹,DFSOutputStream可以協(xié)調(diào)NameNode和Datanode』系客戶端開始寫數(shù)據(jù)到DFSOutputStream缭受,DFSOutputStream會(huì)把數(shù)據(jù)切成一個(gè)個(gè)小的數(shù)據(jù)包,并寫入內(nèi)部隊(duì)列稱為“數(shù)據(jù)隊(duì)列”(Data Queue)该互;

4)DataStreamer會(huì)去處理接受Data Queue米者,它先問詢NameNode這個(gè)新的Block最適合存儲(chǔ)的在哪幾個(gè)DataNode里,比如重復(fù)數(shù)是3宇智,那么就找到3個(gè)最適合的DataNode蔓搞,把他們排成一個(gè)pipeline.DataStreamer把Packet按隊(duì)列輸出到管道的第一個(gè)Datanode中,第一個(gè)DataNode又把Packet輸出到第二個(gè)DataNode中随橘,以此類推喂分;

5)DFSOutputStream還有一個(gè)對(duì)列叫Ack Quene,也是有Packet組成太防,等待DataNode的收到響應(yīng)妻顶,當(dāng)Pipeline中的所有DataNode都表示已經(jīng)收到的時(shí)候酸员,這時(shí)Akc Quene才會(huì)把對(duì)應(yīng)的Packet包移除掉;

6)客戶端完成寫數(shù)據(jù)后調(diào)用close()方法關(guān)閉寫入流讳嘱;

7)DataStreamer把剩余的包都刷到Pipeline里然后等待Ack信息幔嗦,收到最后一個(gè)Ack后,通知NameNode把文件標(biāo)示為已完成沥潭。

5.HDFS中常用到的命令

#查看hdfs上的目錄結(jié)構(gòu)

hadoop fs -ls /? ??

# 遞歸查看hdfs上的目錄結(jié)構(gòu)? ? ? ? ? ?

hadoop fs -lsr

#在hdfs上創(chuàng)建目錄

hadoop fs -mkdir /user/hadoop

#將本地文件上傳到hdfs邀泉,保留本地文件:

hadoop fs -put a.txt /user/hadoop/

#將文件從HDFS下載到本地文件系統(tǒng)

hadoop fs -get /user/hadoop/a.txt /

#復(fù)制hdfs中的src為dst

hadoop fs -cp src dst

##移動(dòng)/改名hdfs中的src為dst

hadoop fs -mv src dst

#查看hdfs上文件a.txt的內(nèi)容

hadoop fs -cat /user/hadoop/a.txt

#刪除目錄下的文件

hadoop fs -rm /user/hadoop/a.txt

#刪除目錄

hadoop fs -rmr /user/hadoop/a

#為了避免誤刪數(shù)據(jù),加了一個(gè)確認(rèn)

hadoop fs -rmi /user/hadoop/a.txt

#將源文件輸出為文本格式钝鸽。允許的格式是zip和TextRecordInputStream

hadoop fs -text /user/hadoop/a.txt

#將本地文件上傳到hdfs汇恤,保留本地文件:

hadoop fs -copyFromLocal localsrc dst 與hadoop fs -put功能類似。

#將本地文件上傳到hdfs拔恰,同時(shí)刪除本地文件:

hadoop fs -moveFromLocal localsrc dst? ??

#顯示目錄中所有文件大小因谎,或者指定一個(gè)文件時(shí),顯示此文件大小

hadoop fs -du??/user/hadoop/a.txt

#計(jì)數(shù)文件個(gè)數(shù)及所占空間的詳情

hadoop fs -count? /

5.1HDFS中常用到的命令

# 報(bào)告文件系統(tǒng)的基本信息和統(tǒng)計(jì)信息?

hadoop dfsadmin -report?

文件系統(tǒng)的基本信息

hadoop dfsadmin -safemode enter | leave | get | wait

# 安全模式維護(hù)命令颜懊。安全模式是 Namenode 的一個(gè)狀態(tài)财岔,這種狀態(tài)下,Namenode??

# 1. 不接受對(duì)名字空間的更改(只讀)?

# 2. 不復(fù)制或刪除塊?

# Namenode 會(huì)在啟動(dòng)時(shí)自動(dòng)進(jìn)入安全模式河爹,當(dāng)配置的塊最小百分比數(shù)滿足最小的副本數(shù)條件時(shí)匠璧,會(huì)自動(dòng)離開安全模式。安全模式可以手動(dòng)進(jìn)入咸这,但是這樣的話也必須手動(dòng)關(guān)閉安全模式夷恍。

5.2HDFS中常用到的命令

#運(yùn)行 HDFS 文件系統(tǒng)檢查工具

hadoop fsck

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市媳维,隨后出現(xiàn)的幾起案子酿雪,更是在濱河造成了極大的恐慌,老刑警劉巖侨艾,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件执虹,死亡現(xiàn)場(chǎng)離奇詭異拓挥,居然都是意外死亡唠梨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門侥啤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來当叭,“玉大人,你說我怎么就攤上這事盖灸∫媳睿” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵赁炎,是天一觀的道長醉箕。 經(jīng)常有香客問我钾腺,道長,這世上最難降的妖魔是什么讥裤? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任放棒,我火速辦了婚禮,結(jié)果婚禮上己英,老公的妹妹穿的比我還像新娘间螟。我一直安慰自己,他們只是感情好损肛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布厢破。 她就那樣靜靜地躺著,像睡著了一般治拿。 火紅的嫁衣襯著肌膚如雪摩泪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天劫谅,我揣著相機(jī)與錄音加勤,去河邊找鬼。 笑死同波,一個(gè)胖子當(dāng)著我的面吹牛鳄梅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播未檩,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼戴尸,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了冤狡?” 一聲冷哼從身側(cè)響起孙蒙,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悲雳,沒想到半個(gè)月后挎峦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡合瓢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年坦胶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晴楔。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡顿苇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出税弃,到底是詐尸還是另有隱情纪岁,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布则果,位于F島的核電站幔翰,受9級(jí)特大地震影響漩氨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜遗增,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一才菠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贡定,春花似錦赋访、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至旋炒,卻和暖如春步悠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瘫镇。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國打工鼎兽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人铣除。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓谚咬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尚粘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子择卦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 首先,我們?cè)谑褂们跋瓤纯碒DFS是什麼郎嫁?這將有助于我們是以后的運(yùn)維使用和故障排除思路的獲得秉继。 HDFS采用mast...
    W_Bousquet閱讀 4,194評(píng)論 0 2
  • HDFS的設(shè)計(jì) HDFS以流式數(shù)據(jù)訪問模式來存儲(chǔ)超大文件,運(yùn)行于商用硬件集群上泽铛。 超大文件:指的是幾百M(fèi)B尚辑、幾百G...
    Vechace閱讀 838評(píng)論 0 1
  • HDFS的設(shè)計(jì)目標(biāo) 通過上一篇文章的介紹我們已經(jīng)了解到HDFS到底是怎樣的東西,以及它是怎樣通過多副本機(jī)制來提供高...
    陌上疏影涼閱讀 1,446評(píng)論 0 3
  • 對(duì)于一個(gè)長期有意識(shí)訓(xùn)練學(xué)莊子基本功的人來說盔腔,最顯著的效果就是能很快察覺到自己的狀態(tài)不對(duì)杠茬,并能迅速找到原因。 在這短...
    西班牙蝸牛閱讀 415評(píng)論 0 4
  • 13年我們相識(shí)铲觉,當(dāng)時(shí)我們互不了解對(duì)方澈蝙,通過電話一點(diǎn)點(diǎn)變成相知,異地戀的愛情撵幽,在別人眼里是那樣的異樣,我相信...
    A儉丹閱讀 190評(píng)論 0 0