Ubuntu HDFS配置升级步骤有哪些
小樊
35
2025-12-16 20:18:42
Ubuntu 环境下 HDFS 配置升级步骤
一 升级前准备
- 明确目标版本与变更范围:核对 Hadoop 版本与 JDK 兼容性,梳理涉及 core-site.xml、hdfs-site.xml 等配置项的差异(如新增/废弃参数、默认值变化)。
- 备份与变更记录:备份 $HADOOP_HOME/etc/hadoop 配置目录、关键目录(如 dfs.namenode.name.dir、dfs.datanode.data.dir)与元数据目录;记录将要修改的参数与回滚方案。
- 检查磁盘与目录:确认新路径的 磁盘空间、权限、挂载选项 正确;如需更换数据目录,提前创建并赋权。
- 规划维护窗口与回滚策略:确定 滚动升级 或 停机升级 方式,准备回滚到旧配置与旧版本的应急包。
- 环境与健康检查:确保 SSH 免密、集群 时间同步(NTP)、防火墙/安全组 策略允许相关端口通信。
- 文档与沟通:通知业务方可能的 服务短暂不可用 与性能波动窗口。
二 配置升级实施
- 同步新版本二进制与依赖:下载并解压 Hadoop 新版本 到目标目录,保持目录结构一致;如调整 JAVA_HOME,同步更新 hadoop-env.sh 与系统环境变量。
- 合并与校对配置:以旧配置为基线,逐项合并新版本推荐值;重点核对以下参数:
- 核心与地址:
- fs.defaultFS(如由 8020 调整为新版本默认或自定义端口)
- dfs.namenode.rpc-address / dfs.namenode.http-address / dfs.namenode.https-address
- 数据与元数据:
- dfs.namenode.name.dir(可为多路径,逗号分隔)
- dfs.datanode.data.dir(可为多盘多路径)
- dfs.replication(副本数,结合节点数调整)
- dfs.blocksize(块大小,如 128MB 为常用值)
- 高可用与故障转移:
- dfs.ha.automatic-failover.enabled、相关 ZKFC 配置
- 安全与网络:
- dfs.permissions.enabled、dfs.encrypt.data.transfer、dfs.client.read.shortcircuit
- 端口与兼容性:如从旧版升级,确认 dfs.namenode.secondary.http-address 等端口在新版本中的状态与替代方案。
- 分发与权限:将配置分发至所有 NameNode、DataNode、JournalNode;确保数据目录与日志目录 所有权与权限 正确。
- 初始化与升级专用操作:
- 非 HA 首次启动或迁移后需执行:hdfs namenode -format(仅在全新环境执行)。
- HA 环境按官方流程执行 JournalNode 与 NameNode 的升级/回滚步骤(滚动升级时逐台操作)。
- 启动与滚动切换:先启动 JournalNode(如使用 HA),再按角色依次启动 NameNode/DataNode/ZKFC;滚动升级时保持多数 JournalNode 与 NameNode 可用,逐台切换并观察。
三 升级后验证与回滚
- 服务与端口检查:
- 访问 NameNode Web UI(如 9870 端口) 查看集群摘要、Live Nodes、安全模式状态。
- 使用 hdfs dfsadmin -report 检查 DataNode 数量、容量、剩余空间 与健康状态。
- 功能与数据校验:
- 执行 hdfs dfs -mkdir /user/test && hdfs dfs -put /user/test && hdfs dfs -ls /user/test 验证读写。
- 运行 TestDFSIO 或业务侧冒烟任务,核对 吞吐、延迟、块报告 正常。
- 监控与日志:关注 NameNode/DataNode 日志 与 GC 日志,确认无 SafeMode 无法退出、EditLog 异常、数据盘脱机 等问题。
- 回滚触发条件与步骤:若发现 元数据不一致、数据不可达、关键业务失败,立即回滚:
- 恢复旧版 Hadoop 二进制 与 配置文件;
- 如为 HA,切回 Standby/Active 旧实例;
- 必要时执行 NameNode 回滚/恢复 流程,再重启集群。
四 常见升级场景与要点
- 更换数据目录或新增磁盘:在 hdfs-site.xml 中调整 dfs.namenode.name.dir / dfs.datanode.data.dir 为新路径,确保目录存在且权限正确,然后重启 NameNode/DataNode 生效。
- 调整副本数与块大小:升级后结合 节点数、磁盘容量、作业特性 调整 dfs.replication(如 3) 与 dfs.blocksize(如 128MB),避免频繁小文件与过度复制带来的压力。
- 启用高可用与自动故障转移:在 hdfs-site.xml 中开启 dfs.ha.automatic-failover.enabled 并配置 ZKFC,按官方步骤完成 JournalNode 与 NameNode 的初始化与切换演练。
- 安全与网络增强:在不可信网络中启用 dfs.encrypt.data.transfer,按需开启 dfs.client.read.shortcircuit 并配置 Unix Domain Socket 路径,提升性能与安全。