上一篇
hadoop停服务器
- 行业动态
- 2025-05-09
- 22
执行stop命令关闭YARN/HDFS进程,终止SSH服务
Hadoop停服务器详细操作指南
停机前的准备与风险评估
在执行Hadoop集群停机操作前,需完成以下准备工作:
检查项 | |
---|---|
业务影响评估 | 确认当前无正在运行的关键MapReduce任务或Spark作业 |
数据完整性验证 | 检查HDFS中未完成上传的文件块状态(使用hdfs fsck / 命令) |
服务依赖关系梳理 | 记录依赖Hadoop的下游系统(如Hive、Spark、Flume等)的连接状态 |
硬件资源监控 | 检查各节点CPU、内存、磁盘IO是否处于正常范围(通过Ganglia/Nagios等工具) |
日志归档 | 将NameNode/ResourceManager/NodeManager的日志打包备份至异地存储 |
风险提示:
- 强制关机可能导致HDFS文件系统损坏(如未正常关闭NameNode)
- YARN资源调度器异常终止会引发容器状态不一致
- 未同步的元数据可能破坏Hive/HBase等依赖组件
标准停机流程(分模式操作)
单机模式(Local Mode)
# 停止Hadoop守护进程 hadoop-daemon.sh stop namenode hadoop-daemon.sh stop datanode hadoop-daemon.sh stop resourcemanager hadoop-daemon.sh stop nodemanager # 验证进程终止 jps # 应显示无Hadoop相关进程
伪分布式模式(Pseudo-Distributed Mode)
# 进入Hadoop安装目录 cd $HADOOP_HOME/sbin # 按顺序停止服务 ./stop-dfs.sh # 关闭HDFS(先DataNode后NameNode) ./stop-yarn.sh # 关闭YARN(先NodeManager后ResourceManager) # 验证端口释放情况 netstat -tulnp | grep -E "500(10|20|70|90|100)" # 应无Hadoop监听端口
完全分布式模式(Fully-Distributed Mode)
节点类型 | 操作步骤 |
---|---|
主节点 | 执行stop-dfs.sh 执行 stop-yarn.sh 关闭ZooKeeper集群 |
从节点 | 执行hadoop-daemon.sh stop datanode 执行 hadoop-daemon.sh stop nodemanager |
客户端节点 | 终止所有提交的作业(hadoop job -kill <job_id> ) |
关键命令解析:
# 停止整个集群(需root权限) $HADOOP_HOME/sbin/stop-all.sh # 此命令实际执行: stop-dfs.sh && stop-yarn.sh && $HADOOP_MAPRED_HOME/sbin/stop-mapred.sh
特殊场景处理方案
非正常关机后的恢复
若因断电/宕机导致异常关闭,需执行:
# 安全模式解除 hdfs dfsadmin -safemode leave # 修复HDFS元数据 hdfs fsck / -move ._rbk # 恢复快照备份
滚动升级前的停机
# 逐节点操作示例(node1为例) ssh node1 hadoop-daemon.sh stop datanode hadoop-daemon.sh stop nodemanager # 升级完成后 hadoop-daemon.sh start datanode hadoop-daemon.sh start nodemanager
热插拔节点处理
# 移除故障节点(以node3为例) hdfs dfsadmin -removeNode node3:50010 # HDFS节点移除 yarn rmnode -deleteNodeLabel node3 # YARN节点移除
停机后验证清单
验证项 | 检测方法 |
---|---|
HDFS健康状态 | hdfs dfsadmin -report 查看Block池/副本数/缺失块数量 |
YARN资源回收 | yarn node -list 确认所有NodeManager已离线 |
NameNode元数据一致性 | 对比nn_edits 文件与image_ckpt 时间戳 |
网络端口释放 | ss -tuln 检查50010/50020/50070/50090等端口无监听 |
进程残留检测 | ps -ef | grep hadoop 确认无遗留进程 |
常见问题与解决方案
FAQs:
Q1:执行stop-all.sh后部分节点仍显示DATANODE_COMM_EXCEPTION怎么办?
A:此现象通常由以下原因导致:
- NameNode已停止但DataNode仍在尝试连接
- 网络防火墙阻断了DataNode心跳通信
- DataNode进程未完全终止(可通过
pgrep DataNode
确认)
解决方法:
- 手动终止残留进程:
kill -9 $(pgrep DataNode)
- 检查/etc/hosts配置是否正确
- 重启网络服务:
systemctl restart network
Q2:如何在不影响现有业务的情况下实现滚动升级?
A:推荐采用以下步骤:
- 启用HDFS高可用(HA)模式并切换Active/Standby NameNode
- 逐台升级从节点(先升级DataNode再升级NodeManager)
- 最后升级主节点(先升级Standby NameNode再切换角色)
- 使用
yarn-cli
动态调整资源队列避免作业中断
升级过程监控命令:
# 实时查看集群状态 watch -n 5 'hdfs dfsadmin -report && yarn node -list