client發起檔案上傳請求,通過rpc與namenode建立通訊,namenode檢查目標檔案是否已經存在,父目錄是否存在,返回是否可以上傳。
client請求第乙個block該傳輸到哪些datanode伺服器上
namenode根據配置檔案中指定的備份數量以及機架感知原理進行檔案分配,返回可用的datanode的位址,如:a,b,c hadoop 在設計時考慮到資料的安全與高效,資料檔案預設在hdfs上存放三份,儲存策略為本地乙份,同機架內其他一節點上乙份,不同機架節點上乙份。
client請求3臺datanode中的一台a上傳資料(本質上是乙個rpc呼叫,建立pipeline),a收到請求會繼續呼叫b,然後b呼叫c,將整個pipeline建立完成,後逐級返回client。
client開始往a上傳第乙個block(先從磁碟讀取資料放到乙個本地記憶體快取),以packet為單位(預設64k)a收到乙個packet就會傳給b,b傳給c,a每傳乙個packet會放入乙個應答佇列等待應答。
資料被分割成乙個個packet資料報在pipeline上依次傳輸,在pipeline反方向上,逐個傳送ack(命令正確應答),最終由pipeline中第乙個datanode節點a將pipelineack傳送給client。
當乙個block傳輸完成之後,client再次請求namenode上傳第二個block到服務1
HDFS檔案寫入過程
目標 掌握hdfs寫入資料的詳細過程 詳細步驟解析 list itemclient發起檔案上傳請求,通過rpc與namenode建立通訊,namenode檢查目標檔案是否已存在,父目錄是否存在,返回是否可以上傳 client請求第乙個block該傳輸到哪些datanode伺服器上 client請求3...
hdfs的寫入過程和讀取過程
1 客戶端 client 發出請求 將請求發給namenode 要將大小為300m的a.txt檔案上傳到 根目錄下 a.txt 2 namenode對收到的請求做出檢測 檢測1 所上傳的路徑下是否存在該檔案,即根目錄下是否有a.txt 檢測2 檢測客戶端是否有上傳許可權 3 檢測通過,反饋給客戶端 ...
HDFS檔案的寫入和讀取過程
hdfs檔案寫入 client 發起檔案上傳請求,通過 rpc 與 namenode 建立通訊namenode 檢查目標檔案是否已存在,父目錄是否存在,返回是否可以上傳client請求上傳第乙個 block namenode 根據配置檔案中指定的備份數量及機架感知原理進行檔案分配,返回可用的 dat...