更新時間:2022年07月12日14時15分 來源:傳智教育 瀏覽次數(shù):
之前我們講過客戶端向HDFS寫數(shù)據(jù)的流程,接下來學(xué)習(xí)客戶端從HDFS中讀數(shù)據(jù)的流程,如圖3-9所示。
圖3-9 HDFS讀數(shù)據(jù)的流程
從圖3-9可以看出,HDFS中的讀數(shù)據(jù)流程可以分為4個步驟,具體如下:
(1)客戶端向NameNode發(fā)起RPC請求,來獲取請求文件Block數(shù)據(jù)塊所在的位置。
(2)NameNode檢測元數(shù)據(jù)文件,會視情況返回部分Block塊信息或者全部Block塊信息,對于每個Block塊,NameNode都會返回含有該Block副本的DataNode地址。
(3)客戶端會選取排序靠前的DataNode來依次讀取Block塊(如果客戶端本身就是DataNode,那么將從本地直接獲取數(shù)據(jù)),每一個Block都會進(jìn)行CheckSum(完整性驗證),若文件不完整,則客戶端會繼續(xù)向NameNode獲取下一批的Block列表,直到驗證讀取出來文件是完整的,則Block讀取完畢。
(4)客戶端會把最終讀取出來所有的Block塊合并成一個完整的最終文件(如1.txt)。
小提示:NameNode返回的DataNode地址,會按照集群拓?fù)浣Y(jié)構(gòu)得出DataNode與客戶端的距離,然后進(jìn)行排序。排序有兩個規(guī)則:網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中距離客戶端近的則靠前;心跳機制中超時匯報的DataNode狀態(tài)為無效的,則排靠后。
基于數(shù)據(jù)源的“臟”數(shù)據(jù)分類
2022-07-07大數(shù)據(jù)培訓(xùn):數(shù)據(jù)分析師的職業(yè)要求(下)
2022-07-07大數(shù)據(jù)培訓(xùn):數(shù)據(jù)分析師的職業(yè)要求(上)
2022-07-06Python跟誰學(xué)比較好?-傳智教育Python培訓(xùn)
2022-07-05關(guān)于MySQL的30條優(yōu)化技巧【超實用】
2022-07-04python培訓(xùn)班哪個靠譜?Python零基礎(chǔ)到入門應(yīng)該怎么學(xué)?
2022-07-04