client向namenode請求上傳a.txt
namenode檢測client的上傳許可權
namenode回答client是否可以上傳
client將檔案按照block_size大小將檔案分為幾份,並向namenode請求上傳乙個block
namenode根據datanode上的block資訊和機架感知選擇三個主機放置三個副本(hadoop預設三個),並生成可以上傳的datanode的列表。
將生成的可以上傳的datanode的列表,這時client就可以直接通過pipeline與datanode通訊或者傳遞資訊。
client與乙個datanode建立pipeline,datanode之間也會建立pipeline
client將block以packet(64k)為單位傳遞給datanode
三個datanode分別將packet資訊快取,此即將block分別複製三個副本。
快取之後datanode會向client傳送應答,這樣一直進行檔案的上傳完成副本的快取與檔案的上傳。
namenode對client進行許可權檢查,同時對block的檔案存在dn進行檢查並選出每乙個block對應的主機列表
向client返回每乙個block對應的主機列表。
client按照返回的主機列表和每乙個block所在的主機建立pipeline進行資料讀取,且每乙個block都需要建立乙個pipeline,並行讀取
開始讀取資料,按照packet(64k)的單位進行讀取
block全部讀取到client中,client將block進行合併成為乙個完整的檔案。
HDFS檔案的寫入和讀取過程
hdfs檔案寫入 client 發起檔案上傳請求,通過 rpc 與 namenode 建立通訊namenode 檢查目標檔案是否已存在,父目錄是否存在,返回是否可以上傳client請求上傳第乙個 block namenode 根據配置檔案中指定的備份數量及機架感知原理進行檔案分配,返回可用的 dat...
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 檢測通過,反饋給客戶端 ...