1、使用 hdfs 提供的客戶端 client,向遠端的 namenode 發起 rpc 請求;
2、namenode 會視情況返回檔案的全部 block 列表,對於每個 block,namenode 都會返回有該 block 拷貝的 datanode 位址;
3、客戶端client會選取離客戶端最近的datanode來讀取block;如果客戶端本身就是datanode,那麼將從本地直接獲取資料;
4、讀取完當前 block 的資料後,關閉當前的 datanode 鏈結,並為讀取下乙個 block 尋找最佳的 datanode;
5、當讀完列表 block 後,且檔案讀取還沒有結束,客戶端會繼續向 namenode 獲取下一批的block 列表;
6、讀取完乙個 block 都會進行 checksum 驗證,如果讀取 datanode 時出現錯誤,客戶端會通知 namenode,然後再從下乙個擁有該 block 拷貝的 datanode 繼續讀。
hdfs讀資料流程
2,客戶端挑選一台datanode 按照就近原則,返回的塊位址根據網路拓撲圖排序,距離客戶端進的排在前面 伺服器,建立連線,請求讀取資料 如果dn異常,則從第二優先的dn讀取資料,並且標記該dn異常,後續讀取塊的資料直接跳過該dn。3,datanode開始傳輸資料給客戶端 從磁碟讀取資料輸入流,以p...
Hdfs的讀資料流程
2 那麼node檢查許可權,檢查時候有該檔案,通過機架感知和負載情況,返回比較合適的三個datanode給client,如果檔案有多個塊,乙個塊一組datanode。3 client開啟乙個流,首先請求第乙個塊,首先請求第乙個節點,如果第乙個節點不可訪問,則請求第二個節點。4 datanode返回相...
hdfs 寫資料 讀資料流程
客戶端 client 向namenode nn 請求上傳檔案 nn檢視目錄樹,檢查目錄是否存在 檔案是否存在 nn返回是否可以上傳 可以上傳 client告訴nn,要上傳資料塊1 block1 nn檢視datanode dn 資訊池,選出三颱dn 一般就近隨機一台 本機架一台 另乙個機架一台 cli...