zl程序教程

您现在的位置是:首页 >  其他

当前栏目

HDFS 上文件块的副本数设置

文件HDFS 设置 副本
2023-09-27 14:23:43 时间

一、使用 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