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

amabri服务状态监控和PID目录、文件玩法

2016-09-09 11:16 204 查看

1. ambari服务状态监测

amabri需要检测服务进程状态,基本玩法是服务启动后将进程ID记录在一个特定文件。ambari定时检测文件是否存在,PID对应进程是否存在,检测代码如下:

process_id_exists_command = as_sudo(["test", "-f", pid_file]) + " && " + as_sudo(["pgrep", "-F", pid_file])


2. PID文件和目录

2.1 手工启动hadoop

以hadoop的启动为例, 在启动脚本sbin/hadoop-daemon.sh中可以看到这样一段注释

#   HADOOP_PID_DIR   The pid files are stored. /tmp by default.


具体启动脚本省略了,也就是说:

如果配置了HADOOP_PID_DIR, 则PID文件存放在配置的位置;

如果没有配置,则默认存放/tmp目录;

如果不带ambari玩,默认是没有配置这个目录的。

2.2 amabri启动hadoop

ambari启动hadoop的玩法

启动配置目录变为/etc/hadoop/conf

hadoop-env.sh:79:export HADOOP_PID_DIR=/var/run/hadoop/$USER

可以看到已经更改了PID放置目录。目录是有ambari创建的。

ambari\ambari-server\src\main\resources\common-services\HDFS\2.1.0.2.0\package\scripts\utils.py中的两段逻辑:

#拼装路径,配置决定
pid_dir = format("{hadoop_pid_dir_prefix}/{user}")

#创建目录
Directory(log_dir,
owner=user,
recursive=True)


2.3 小结

加上开篇的检测代码,逻辑就打通了.总结如下:

ambari创建存放PID的文件目录

amabri启动hadoop时,以配置形式告诉hadoop这个目录;

hadoop启动时,创建PID文件,放置在约定目录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ambari hadoop