廣州總校區(qū)切換校區(qū)
復(fù)制成功
微信號(hào):togogoi
添加微信好友, 詳細(xì)了解課程
已復(fù)制成功,如果自動(dòng)跳轉(zhuǎn)微信失敗,請(qǐng)前往微信添加好友
打開(kāi)微信
圖片

行業(yè)新聞

HDFS如何讀數(shù)據(jù)

發(fā)布時(shí)間: 2022-11-24

HDFS如何讀數(shù)據(jù),如圖1所示,HDFS進(jìn)行讀數(shù)據(jù)描述如下。



圖1 HDFS讀數(shù)據(jù)流程圖

(1)調(diào)用FileSystem對(duì)象的Open方法,其實(shí)獲取的是一個(gè)DistributedFileSystem的實(shí)例。

(2)DistributedFileSystem通過(guò)RPC(遠(yuǎn)程過(guò)程調(diào)用)獲得文件的第一批Block的Locations,同一Block按照重復(fù)數(shù)會(huì)返回多個(gè)Locations,這些Locations按照Hadoop拓?fù)浣Y(jié)構(gòu)排序,距離客戶端近的排在前面。

(3)前兩步會(huì)返回一個(gè)FSDatalnputStream對(duì)象,該對(duì)象會(huì)被封裝成DFSlnputStream對(duì)象,DFSlnputStream可以方便地管理DataNode和NameNode數(shù)據(jù)流??蛻舳苏{(diào)用Read方法,DFSlnputStream就會(huì)找出離客戶端最近的DataNode并連接DataNode。

(4)數(shù)據(jù)從DataNode源源不斷地流向客戶端。

(5)如果第一個(gè)Block塊的數(shù)據(jù)讀完了,就會(huì)關(guān)閉指向第一個(gè)Block塊的DataNode連接,接著讀取下一個(gè)Block塊。這些操作對(duì)客戶端來(lái)說(shuō)是透明的,從客戶端的角度來(lái)看只是讀一個(gè)持續(xù)不斷的流。

(6)如果第一批Block都讀完了,DFSlnputStream就會(huì)去NameNode拿下一批Block的Locations,然后繼續(xù)讀,如果所有的Block塊都讀完,這時(shí)就會(huì)關(guān)閉掉所有的流。

上一篇: VLAN優(yōu)點(diǎn)有哪些

下一篇: 封裝PPP及配置其驗(yàn)證方式

<
在線咨詢 ×

您好,請(qǐng)問(wèn)有什么可以幫您?我們將竭誠(chéng)提供最優(yōu)質(zhì)服務(wù)!