1、 client發起檔案上傳請求,通過rpc與namenode建立通訊,namenode檢查目標檔案是否已存在,父目錄是否存在,返回是否可以上傳;
2、 client請求第乙個block該傳輸到哪些datanode伺服器上;
4、 client請求3臺datanode中的一台a上傳資料(本質上是乙個rpc呼叫,建立pipeline),a收到請求會繼續呼叫b,然後b呼叫c,將整個pipeline建立完成,後逐級返回client;
5、 client開始往a上傳第乙個block(先從磁碟讀取資料放到乙個本地記憶體快取),以packet為單位(預設64k),a收到乙個packet就會傳給b,b傳給c;a每傳乙個packet會放入乙個應答佇列等待應答。
6、 資料被分割成乙個個packet資料報在pipeline上依次傳輸,在pipeline反方向上,逐個傳送ack(命令正確應答),最終由pipeline中第乙個datanode節點a將pipelineack傳送給client;
7、關閉寫入流。
8、 當乙個block傳輸完成之後,client再次請求namenode上傳第二個block到伺服器。
HDFS寫入資料的流程
hdfs寫入資料的流程 1 client發起檔案上傳請求,通過rpc與namenode建立通訊,namenode檢查目標檔案是否已存在,父目錄是否存在,返回是否可以上傳 2 client請求第乙個block該傳輸到哪些datanode伺服器上 4 client請求3臺datanode中的一台a上傳資...
HDFS資料寫入流程
1 client 發起檔案寫入請求,通過 rpc 與 namenode 建立通訊,namenode檢查目標檔案,返回是否可以上傳 2 client 請求第乙個 block 該傳輸到哪些 datanode 伺服器上 3 namenode 根據副本數量和副本放置策略進行節點分配,返回datanode節點...
HDFS寫入與讀取流程
那麼問題來了,如果他們之間的乙個datanode突然壞掉了怎麼辦。1 如果傳輸過程中,有某個datanode出現了故障,那麼當前的pipeline會被關閉,出現故障的datanode會從當前的pipeline中移除,剩餘的block會繼續剩下的datanode中繼續以pipeline的形式傳輸,同時...