Ubuntu HDFS配置如何更新
小樊
44
2025-12-20 19:26:32
Ubuntu 上更新 HDFS 配置的规范流程
一、定位配置文件与准备
- 配置文件目录通常为:$HADOOP_HOME/etc/hadoop/,关键文件包括:core-site.xml、hdfs-site.xml、hadoop-env.sh。修改前建议备份:
cp $HADOOP_HOME/etc/hadoop/.xml $HADOOP_HOME/etc/hadoop/.xml.bak_$(date +%F)
- 使环境变量生效(如使用自定义安装路径):
echo ‘export HADOOP_HOME=/usr/local/hadoop’ >> ~/.bashrc
echo ‘export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin’ >> ~/.bashrc
source ~/.bashrc
- 如修改了 JAVA_HOME 或相关环境,请同步更新 $HADOOP_HOME/etc/hadoop/hadoop-env.sh。
二、常见更新场景与示例
- 调整默认文件系统地址(core-site.xml):
fs.defaultFS
hdfs://namenode-host:8020
- 调整副本数与块大小(hdfs-site.xml):
dfs.replication
3
dfs.blocksize
134217728
- 迁移本地存储目录(hdfs-site.xml,需先创建目录并赋权):
dfs.namenode.name.dir
file:///data/hadoop/namenode
dfs.datanode.data.dir
file:///data/hadoop/datanode
- 说明:副本数提高可靠性但增加存储占用;块大小影响 NameNode 元数据与作业并发;目录变更需确保本地路径存在且权限正确。
三、滚动更新与重启策略
- 单节点(伪分布式)或无 HA 集群:
- 依次停止:$HADOOP_HOME/sbin/stop-dfs.sh
- 如有目录变更,先创建并赋权(示例):
sudo mkdir -p /data/hadoop/{namenode,datanode}
sudo chown -R $(whoami):$(whoami) /data/hadoop
- 启动:$HADOOP_HOME/sbin/start-dfs.sh
- 多节点/生产集群(建议滚动更新):
- 逐台重启 DataNode(避免同时下线过多节点):
$HADOOP_HOME/sbin/hadoop-daemon.sh stop datanode
$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode
- 最后重启 NameNode(或按你的 HA 方案重启 Active/Standby):
$HADOOP_HOME/sbin/hadoop-daemon.sh stop namenode
$HADOOP_HOME/sbin/hadoop-daemon.sh start namenode
- 提示:仅修改 dfs.replication 等不涉本地路径的参数时,通常无需重启守护进程,但为稳妥建议按上述顺序滚动操作并观察。
四、变更校验与回滚
- 校验生效:
- 进程检查:jps(应看到 NameNode/DataNode 等)
- 集群报告:hdfs dfsadmin -report
- Web 界面:NameNode 默认 9870 端口(旧版本可能为 50070)
- 连通与读写:hdfs dfs -mkdir /test && hdfs dfs -put /etc/hosts /test && hdfs dfs -ls /test
- 回滚:将配置文件恢复为备份并重启相应进程;如仅调整目录导致异常,优先检查新目录权限与磁盘空间。
五、注意事项
- 修改 dfs.namenode.name.dir/dfs.datanode.data.dir 后,需确保新目录存在、权限正确,且为 NameNode 与 DataNode 的运行用户可写。
- 调整 dfs.replication 会影响存储占用与读取性能,变更前评估业务容忍度与容量。
- 调整 dfs.blocksize 主要影响新写入文件,已存在文件块大小不变。
- 目录变更或首次初始化时,可能需要清理旧数据目录以避免启动异常;生产环境务必先备份并选择维护窗口。