Ubuntu HDFS配置更新后如何重启
小樊
37
2025-11-23 04:47:47
Ubuntu 下 HDFS 配置更新后的重启指南
一、前置检查与准备
- 确认修改的配置文件已同步到所有节点:通常为 $HADOOP_HOME/etc/hadoop/core-site.xml 与 $HADOOP_HOME/etc/hadoop/hdfs-site.xml。如修改了 dfs.namenode.name.dir、dfs.datanode.data.dir 等目录,请确保新目录已存在且 HDFS 运行用户具备读写权限。
- 同步配置后,建议先在单个节点验证,再滚动重启,降低风险。
- 准备好回滚方案(保留旧配置与数据目录的备份),并安排维护窗口。
二、标准重启流程
- 单节点或伪分布式(推荐顺序)
- 进入 Hadoop 目录:cd $HADOOP_HOME
- 可选进入安全模式(避免重启期间产生大量 editlog):hdfs dfsadmin -safemode enter
- 停止 HDFS:./sbin/stop-dfs.sh
- 启动 HDFS:./sbin/start-dfs.sh
- 退出安全模式:hdfs dfsadmin -safemode leave
- 验证:hdfs dfsadmin -report 与 jps 查看 NameNode/DataNode 状态
- 多节点滚动重启(减少对业务影响)
- 逐台重启 DataNode:在每个 DataNode 执行
./sbin/hadoop-daemon.sh stop datanode
./sbin/hadoop-daemon.sh start datanode
完成后用 hdfs dfsadmin -report 确认 Live datanodes 数量与容量恢复正常。
- 重启 NameNode(变更涉及 NameNode 关键参数时)
在 NameNode 执行:
./sbin/hadoop-daemon.sh stop namenode
./sbin/hadoop-daemon.sh start namenode
启动后观察日志与 hdfs dfsadmin -report,必要时再离开安全模式。
三、涉及元数据目录或存储路径变更
- 若修改了 dfs.namenode.name.dir(NameNode 元数据目录)或 dfs.datanode.data.dir(DataNode 数据目录),请按以下要点操作:
- 确保新目录已创建并对 HDFS 用户可写。
- 首次切换到新目录通常需要对 NameNode 执行格式化:hdfs namenode -format(仅在全新目录或明确需要重建元数据时使用,操作前务必确认备份与影响)。
- 若是新增目录而非替换,保持原有目录可用,待新目录数据同步稳定后再逐步切换与清理旧数据。
- 重启后通过 hdfs dfsadmin -report 与日志检查各目录是否正常加载。
四、HA 与常见问题处理
- 高可用集群(HA)
- 使用 ZKFC 管理的 NameNode 不建议直接 kill/start,推荐通过 hdfs haadmin 进行状态切换与重启:
- 查看状态:hdfs haadmin -getServiceState nn1
- 切换主备:hdfs haadmin -failover --forcefence --forceactive nn1 nn2
- 单独重启某台 NameNode 后,确认 ZKFC 正常、状态恢复再切换流量。
- 安全模式无法自动退出
- 检查条件:副本满足率阈值 dfs.namenode.safemode.threshold-pct(默认 0.999f)、存活 DataNode 数量 dfs.namenode.safemode.min.datanodes、稳定时长 dfs.namenode.safemode.extension(默认 30000 ms)。
- 排障后手动退出:hdfs dfsadmin -safemode leave。
- 快速健康检查
- 集群概览:hdfs dfsadmin -report
- 文件系统健康:hdfs fsck / -files -blocks -locations
- 进程存活:jps | grep -E “NameNode|DataNode|JournalNode|DFSZKFailoverController”