ambari的服务启动顺序如何设置
声明:博主写了一些Ambari自定义服务系列文章,可以在历史文章中查看。
仔细看,肯定会对ambari的自定义服务有一个更清晰的认识。
引言:ambari平台系统上的服务有很多,众所周知,每一个服务都是由各个组件所组成。如果我点击页面上的 启动/停止全部服务 或者 启动/停止单个服务,各个组件之间的启动停止顺序是怎么设置的呢?本篇内容为你解除心中的疑问
一、Role Command Order
角色是组件的另一个名称(例如:NAMENODE,DATANODE,RESOURCEMANAGER,HBASE_MASTER等)。 顾名思义,可以告诉Ambari关于应该为堆栈中定义的组件运行命令的顺序。 例如:“应在启动NameNode之前启动ZooKeeper服务器”。或者“只有在NameNode和DataNodes启动后才能启动HBase Master”。 这可以通过在stack-version文件夹中包含role_command_order.json文件来指定。
在Ambari的Service目录中,存在很多个叫做role_command_order.json的配置文件。这个文件中定义了Service状态以及Action的依赖。
resource目录下的role_command_order.json定义着全局的的依赖。每个Stack目录下也会存在role_command_order.json。相同的配置,Stack下面的会覆盖全局的。不同的配置,Ambari会拼接在一起。高版本的Stack会继承低版本的配置。相同的也会overwrite,不同的merge。
二、Format
该文件以JSON格式指定,包含一个JSON对象。在每个section对象中,键描述了依赖的component-action,值列出了应该在它之前完成的component-actions。
1 | { |
三、Sections
Section Name | When Used |
---|---|
general_deps | 命令顺序适用于所有情况 |
optional_glusterfs | 当集群没有GLUSTERFS服务实例时,将应用命令顺序 |
optional_no_glusterfs | 当集群具有GLUSTERFS服务的实例时,将应用命令顺序 |
namenode_optional_ha | 安装HDFS服务且存在JOURNALNODE组件时启用命令顺序(启用HDFS HA) |
resourcemanager_optional_ha | 安装YARN服务时存在命令顺序,并且存在多个RESOURCEMANAGER主机组件(启用了YARN HA) |
四、COMMAND
Ambari目前支持的命令是
- INSTALL
- UNINSTALL
- START
- RESTART
- STOP
- EXECUTE
- ABORT
- UPGRADE
- SERVICE_CHECK
- CUSTOM_COMMAND
- ACTIONEXECUTE
举例:
Role Command Order | Explanation |
---|---|
“HIVE_METASTORE-START”: [“MYSQL_SERVER-START”, “NAMENODE-START”] | 在启动Hive Metastore之前启动MySQL和NameNode组件 |
“MAPREDUCE_SERVICE_CHECK-SERVICE_CHECK”: [“NODEMANAGER-START”, “RESOURCEMANAGER-START”], | MapReduce服务检查需要ResourceManager和NodeManagers启动 |
“ZOOKEEPER_SERVER-STOP” : [“HBASE_MASTER-STOP”, “HBASE_REGIONSERVER-STOP”, “METRICS_COLLECTOR-STOP”], | 在停止ZooKeeper服务器之前,请确保已停止HBase Masters,HBase RegionServers和AMS Metrics Collector。 |
“ELASTICSEARCH_SERVICE-START”: [“METRICS_COLLECTOR-START”, “METRICS_MONITOR-START”, “METRICS_GRAFANA-START”] | 当启动metrics和ES组件时,metrics组件启动在前,ES组件在后 |
“ELASTICSEARCH_SERVICE_CHECK-SERVICE_CHECK”: [“ELASTICSEARCH_SERVICE-START”] | ES check操作在ES start操作之后 |
“<DEPENDENT_COMPONENT>- |
组件名-命令 |
“<DEPENDENT_COMPONENT>- |
这里要注意,服务检查的命令为:<服务名称>_SERVICE_CHECK-SERVICE_CHECK |
五、实例
1 | { |
说明:在执行key命令之前,请先确保value项都被执行。
在执行ELASTICSEARCH_SERVICE
启动之前,启动METRICS_COLLECTOR
,METRICS_MONITOR
,METRICS_GRAFANA
在执行ELASTICSEARCH_SERVICE
重启之前,启动METRICS_COLLECTOR
,METRICS_MONITOR
,METRICS_GRAFANA
在执行ELASTICSEARCH_SERVICE
检查操作在ELASTICSEARCH_SERVICE
开始操作之后。
六、参考资料
【1】Ambari自定义服务集成实战教学(完结):https://www.yuque.com/create17/ambari/miyk6c
点关注,不迷路
好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。
白嫖不好,创作不易。各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
如果本篇博客有任何错误,请批评指教,不胜感激 !
原文作者: create17
原文链接: https://841809077.github.io/2018/09/26/Ambari/自定义服务/role_command_order.html
版权声明: 转载请注明出处(码字不易,请保留作者署名及链接,谢谢配合!)