file-type

自动化脚本:Hadoop集群检测并杀死僵尸节点

TXT文件

下载需积分: 9 | 1KB | 更新于2024-09-12 | 166 浏览量 | 1 下载量 举报 收藏
download 立即下载
在Hadoop集群管理中,有时候可能会遇到僵尸节点的问题,这些僵尸节点可能是由于任务执行异常或者节点失效导致的,它们会占用系统资源且影响集群的正常运行。本文档提供了一个脚本,旨在通过自动化的方式检测并清理Hadoop集群中的这些僵尸节点。 首先,脚本接收一个命令参数`$comm`,用于判断当前操作。如果`$comm`为空(即没有指定命令),脚本将执行以下步骤: 1. 从 `/opt/sohu/hadoop/conf/slaves` 文件中读取集群中所有主机的列表。 2. 对于列表中的每个主机,使用`scp`命令将脚本拷贝到临时目录`/tmp/`上。 3. 使用`ssh`登录每个主机,并在远程机器上执行`/tmp/$file run`,这里的`$file`是当前脚本的名称,用于启动相应的处理逻辑。 如果`$comm`等于`run`,则脚本进入实际的僵尸节点检测和清理阶段。首先,它会加载环境变量,然后使用`jps -ml`命令获取所有正在运行的Java进程,筛选出属于MapReduce Child进程(`grep org.apache.hadoop.mapred.Child`)的进程ID。接着,对每个Child进程执行以下操作: - 使用`jmap -histo`命令生成内存使用情况统计,并计算总的内存占用量(以MB为单位)。 - 检查进程的运行状态,如果进程的状态显示为已停止但仍有运行时间(如`123-10:00`),则认为是僵尸进程,执行`kill -9`强制结束该进程。 - 如果进程仅显示剩余运行时间(如`10:00`),则记录其剩余运行时间,并不进行强制结束。 最后,脚本会输出清理结果,包括被识别为僵尸的进程及其相关信息。 这个脚本通过监控和分析Hadoop集群中MapReduce Child进程的内存使用情况以及运行状态,实现了自动检测和清理僵尸节点的功能,有助于保持Hadoop集群的高效运行和资源利用率。管理员可以通过运行此脚本来定期或在发现问题时快速响应,提升整个系统的稳定性。

相关推荐

filetype

2025-06-12 07:06:17,203 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Transitioning to standby state 2025-06-12 07:06:17,203 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Transitioned to standby state 2025-06-12 07:06:17,206 FATAL org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error starting ResourceManager org.apache.hadoop.yarn.webapp.WebAppException: Error starting http server at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:443) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.startWepApp(ResourceManager.java:1203) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceStart(ResourceManager.java:1312) at org.apache.hadoop.service.AbstractService.start(AbstractService.java:194) at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:1507) Caused by: java.net.BindException: Port in use: 192.168.59.28:8099 at org.apache.hadoop.http.HttpServer2.constructBindException(HttpServer2.java:1213) at org.apache.hadoop.http.HttpServer2.bindForSinglePort(HttpServer2.java:1235) at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:1294) at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:1149) at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:439) ... 4 more Caused by: java.net.BindException: Cannot assign requested address at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:433) at sun.nio.ch.Net.bind(Net.java:425) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:351) at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:319) at org.apache.hadoop.http.HttpServer2.bindListener(HttpServer2.java:1200) at org.apache.hadoop.http.HttpServer2.bindForSinglePort(HttpServer2.java:1231) ... 7 more 2025-06-12 07:06:17,212 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down ResourceManager at guojingze/127.0.1.1 ************************************************************/ 876,1 Bot