HDFS副本存放策略

第一個block副本放在和client所在的node裏(如果是集羣外提交,則隨機挑選一臺磁盤不太慢、CPU不太忙的節點上)。
第二個副本放置在與第一個節點不同的機架中的node中(隨機選擇)。
第三個副本和第二個在同一個機架,隨機放在不同的node中。
如果還有更多的副本就隨機放在集羣的node裏。

這裏寫圖片描述
流水線複製
當客戶端向 HDFS 文件寫入數據的時候,一開始是寫到本地臨時文件中。
假設該文件的副本系數設置爲 3 ,當本地臨時文件累積到一個數據塊的大小時,客戶端會從 Namenode 獲取一個 Datanode 列表用於存放副本。然後客戶端開始向第一個Datanode傳輸數據,第一個 Datanode 一小部分一小部分 (4 KB) 地接收數據,將每一部分寫入本地倉庫,並同時傳輸該部分到列表中第二個 Datanode 節點。第二個 Datanode 也是這樣,一小部分一小部分地接收數據,寫入本地倉庫,並同時傳給第三個 Datanode 。最後,第三個 Datanode 接收數據並存儲在本地。因此,Datanode 能流水線式地從前一個節點接收數據,並同時轉發給下一個節點,數據以流水線的方式從前一個Datanode複製到下一個Datanode。

注: 修改副本數 修改hdfs-site.xml中dfs.replication配置項

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章