客戶端通過 distributed filesystem 模組向 namenode 請求上傳檔案, namenode 檢查目標檔案是否已存在,父目錄是否存在;
namenode 返回是否可以上傳;
客戶端請求namenode,獲取第乙個 block 上傳到哪幾個 datanode 伺服器上;
namenode 返回3個 datanode 節點, 分別為 dn1, dn2, dn3;
客戶端通過 fsdataoutputstream 模組請求 dn1 上傳資料, dn1 收到請求會繼續呼叫 dn2, 然後 dn2 呼叫 dn3,將這個通訊管道建立完成;
dn1, dn2, dn3 逐級應答客戶端;
客戶端開始往 dn1 上傳第乙個 block (先從磁碟讀取資料放到乙個本地記憶體快取), 以 packet 為單位, dn1 收到乙個 packet 就會傳給 dn2, dn2 傳給 dn3;dn1 每傳乙個 packet 會放入乙個應答佇列等待應答;
當乙個 block 傳輸完成之後,客戶端再次請求 namenode 上傳第二個 block 的伺服器。(重複執行 3-7 步)。
1.1 網路拓撲--節點距離計算
1.2 機架感知(副本儲存節點擊擇)
HDFS讀寫資料流程
步驟 1 客戶端通過 distributed filesystem 模組向namenode請求上傳檔案,namenode檢查目標檔案是否已存在,父目錄是否存在。2 namenode返回是否可以上傳。3 客戶端請求第乙個 block 上傳到哪幾個 datanode 伺服器上。4 namenode返回3...
HDFS讀寫資料流程
hdfs寫資料流程 client向namenode申請寫資料 namenode檢查許可權 是否存在該檔案等,返回是否可以上傳 如果namenode返回可以上傳,client申請上傳第乙個block,請求返回datanode namenode返回三個datanode位址 client請求向dn1,dn...
HDFS 讀寫資料流程
1.網路節點距離 機架感知 下圖中 client 到 dn1 的距離為 4 client 到 nn 的距離為 3 dn1 到 dn2 的距離為 2 2.block 的副本放置策略 namenode 通過 hadoop rack awareness 確定每個 datanode 所屬的機架 id 簡單但...