在 CentOS 上配置 HDFS 副本数(replication),一般是从 HDFS 配置层面 和 目录/文件层面 两个角度来做。下面按常见场景说明。
hdfs-site.xml编辑 HDFS 配置文件(通常在):
/etc/hadoop/conf/hdfs-site.xml
# 或
$HADOOP_HOME/etc/hadoop/hdfs-site.xml
添加或修改:
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
说明:
- 默认值一般是
3- 副本数 不能超过 DataNode 数量
- 修改后需要 重启 HDFS
stop-dfs.sh
start-dfs.sh
或(Hadoop 3+):
$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/sbin/start-dfs.sh
hdfs dfs -ls /path
hdfs dfs -setrep -R 2 /user/hadoop
hdfs dfs -setrep 2 /user/hadoop/test.txt
注意:
setrep不会立即改变已有副本,HDFS 会在后台逐步调整- 如果 DataNode 不足,副本数达不到设定值
hdfs dfs -stat %r /user/hadoop/test.txt
或:
hdfs fsck /user/hadoop -files -blocks -replicaDetails
DataNode 数量
hdfs dfsadmin -report
副本数 ≤ DataNode 数
防火墙 / SELinux
systemctl stop firewalld
setenforce 0
磁盘空间 副本越多,占用空间越大
dfs.replication=1
dfs.replication=3
如果你愿意,可以告诉我:
我可以给你一份可直接用的配置示例。