HDFS-监控jstack脚本

monitor_nn_failover.sh

用途: 服务挂掉了,并且在日志中没有发现是什么原因导致服务挂掉,需要进一步分析当时挂掉时候的进程的jstack信息;

bash 复制代码
#!/bin/bash
LOG_DIR=/var/log/hdfs1
PREFIX=nn-jstack-
MAX_NR=20
SLEEP_INTERVAL=10
KUBECTL='kubectl -s https://127.0.0.1:6443 --certificate-authority=/srv/kubernetes/ca.pem --client-certificate=/srv/kubernetes/admin.pem --client-key=/srv/kubernetes/admin-key.pem'
hostname=$(hostname)
pod=$($KUBECTL get pods -o wide | grep ${hostname} | awk '/hdfs-namenode/ {print $1}')
pid_nn=$($KUBECTL exec $pod -c hadoop-hdfs-namenode-hdfs1 jps | awk '/NameNode/ {print $1}')
echo "Namenode pod is $pod and namenode pid is $pid_nn"
START_TIME=$(date +%s)
echo "=== Start at: $START_TIME"
while :
do
  # check if timeout happened
  last_timeout=$(grep "45000 millis timeout" $LOG_DIR/hadoop-hdfs-zkfc-${hostname}.log | tail -n 1)
  if [ -n "$last_timeout" ]; then
    last_time=${last_timeout%%,*}
    last_time=$(date -d "$last_time" +%s)
    if [ $last_time -gt $START_TIME ]; then
      break
    fi
  fi
  # collect jstack
  cur_time=$(date +%F-%T)
  echo $cur_time
  $KUBECTL exec $pod -c hadoop-hdfs-namenode-hdfs1 -- sudo -u hdfs jstack $pid_nn >$LOG_DIR/${PREFIX}${cur_time}.log 2>&1
  # remove oldest one
  nr=$(ls $LOG_DIR/${PREFIX}* | wc -l)
  if [ $nr -gt $MAX_NR ]; then
    oldest=$(ls -1tr $LOG_DIR/${PREFIX}* | head -n 1 )
    rm -f $oldest
  fi
  sleep $SLEEP_INTERVAL
done
pkg=${PREFIX}$(hostname)-$(date +%s).tgz
tar zcf $pkg $LOG_DIR/${PREFIX}*
rm -f $LOG_DIR/${PREFIX}*
echo "=== Done: $pkg"
相关推荐
事变天下4 小时前
迈瑞的足球之夏:从一次救援到全球守护
大数据·科技
中微极客4 小时前
多智能体编排实战:CrewAI vs AutoGen(2026版)
大数据·网络·人工智能
西邮彭于晏5 小时前
图文详解:Git分支创建、合并与冲突解决|新手零门槛完整教程
大数据·git·elasticsearch
IanSkunk6 小时前
企业AI办公落地技术拆解:从WorkBuddy任务引擎到JOTO实施路径
大数据·人工智能
Xvisio诠视科技7 小时前
从“感知”到“理解”:空间计算如何成为具身智能世界模型的“数据底座”?
大数据·空间计算
jerryinwuhan7 小时前
数据预处理技术 2026-2027-1 开篇-课程介绍
大数据·python
Elastic 中国社区官方博客8 小时前
Elastic 和 OpenAI 合作,将前沿智能引入非结构化企业数据
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai
西邮彭于晏10 小时前
Git 标签(Tag)与版本发布完整指南|附全场景命令速查表
大数据·git·elasticsearch
梵构广告10 小时前
平台怎么做品牌营销策划?—品牌营销
大数据·人工智能·平面·品牌策划
AC赳赳老秦10 小时前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw