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對象的Open方法,其實(shí)獲取的是一個(gè)DistributedFileSystem的實(shí)例。
(2)DistributedFileSystem通過RPC(遠(yuǎn)程過程調(diào)用)獲得文件的第一批Block的Locations,同一Block按照重復(fù)數(shù)會返回多個(gè)Locations,這些Locations按照Hadoop拓?fù)浣Y(jié)構(gòu)排序,距離客戶端近的排在前面。
(3)前兩步會返回一個(gè)FSDatalnputStream對象,該對象會被封裝成DFSlnputStream對象,DFSlnputStream可以方便地管理DataNode和NameNode數(shù)據(jù)流??蛻舳苏{(diào)用Read方法,DFSlnputStream就會找出離客戶端最近的DataNode并連接DataNode。
(4)數(shù)據(jù)從DataNode源源不斷地流向客戶端。
(5)如果第一個(gè)Block塊的數(shù)據(jù)讀完了,就會關(guān)閉指向第一個(gè)Block塊的DataNode連接,接著讀取下一個(gè)Block塊。這些操作對客戶端來說是透明的,從客戶端的角度來看只是讀一個(gè)持續(xù)不斷的流。
(6)如果第一批Block都讀完了,DFSlnputStream就會去NameNode拿下一批Block的Locations,然后繼續(xù)讀,如果所有的Block塊都讀完,這時(shí)就會關(guān)閉掉所有的流。
上一篇:
VLAN優(yōu)點(diǎn)有哪些
下一篇:
封裝PPP及配置其驗(yàn)證方式