HDFS(4)- 數(shù)據(jù)流之讀取

HDFS文件讀取步驟是怎么樣的授翻?我們通過下圖中的步驟順序一步步梳理,然后再看這樣設(shè)計(jì)的好處藤为。


hdfs-read.png

步驟(Java客戶端)

1. open

客戶端調(diào)用FileSystem對象的open()方法來打開希望讀取的文件怪与,對于HDFS來說,FileSystem對象是DistributedFileSystem的一個實(shí)例缅疟。

2. get block locations

DistributedFileSystem通過使用遠(yuǎn)程過程調(diào)用(RPC)來調(diào)用namenode分别,以確定文件起始塊的位置。對于每個塊存淫,namenode返回存有該塊副本的datanode地址耘斩。datanode根據(jù)距離客戶端的距離來排序,會選擇在最近的datanode中讀取數(shù)據(jù)桅咆。

3. read括授,read from FSDataInputStream

DistributedFileSystem類返回一個FSDataInputStream對象給客戶端用來讀取數(shù)據(jù),該對象支持文件定位岩饼,該對象對datanodenamenode的I/O進(jìn)行了封裝荚虚。客戶端對這個輸入流代用read()方法籍茧。

4. read版述,read from first datanode

存儲著文件起始塊的datanode地址的DFSInputStream(3 中的FSDataInputStream封裝了DFSInputStream )連接距離最近的文件中的第一個塊所在的datanode,通過read()方法寞冯,將數(shù)據(jù)從datanode傳輸?shù)娇蛻舳恕?/p>

5. read渴析,read from next datanode

讀取到塊的末端時,DFSInputStream關(guān)閉與datanode的連接简十,然后尋找下一個塊的最佳(距離最近)的datanode檬某。對于客戶端來說,客戶端只是在讀取一個連續(xù)的流螟蝙。

6. close

客戶端讀取完成后恢恼,調(diào)用FSDataInputStream對象的close()方法關(guān)閉流。

設(shè)計(jì)優(yōu)勢

1. 容錯

在 4 和 5 步驟中胰默,如果DFSInputStreamdatanode的通信失敗场斑,會嘗試從這個塊的另一個最鄰近的datanode讀取數(shù)據(jù)。也會記住這故障的datanode牵署,并校驗(yàn)從datanode讀取到的數(shù)據(jù)是否完整漏隐。如有損壞的塊也會嘗試從其他datanode讀取這個塊的副本,并將損壞的塊的情況告訴namenode奴迅。

2. 提高客戶端并發(fā)

客戶端可以直接連接到datanode檢索數(shù)據(jù)青责,并且namenode告知客戶端每個塊所在的距離客戶端最近的datanode。這樣數(shù)據(jù)流就分散在了集群中的所有的datanode上,使HDFS可以接受大量客戶端的并發(fā)讀取請求脖隶。

3. 減輕namenode的處理壓力

這樣設(shè)計(jì)namenode只需要響應(yīng)獲取塊位置的請求扁耐,這些信息由datanode匯報并存在內(nèi)存中,非常高效产阱,數(shù)據(jù)響應(yīng)交給datanode婉称,自身不需要響應(yīng)數(shù)據(jù)請求。如果不這樣做构蹬,namenode將成為瓶頸王暗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市庄敛,隨后出現(xiàn)的幾起案子俗壹,更是在濱河造成了極大的恐慌,老刑警劉巖藻烤,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件策肝,死亡現(xiàn)場離奇詭異,居然都是意外死亡隐绵,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進(jìn)店門拙毫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來依许,“玉大人,你說我怎么就攤上這事缀蹄∏吞” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵缺前,是天一觀的道長蛀醉。 經(jīng)常有香客問我,道長衅码,這世上最難降的妖魔是什么拯刁? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮逝段,結(jié)果婚禮上垛玻,老公的妹妹穿的比我還像新娘。我一直安慰自己奶躯,他們只是感情好帚桩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嘹黔,像睡著了一般账嚎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天郭蕉,我揣著相機(jī)與錄音疼邀,去河邊找鬼。 笑死恳不,一個胖子當(dāng)著我的面吹牛檩小,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播烟勋,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼规求,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了卵惦?” 一聲冷哼從身側(cè)響起阻肿,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沮尿,沒想到半個月后丛塌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡畜疾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年赴邻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啡捶。...
    茶點(diǎn)故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡姥敛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瞎暑,到底是詐尸還是另有隱情彤敛,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布了赌,位于F島的核電站墨榄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏勿她。R本人自食惡果不足惜袄秩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嫂拴。 院中可真熱鬧播揪,春花似錦、人聲如沸筒狠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辩恼。三九已至雇庙,卻和暖如春谓形,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疆前。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工寒跳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人竹椒。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓童太,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胸完。 傳聞我的和親對象是個殘疾皇子书释,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評論 2 354

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

  • 首先,我們在使用前先看看HDFS是什麼赊窥?這將有助于我們是以后的運(yùn)維使用和故障排除思路的獲得爆惧。 HDFS采用mast...
    W_Bousquet閱讀 4,194評論 0 2
  • 思考問題 HDFS的架構(gòu) 設(shè)計(jì)前提和目標(biāo) 專為存儲超大文件而設(shè)計(jì):hdfs應(yīng)該能夠支持GB級別大小的文件;它應(yīng)該能...
    Sakura_P閱讀 637評論 0 2
  • 先思考問題 我們處在一個大數(shù)據(jù)的時代已經(jīng)是不爭的事實(shí)锨能,這主要表現(xiàn)在數(shù)據(jù)源多且大扯再,如互聯(lián)網(wǎng)數(shù)據(jù),人們也認(rèn)識到數(shù)據(jù)里往...
    墻角兒的花閱讀 7,361評論 0 9
  • 2017年9月28日星期四 距離18考研95天 今天聽說有之前的同學(xué)保研去了中山址遇,不嫉妒是假的熄阻。 今天眼睛好了許多...
    sy_yunyi閱讀 446評論 0 0
  • 最近狂追《思美人》,被室友們知倔约,引來一時戲謔饺律,戲我愛看此類古裝之情情愛愛。彼時跺株,只看到此劇的三分之一處,尚無力反駁...
    風(fēng)菇?jīng)?/span>閱讀 471評論 2 4