1. 程式人生 > >三十七、機架感知(副本節點選擇)及HDFS讀資料流程

三十七、機架感知(副本節點選擇)及HDFS讀資料流程

                                       機架感知(副本節點選擇)及HDFS讀資料流程

1、低版本Hadoop副本節點選擇

第一個副本在client所處的節點上。如果客戶端在叢集外,隨機選一個。 第二個副本和第一個副本位於不相同機架的隨機節點上。 第三個副本和第二個副本位於相同機架,節點隨機。

在這裡插入圖片描述

2、Hadoop2.7.2以後副本節點選擇

第一個副本在client所處的節點上。如果客戶端在叢集外,隨機選一個。 第二個副本和第一個副本位於相同機架,隨機節點。 第三個副本位於不同機架,隨機節點。 在這裡插入圖片描述

       HDFS滿足客戶端訪問副本資料的最近原則。既客戶端距離那個副本最近,HDFS就讓哪個節點把資料給客戶端。

3、HDFS讀取資料流程

在這裡插入圖片描述

1)客戶端向namenode請求下載檔案,namenode通過查詢元資料,找到檔案塊所在的datanode地址。 2)挑選一臺datanode(就近原則,然後隨機)伺服器,請求讀取資料。 3)datanode開始傳輸資料給客戶端(從磁盤裡面讀取資料放入流,以packet為單位來做校驗)。 4)客戶端以packet為單位接收,先在本地快取,然後寫入目標檔案。