可以从下列链接找到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 &"

使用process_monitor.sh监控hadoop进程的crontab配置的更多相关文章

  1. 通用的进程监控脚本process_monitor.sh使用方法

    不用做任何修改,即可用process_monitor.sh监控各种进程. 源码下载:https://github.com/eyjian/libmooon/blob/master/shell/proce ...

  2. 用飞信监控GoldenGate进程

    监控GoldenGate进程 1)         在goldengate安装目录下建立文件ogginfo $vim ogginfo  info all 2)         配置飞信报警       ...

  3. Linux监控重要进程的实现方法

    Linux监控重要进程的实现方法 不管后台服务程序写的多么健壮,还是可能会出现core dump等程序异常退出的情况,但是一般情况下需要在无 人为干预情况下,能够自动重新启动,保证服务进程能够服务用户 ...

  4. Ganglia环境搭建并监控Hadoop分布式集群

    简介 Ganglia可以监控分布式集群中硬件资源的使用情况,例如CPU,内存,网络等资源.通过Ganglia可以监控Hadoop集群在运行过程中对集群资源的调度,作为简单地运维参考. 环境搭建流程 1 ...

  5. 使用ganglia 实现监控 hadoop 和 hbase(详细过程总结)

    一,环境准备 hadoop 2.8.2 分布式环境(三个节点 安装请参考 hadoop分布式环境安装) hbase 1.2.6  分布式环境(三个节点 ,安装参考hbase分布式环境安装 ) 主节点采 ...

  6. Ganglia监控Hadoop集群的安装部署[转]

    Ganglia监控Hadoop集群的安装部署 一. 安装环境 Ubuntu server 12.04 安装gmetad的机器:192.168.52.105 安装gmond的机 器:192.168.52 ...

  7. Ganglia 监控Hadoop

    Ganglia监控Hadoop集群的安装部署 一. 安装环境 Ubuntu server 12.04 安装gmetad的机器:192.168.52.105 安装gmond的机 器:192.168.52 ...

  8. supervisor使用,配置和安装(包括监控守护进程httpd,keepalived)

    yum -y install supervisor(如果安装不成功,需要更新源,yum -y install epel) 或者: wget --no-check-certificate https:/ ...

  9. 利用VisualVm和JMX远程监控Java进程

    自Java 6开始,Java程序启动时都会在JVM内部启动一个JMX agent,JMX agent会启动一个MBean server组件,把MBeans(Java平台标准的MBean + 你自己创建 ...

随机推荐

  1. webpack前端模块加载工具

    最近在看许多React的资料,发现了大部分的项目都是用webpack行模块化管理的工具.这次也是借着写了一个React-Todos的小应用,对webPack最基本实用的功能体验了一番,顺带做个小记录. ...

  2. Error: Cannot find a valid baseurl for repo: epel

    修改一下/etc/yum.repos.d/epel.repo文件, enable=1改为enable=0

  3. Intellij IDEA Debug

    Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化.通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方 ...

  4. jsp页面添加时间

    <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <body& ...

  5. JSON在各种语言中的运用

    1. JSON数据格式 JSON(JavaScript Object Notation) 从结构上看,所有的数据最终都可以分成三种类型:  第一种类型是scalar(标量),也就是一个单独的strin ...

  6. NSThread 在主线操作的三个方法

    - (void)createNSThread444{ UIImage *image = [UIImage imageNamed:@"图片名字"]; /** 1 performSel ...

  7. Oracle 进入数据库 新增用户 修改密码方法

    1.以管理员身份进入 SQL plus 2.输入:sys/manager as sysdba 3.新增用户: 创建新用户: create user 用户名 identified by 密码; 解锁用户 ...

  8. 提交代码到远程GIT仓库,代码自动同步到远程服务器上。

    现在一般都会通过github,gitlab,gitee来管理我们的代码.我们希望只要我本地push了代码,远程服务器能自动拉取git仓库的代码,进行同步. 这就需要用到各仓库为我们提供的webhook ...

  9. linux 下 php 安装 pthreads

    1.下载pthreads的源码包 https://pecl.php.net/package/pthreads 如:pthreads-3.1.6.tgz 2.解压 > tar zxvf pthre ...

  10. mysql中float、double、decimal三种类型,以及数值产生误差的原因

    单精度浮点数用4字节(32bit)表示浮点数,采用IEEE754标准的计算机浮点数,在内部是用二进制表示的,如:7.22用32位二进制是表示不下的,所以就导致不精确了,存取会出现误差. mysql中f ...