1. 程式人生 > >HDFS讀取檔案詳解

HDFS讀取檔案詳解

HDFS讀取檔案

  1. 客戶端向namenode發出請求下載檔案(呢個路徑下的呢個檔案);
  2. namenode經過查詢源資料資訊,哦,發現有請求需要的資訊,然後將目標檔案的元資料返回給client,元資料包扣檔案儲存在呢些DataNode下的,呢些block,都會發給client;
  3. client根據元資料開始請求讀取資料,預設是先讀取路由距離最近的節點內容,建立請求連線,我要讀取呢個DataNode下的呢個block。與此同時在當前DataNode與client之間建立socket連線;
  4. DataNode收到請求後,首先將自己本地記憶體相關的資料進行讀出來,放到快取中,其次是將快取中的資料放到socket管道中,也就是socket進行讀取DataNode資料(socketoutputstream);
  5. client通過socket進行資料讀取(socketinputstream);
  6. client將讀取到的資料寫入硬碟中(fileoutputstream),開始其他DataNode下的block讀取;
  7. 每一個讀取好之後追加到前一個後面,最終整體呈現出來的是一個完整的資訊。