上一篇
hadoop服务器重启
- 行业动态
- 2025-05-15
- 4
依序执行stop-dfs.sh、stop-yarn.sh停止服务,确认进程终止后重启,检查HDFS/YARN状态及日志,确保
Hadoop服务器重启操作指南与注意事项
Hadoop作为分布式计算框架的核心组件,其稳定性直接影响集群的可用性和数据安全性,服务器重启操作看似简单,但若未按规范执行,可能导致数据丢失、服务中断甚至集群损坏,本文将从重启前准备、操作流程、验证方法及风险规避等方面展开详细说明。
重启原因分类与应对策略
重启类型 | 典型场景 | 风险等级 | 建议操作模式 |
---|---|---|---|
计划内重启 | 系统更新、硬件维护、配置变更 | 中低风险 | 正常流程重启 |
紧急故障重启 | 进程崩溃、内存溢出、网络异常 | 高风险 | 强制终止+快速恢复 |
内核版本升级 | 修复内核破绽或支持新特性 | 高风险 | 滚动重启 |
注意:生产环境中应避免在业务高峰时段执行重启,建议选择凌晨低负载期操作。
重启前必备检查项
数据完整性验证
- 执行
hdfs fsck /
检查HDFS健康状态 - 确认Replication因子达标(使用
hdfs dfsadmin -report
查看) - 检查YARN资源使用情况(
yarn node -list
)
- 执行
服务状态确认
jps # 验证Java进程 # 预期输出包含: # NameNode/SecondaryNameNode # DataNode # ResourceManager # NodeManager # HistoryServer
日志备份
关键日志路径:
| 组件 | 日志路径 |
|——————–|———————————-|
| NameNode | /var/log/hadoop/hdfs/namenode.log |
| DataNode | /var/log/hadoop/hdfs/datanode.log |
| ResourceManager | /var/log/hadoop/yarn/resourcemanager.log |
| NodeManager | /var/log/hadoop/yarn/nodemanager.log |客户端通知
- 提前发布维护公告
- 暂停新作业提交(设置YARN队列为只读模式)
分角色重启操作流程
NameNode/SecondaryNameNode
# 停止服务 stop-dfs.sh # 重启NameNode(需优先启动) start-dfs.sh # 验证状态 hdfs dfsadmin -safemode get # 确认安全模式状态
DataNode
# 逐个节点执行 $HADOOP_HOME/sbin/hadoop-daemon.sh stop datanode $HADOOP_HOME/sbin/hadoop-daemon.sh start datanode
ResourceManager/NodeManager
# 停止YARN服务 stop-yarn.sh # 启动顺序:先RM后NM start-yarn.sh
JournalNode(HA环境)
# 通过QJM启动脚本管理 $HADOOP_HOME/sbin/mr-jobhistory-daemon.sh stop historyserver $HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver
高可用集群特殊处理
组件 | 操作要点 |
---|---|
HDFS HA | 优先重启Active NameNode 同步EditLog到Standby节点 验证JournalNode状态 |
YARN HA | 启用ResourceManager自动Failover(配置yarn-site.xml的ha.automatic-failover) |
ZooKeeper集成 | 保持ZooKeeper集群持续运行,避免同时重启所有节点 |
重启后验证清单
HDFS健康检查
hdfs dfsadmin -report # 关键指标: # 无Under-replicated blocks # Safemode状态为OFF # 所有DataNode处于active状态
YARN状态确认
yarn node -list # 所有节点应显示active yarn application -list # 无卡住的应用
日志审计
- 重点检查:
.log
文件中是否出现java.io.IOException
或OutOfMemoryError
- 使用
grep -i error .log
快速定位异常
- 重点检查:
客户端连通性测试
- 执行
hadoop fs -ls /
验证HDFS访问 - 提交测试MapReduce作业(如WordCount)
- 执行
风险规避与应急方案
风险场景 | 预防措施 |
---|---|
元数据丢失 | 启用HDFS快照(hdfs dfs -createSnapshot )配置多JournalNode节点 |
数据节点延迟注册 | 设置dfs.namenode.heartbeat.recheck-interval 参数(默认3倍心跳间隔) |
YARN资源调度异常 | 重启后执行yarn scheduler -reduce <queue> 调整队列资源 |
主备切换失败(HA环境) | 手动触发Failover(hdfs haadmin -transitionToActive ) |
FAQs
Q1:重启NameNode后长时间处于安全模式怎么办?
A1:可能原因及解决方案:
- DataNode心跳丢失:检查网络连通性(
telnet datanode_host:50010
) - 块报告不完整:手动退出安全模式(
hdfs dfsadmin -safemode leave
)并强制Block均衡 - 元数据不一致:对比Standby节点日志,使用
hdfs fsck -files -blocks -locations
定位问题文件
Q2:如何缩短HA集群的重启恢复时间?
A2:优化建议:
- 启用热备机制:保持Standby NameNode处于Ready状态
- 调整
dfs.client.block.write.locations.timeout
参数(默认30秒) - 使用滚动重启:分批次重启DataNode(每次不超过20%)
- 预先加载JobHistory:
mapreduce jobhistory daemon
保持常驻运行