1)客戶端向namenode請求上傳檔案,namenode檢查目標檔案是否已存在,父目錄是否存在。
2)namenode返回是否可以上傳。
3)客戶端請求第乙個 block上傳到哪幾個datanode伺服器上。
4)namenode返回3個datanode節點,分別為dn1、dn2、dn3。
5)客戶端請求dn1上傳資料,dn1收到請求會繼續呼叫dn2,然後dn2呼叫dn3,將這個通訊管道建立完成
6)dn1、dn2、dn3逐級應答客戶端
7)客戶端開始往dn1上傳第乙個block(先從磁碟讀取資料放到乙個本地記憶體快取),以packet為單位,dn1收到乙個packet就會傳給dn2,dn2傳給dn3;dn1每傳乙個packet會放入乙個應答佇列等待應答
8)當乙個block傳輸完成之後,客戶端再次請求namenode上傳第二個block的伺服器。(重複執行3-7步)
HDFS寫資料流程
客戶端要向hdfs寫資料,首先要跟namenode通訊以確認可以寫檔案並獲得接收檔案block的datanode,然後,客戶端按順序將檔案逐個block傳遞給相應datanode,並由接收到block的datanode負責向其他datanode複製block的副本 客戶端執行寫入操作 當客戶端結束寫...
Hdfs寫資料流程
我的hadoop集群是三颱伺服器,分別為hadoop101,hadoop102,hadoop103。其中,namenode部署在hadoop101上面,三颱伺服器分別部署乙個datanode,secondarynamenode在hadoop103上。一,客戶端建立乙個檔案系統物件向namenode申...
hdfs寫資料流程
1,客戶端向nn請求上傳檔案,nn檢查該檔案和父目錄是否存在。2,nn返回響應給客戶端,是否可以上傳檔案。3,客戶端向nn請求上傳第乙個塊的dn的資訊。4,nn根據副本原則,返回給客戶端塊上傳的dn節點資訊。5,客戶端和dn1建立連線,請求上傳資料,dn1接著和dn2建立連線,dn2和dn3建立連線...