我想监控一些服务,这些服务在出现故障时需要重新启动,我发现了一个非常棒的工具monit
。它对Zookeeper
工作正常,因为我遇到了类似matching "QuorumPeerMain"
的情况,如monitrc
文件中所示
check process Zookeeper matching "QuorumPeerMain"
start program = "path/to/zkServer.sh start"
stop program = "path/to/zkServer.sh stop"
以同样的方式,我想监视以下内容:Hadoop、Yarn和hbase
check process Hadoop matching "?"
start program = "startorstop.sh start" #equivalent to start-dfs.sh
stop program = "startorstop.sh stop" #equivalent to stop-dfs.sh
- 处应写什么?**
这些问题
- 在hadoop的情况下,可能会出现
NameNode
、DataNode
、SecondaryNameNode
故障。Monit Doc指出 “选择运行时间最长的最匹配父节点”。例如,如果DataNode出现故障,它仍然考虑NameNode,不会尝试重新启动hadoop
。另一个选项是使用pid文件,但我无法在/var/run/
中找到Hadoop的pid文件 - 我想要一种自顶向下的方法(不完全是)。
1条答案
按热度按时间dy2hfwbg1#
我有一种方法可以使用shell脚本独立启动
NameNode
、DataNode
、SecondaryNameNode
,即hadoop-daemon.sh
。因此,在我的monit conf中,NameNode
看起来像感谢@OneCricketeer的评论,这样我就可以找到一种方法来独立启动这些过程
对于我的问题的另一部分,我得到了
depends
选项。更多细节请看这里的服务依赖关系。在我的例子中,我希望在DataNode
停止运行时重新启动HRegionServer
。下面是conf的工作原理