檔案a大小100m,client將a寫入到hdfs上
hdfs按照預設配置,
hdfs分布在三個機架上rack1,rack2,rack3
a. client將a按照64m分塊。分成兩塊:block1、block2
b. client向namenode傳送寫資料請求,如圖藍色虛線①
c.namenode節點記錄block資訊。並返回可用datanode,如粉色虛線②
block1: host2,host1,host3
block2: host7,host8,host4
原理:namenode具有rackaware機架感知功能,這個可以配置
若client為datanode節點,那儲存block時,規則為:副本1,同client的節點上;副本2,不同機架節點上;副本3,同第二個副本機架的另外乙個節點上;其他副本隨機挑選
若client不為datanode節點,那儲存block時,規則為:副本1,隨機選擇乙個節點;副本2,不同副本1機架上;副本3,同第副本2相同機架的另外乙個節點上;其他副本隨機挑選
d. client向datanode傳送block1,傳送過程是以流式寫入
流式寫入過程:
1>將64m的block1按64k的package劃分;
2>然後將第乙個package傳送給host2;
3>host2接收完後,將第乙個package傳送給host1,同時client向host2傳送第二個package;
4>host1接收完第乙個package後,傳送給host3,同時接收host2發來的第二個package。
5>以此類推,如圖紅線實線所示,直到將block1傳送完畢。
6>host2,host1,host3向namenode,host2向client傳送通知,說「訊息傳送完了」。如圖粉紅顏色實線所示。
7>client收到host2發來的訊息後,向namenode傳送訊息,說我寫完了。這樣就真完成了。如圖黃色粗實線
8>傳送完block1後,再向host7,host8,host4傳送block2,如圖藍色實線所示。
9>傳送完block2後,host7,host8,host4向namenode,host7向client傳送通知,如圖淺綠色實線所示。
10>client向namenode傳送訊息,說我寫完了,如圖黃色粗實線。。。這樣就完畢了。
分析,通過寫過程,我們可以了解到:①寫1t檔案,我們需要3t的儲存,3t的網路流量頻寬。
②在執行讀或寫的過程中,namenode和datanode通過heartbeat進行儲存通訊,確定datanode活著。如果發現datanode死掉了,就將死掉的datanode上的資料,放到其他節點去。讀取時,要讀其他節點去。
③掛掉乙個節點,沒關係,還有其他節點可以備份;甚至,掛掉某乙個機架,也沒關係;其他機架上,也有備份。
讀操作就簡單一些了,如圖所示,client要從datanode上,讀取filea。而filea由block1和block2組成。
那麼,讀操作流程為:
a. client向namenode傳送讀請求。
b. namenode檢視metadata資訊,返回filea的block的位置。
block1:host2,host1,host3
block2:host7,host8,host4
c. block的位置是有先後順序的,先讀block1,再讀block2。而且block1去host2上讀取;然後block2,去host7上讀取;
上面例子中,client位於機架外,那麼如果client位於機架內某個datanode上,例如,client是host6。那麼讀取的時候,遵循的規律是:
優選讀取本機架上的資料。
hdfs讀寫流程 HDFS 讀寫流程(詳解)
hdfs hadoop distributed file system 是gfs的開源實現。1 優點 因為有多個副本,可以保證資料可靠,容錯性高 計算向資料移動,適用於批處理 適合大資料處理,gb tb pb級資料,百萬以上的檔案,十萬以上的節點 可以構建在廉價機器上,通過多副本提高可靠性 2 缺點...
hdfs讀寫流程 HDFS 檔案讀寫流程
開啟分布式檔案 呼叫分布式檔案 distributedfilesystem.open 方法 定址請求 從 namenode 處得到 datanode 的位址,distributedfilesystem使用 rpc 方式呼叫了namenode,namenode 返回存有該副本的datanode 位址,...
hdfs讀寫流程
1.client發起檔案上傳請求 通過rpc和namenode建立連線,namenode檢查目標檔案是否存在,檢查父目錄是否存在,檢查使用者是否有許可權,返回是否可以上傳 2.client請求第乙個block該傳輸到那些datanode伺服器上 3.namenode根據配置檔案中指定的備份數量及機架...