HDFS上文件块的副本数设置

Posted jhxxb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS上文件块的副本数设置相关的知识,希望对你有一定的参考价值。

一、使用 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上文件块的副本数设置的主要内容,如果未能解决你的问题,请参考以下文章

HDFS内副本和块的状态分析

HDFS存储与架构

HDFS特点:

HDFS

block块的学习

Hadoop--HDFS特点