HDFS版本升级在CentOS要注意什么
小樊
37
2025-12-25 16:17:37
升级前的准备与兼容性
- 明确升级路径:区分是滚动升级(尽量不停机)还是停机升级(简单但影响业务),并准备相应的回滚方案与演练计划。升级前完成全量备份(元数据、配置、重要业务数据)与变更评审。
- 版本与依赖:核对目标 Hadoop/HDFS 与 JDK 的兼容矩阵(如 Hadoop 3.x 通常搭配 JDK 8),确认与 YARN、HBase、Hive、ZooKeeper 等组件的版本兼容性与 API 变更。
- 配置基线:梳理并备份 core-site.xml、hdfs-site.xml 等关键配置;检查新版本对参数、默认值与废弃项的影响,必要时先在测试环境验证。
- 资源与窗口:选择业务低峰时段操作,预留回滚时间窗;确保 NameNode/JournalNode/DataNode 节点磁盘、内存、网络余量充足。
- 操作系统与基础环境:保持 CentOS 与系统库、JDK、SSH、时间同步(如 NTP/chrony)处于健康状态;避免使用 root 直接运行业务进程,统一使用专用 hadoop 用户与 sudo 授权。
升级方式与关键操作
- 滚动升级(HA 集群优先):
- 准备:hdfs dfsadmin -rollingUpgrade prepare;查询状态:hdfs dfsadmin -rollingUpgrade query,待出现 “Proceed with rolling upgrade”。
- 升级 NameNode:按顺序升级 Standby NN → 切换 Active/Standby → 升级原 Active NN → 再次切换,确保始终有 Active 提供服务。
- 升级 DataNode:按机架/批次逐台或分批停机、升级、启动并确认注册与健康。
- 完成:所有节点升级并验证后执行 hdfs dfsadmin -rollingUpgrade finalize。
- 停机升级(非 HA 或无法滚动):
- 依次停止 SecondaryNameNode(SNN)、NameNode,完成升级后按相反顺序启动;随后启动 SNN 与 DataNode。
- 非联邦与联邦:非联邦按上述流程执行;联邦集群需对每个 命名空间 分别执行准备、升级 NN 与 DN、最后完成。
- 重要提醒:升级过程中严禁执行 hdfs namenode -format(会清空元数据);仅在全新集群初始化时使用。
回滚与验证
- 回滚触发条件:升级失败、关键业务验证不通过、数据/服务一致性异常等。
- 回滚路径:
- 滚动升级回滚:在 finalize 之前可随时执行 hdfs dfsadmin -rollingUpgrade rollback,按相反顺序回退 NameNode/DataNode 版本并恢复业务。
- 停机升级回滚:停止集群,恢复 NameNode 元数据与配置 到升级前备份,使用旧版本二进制重启 NameNode/DataNode。
- 升级后验证:
- 基础健康:hdfs dfsadmin -report、NameNode/DataNode Web UI、进程存活与端口连通性。
- 数据一致:抽样校验关键目录与文件;核对 块报告、副本数、缺失块 指标。
- 业务回归:跑通典型作业/查询,观察 延迟、吞吐、错误率;持续监控与日志巡检至少 1–2 个业务周期。
CentOS与网络层面的注意事项
- 用户与权限:使用专用 hadoop 用户运行服务,按需配置 sudo,避免以 root 直接操作 HDFS 进程与目录。
- 主机与网络:规范 主机名/IP 映射(/etc/hosts 或 DNS),保证节点间 SSH 免密 与时钟 同步(NTP/chrony);跨机房/跨网段注意 带宽与延迟 对升级批次与块复制的影响。
- 防火墙与安全组:放行 HDFS 相关端口(如 NameNode RPC 8020/9000、HTTP 50070/9870,DataNode 50010/1004/1006 等,具体以实际配置为准),或在内网环境临时关闭防火墙以便排障。
- 系统资源:升级窗口内避免系统级变更(内核、库、JDK 大版本);确保 JournalNode 与 NameNode 元数据目录 所在磁盘空间充足。
常见风险与规避
- 配置不兼容与默认值变化:升级后 参数废弃/行为变更 可能导致写入失败或性能退化;应在测试环境逐项验证并按需调整。
- 升级顺序错误:未遵循 NN 高可用切换 或 DN 分批 原则,可能导致 服务中断 或 数据不可用;严格按流程执行并保留切换记录。
- 元数据损坏/丢失:未备份或误执行 -format 会造成灾难性后果;务必做好 多副本备份 并禁止格式化。
- 回滚窗口错过:滚动升级一旦 finalize 将无法回滚;需在完成全面验证后再执行,并保留回滚预案与时间点。
- 监控与告警缺失:升级后短期 块丢失/复制风暴 常见;应提前准备 容量与复制 告警阈值并加强巡检。