HDFS上文件塊的副本數設置
阿新 • • 發佈:2019-04-12
分割 rep 目錄 .html 配置 fsd lan ren 增加
一、使用 setrep 命令來設置
# 設置 /javafx-src.zip 的文件塊只存三份 hadoop fs -setrep 3 /javafx-src.zip
二、文件塊在磁盤上的路徑
# 設置的 hdfs 目錄為
/opt/hadoop-tmp/ # hdfs 文件塊的路徑為 /opt/hadoop-tmp/dfs/data/current/BP-362764591-192.168.8.136-1554970906073/current/finalized/subdir0/subdir0
三、文件的分割
文件大小 < 塊設定值,文件不會被切割,直接存放到 hdfs 上,占用磁盤的空間就是文件大小文件大小 > 塊設定值,文件被切割為塊大小的 N 份文件,最後一份不夠塊大小也上面一樣,只占用本身大小的磁盤空間
下圖可以看到該文件副本為 3 份,分別存放在 h140、h138 和 h136 三臺機器上
四、改變副本數後的文件的變化
# 減少,會隨機刪除一個機器上的文件塊,這裏是刪除了 h136 上的 hadoop fs -setrep 2 /javafx-src.zip
# 增加,由於只配置了三臺機器無法截圖 # 分兩種情況: # 機器數量 >= 副本數,會把所有文件塊復制到新節點 # 機器數量 < 副本數,會等有新節點增加再執行復制操作,一直到達副本數為止 # 文件塊的副本數儲存在 NameNode 上 hadoop fs -setrep 5 /javafx-src.zip
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
HDFS上文件塊的副本數設置