当前位置:首页 > 行业动态 > 正文

hadoop停服务器

执行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>

关键命令解析

hadoop停服务器  第1张

# 停止整个集群(需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:此现象通常由以下原因导致:

  1. NameNode已停止但DataNode仍在尝试连接
  2. 网络防火墙阻断了DataNode心跳通信
  3. DataNode进程未完全终止(可通过pgrep DataNode确认)

解决方法

  • 手动终止残留进程:kill -9 $(pgrep DataNode)
  • 检查/etc/hosts配置是否正确
  • 重启网络服务:systemctl restart network

Q2:如何在不影响现有业务的情况下实现滚动升级?
A:推荐采用以下步骤:

  1. 启用HDFS高可用(HA)模式并切换Active/Standby NameNode
  2. 逐台升级从节点(先升级DataNode再升级NodeManager)
  3. 最后升级主节点(先升级Standby NameNode再切换角色)
  4. 使用yarn-cli动态调整资源队列避免作业中断

升级过程监控命令

# 实时查看集群状态
watch -n 5 'hdfs dfsadmin -report && yarn node -list
0