您的位置:首页 > 运维架构

使用process_monitor.sh监控hadoop进程的crontab配置

2016-02-02 15:34 363 查看
可以从下列链接找到process_monitor.sh:
https://github.com/eyjian/mooon/blob/master/common_library/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 &"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: