在 CentOS 上修改 HDFS 参数,本质就是修改 HDFS 的配置文件并重启/刷新相关服务。下面按常见场景给你说明。
通常在 Hadoop 安装目录下:
$HADOOP_HOME/etc/hadoop/
常见文件:
hdfs-site.xml:HDFS 核心参数(副本数、块大小等)core-site.xml:全局配置(NameNode 地址等)hadoop-env.sh:环境变量(内存、JVM 参数)示例路径(常见):
/usr/local/hadoop/etc/hadoop/
/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop/ # CDH
vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
例如修改副本数:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
修改块大小:
<property>
<name>dfs.blocksize</name>
<value>134217728</value> <!-- 128MB -->
</property>
如果是多节点集群,每台机器都要改,或统一分发:
scp hdfs-site.xml node2:$HADOOP_HOME/etc/hadoop/
scp hdfs-site.xml node3:$HADOOP_HOME/etc/hadoop/
stop-dfs.sh
start-dfs.sh
或单独重启:
hadoop-daemon.sh stop namenode
hadoop-daemon.sh start namenode
hadoop-daemon.sh stop datanode
hadoop-daemon.sh start datanode
systemctl restart hadoop-namenode
systemctl restart hadoop-datanode
hdfs dfsadmin -refreshNodes
用于:
hdfs dfsadmin -setBalancerBandwidth 104857600
vi hadoop-env.sh
export HADOOP_NAMENODE_OPTS="-Xmx4g"
重启 NameNode 生效。
core-site.xml:
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
⚠️ 修改端口必须重启集群。
hdfs getconf -confKey dfs.replication
hdfs dfs -put file /
hdfs fsck /file -files -blocks
如果你能告诉我:
我可以给你更精确的命令。