在 CentOS 上配置 HDFS 副本数(replication),通常有三种层级:集群默认副本数、目录/文件级副本数、客户端配置。下面按常见场景说明。
hdfs-site.xml在 NameNode 节点上编辑:
vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
添加或修改:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
说明:
- 默认是
3- 修改后对新写入的文件生效
stop-dfs.sh
start-dfs.sh
或(如果使用 systemd):
systemctl restart hadoop-hdfs-namenode
systemctl restart hadoop-hdfs-datanode
hdfs dfs -stat %r /path/to/file
hdfs dfs -setrep -R 2 /user/hadoop
参数说明:
-R:递归(目录)2:目标副本数注意:
如果 DataNode 数量少于副本数,HDFS 不会立即达到该副本数
在 hdfs-site.xml 或提交作业时指定:
hdfs dfs -D dfs.replication=1 -put file.txt /tmp/
hdfs dfs -ls /path
hdfs fsck /path -files -blocks -replicaDetails
systemctl stop firewalld
setenforce 0
如果你能提供:
我可以给你更精确的配置示例。