使用process_monitor.sh监控hadoop进程的crontab配置
可以从下列链接找到process_monitor.sh:
https://github.com/eyjian/libmooon/blob/master/shell/process_monitor.sh
假设:
1) java安装目录为/data/jdk
2) 监控脚本process_monitor监控脚本process_monitor.sh安装目录为/usr/local/bin
3) hadoop安装目录为/data/hadoop
4) hbase安装目录为/data/hbase
5) zookeeper安装目录为/data/zookeeper
可以通过jps查看到进程ID,然后使用kill命令杀死进程,查看监控重拉起效果。
process_monitor.sh每隔2秒(由变量monitor_interval指定)检查一次,发现进程不存在时,立即启动。
假设运行用户为root,则process_monitor.sh的日志文件为/tmp/process_monitor-root.log,
假设运行用户为test,则process_monitor.sh的日志文件为/tmp/process_monitor-test.log,以此类推。
可以通过tail -f观察process_monitor.sh的日志,来了解process_monitor.sh的运行。
process_monitor.sh带两个参数,第一个参数是被监控的进程对象,process_monitor.sh依靠第二个参数重启被监控对象。
第一个参数又分两部分,第一个空格前的部分,和空格之后的部分。
第一部分为被监控对象的进程名称,对于java程序,进程名是java,而不是jar包的名称。
第二部分为参数部分,可有可无,但正是通过它来区分不同的被监控对象,对于java、shell程序等是必须的。
另外,process_monitor.sh对参数部分是采取模糊部分匹配方式。
可以通过ps aux命令来确定进程名称和参数。
crontab配置如下:
# 监控HDFS NameNode
* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dproc_namenode" "/data/hadoop/sbin/hadoop-daemon.sh start namenode"
# 监控HDFS切换主备NameNode程序
* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dproc_zkfc" "/data/hadoop/sbin/hadoop-daemon.sh start zkfc"
# 监控HDFS JournalNode
* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dproc_journalnode" "/data/hadoop/sbin/hadoop-daemon.sh start journalnode"
# 监控HDFS DataNode
* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dproc_datanode" "/data/hadoop/sbin/hadoop-daemon.sh start datanode"
# 监控HBase Master
* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dproc_master" "/data/hbase/bin/hbase-daemon.sh start master"
# 监控HBase thrift2
* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dproc_thrift2" "/data/hbase/bin/hbase-daemon.sh start thrift2 --framed -nonblocking"
# 监控ZooKeeper
* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dzookeeper" "/data/zookeeper/bin/zkServer.sh start"
# 监控HBase regionserver
* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dproc_regionserver" "/data/hbase/bin/hbase-daemon.sh start regionserver"
# 监控YARN ResourceManager
* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dproc_resourcemanager" "/data/hadoop/sbin/yarn-daemon.sh start resourcemanager"
# 监控YARN NodeManager
* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java -Dproc_nodemanager" "/data/hadoop/sbin/yarn-daemon.sh start nodemanager"
# 监控HiveServer
* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java HiveServer2" "/data/gongyi/hive/bin/hiveserver2 &"
# 监控Hive MetaStore
* * * * * /usr/local/bin/process_monitor.sh "/data/jdk/bin/java HiveMetaStore" "/data/gongyi/hive/bin/hive --service metastore &"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义