由一个STOP命令挖出Ambari如何下发任务

简介:

天龙系统部署MINIRDS失败,重试时,Ambari会对所有已经安装成功的组件下发一个STOP命令。对这个STOP,处女座的@风煜表示不能忍,so。。。开始啃Ambari源码之路。。。

抓包发现重试时,前端向server发送了一个PUT请求

ok,这个PUT请求到server端之后,server到底做了什么呢??

如下图所示,一个API如何产生部署阶段->stage

在Ambari中什么是stage呢,以部署MINIRDS为例,需要部署GLOBALCONFIG,METADB,BAKDB,PERFDB.....等等等等。

这些任务如PERFDB,BAKDB必须依赖METADB,所以部署PERFDB时必须保证METADB部署完成,所以GLOBALCOONFIG、METADB为第一阶段,PERFDB,BAKDB为第二阶段。

总体来讲,stage的任务规划是按照DAG的方式来实现的。什么是DAG?

`DAG:在图论中,如果一个有向图无法从任意顶点出发经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。
因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。`

如何实现DAG?

在Ambari server算法中,所有的service作为一个结点(即METADB、GLOBALCONFIG),节点间的依赖关系为eage(边),如PERFDB依赖METADB,所以有一条METADB指向PERFDB的边。

如何划分stage?

遍历所有节点,将入度(指向该节点的边的个数)为0的节点作为一个stage,并将这些节点从原来哈希表中删除。
循环直至,所有节点都划分完毕。

从数据库中的数据验证结果。。。。

为什么会给安装好的组件下发STOP命令呢?

这是Ambari Controller的策略。在ambari server中,每个component都有一个状态机,当重试时,component状态为INSTALLED时,controller会向对应状态机执行STOP命令对应的HOST_SERVICE_COMPONENT_EVENT。

相关文章
|
3月前
|
Prometheus 监控 Cloud Native
使用supervisor守护Prometheus进程
使用supervisor守护Prometheus进程
|
6月前
|
缓存 监控 安全
zabbix服务器监控之了解agent的启动过程
zabbix服务器监控之了解agent的启动过程
190 0
|
监控 Shell Apache
监控httpd的进程数,根据监控情况做相应处理
监控httpd的进程数,根据监控情况做相应处理
116 1
C++采用Daemon进行后台程序部署
在C++中,如果要让一个程序一直在后台运行并且和终端会话分离,我们可以将其作为守护进程运行,以下是创建C++守护进程的一般步骤。
|
运维 Oracle 关系型数据库
【大数据开发运维解决方案】kill占用指定端口进程(定时自动重启weblogic脚本)
上面是总结的定时自动重启weblogic脚本以及如果不慎用root启动weblogic后如何恢复oracle用户的运维。 1、通过ps-ef |grep命令找到想要杀死的进程信息,然后配合awk和sed组织好要杀死的进程清单对应的shell语句,并通过sh命令自动执行kill: ps -ef |grep /home/apache-tomcat-7.0.76/|awk 'NR>1 {print $2}' | sed -e "s/^/kill -9 /g" | sh -
【大数据开发运维解决方案】kill占用指定端口进程(定时自动重启weblogic脚本)
|
监控
【Zabbix】排错:zabbix分部署服务器监控部署后Server进程过多
部署完zabbix服务端后,Zabbix Server进程过多警告
785 0
【Zabbix】排错:zabbix分部署服务器监控部署后Server进程过多
|
监控 应用服务中间件 Shell
zabbix4.0配置对指定进程监控
zabbix4.0配置对指定进程监控
3772 0
|
机器学习/深度学习 监控 应用服务中间件
监控命令之tsar
1.1 tsar是什么?   tsar是淘宝自己开发的一个采集工具(类似于sar工具),主要用来收集服务器的系统信息(如cpu,io,mem,tcp等),以及应用数据(如squid haproxy nginx等)。
2101 0
|
监控
zabbix 监控windwos CPU
zabbix本身有一个监控windwos cpu的监控项,但是感觉的数据是什么鬼,看不懂啊,所以决定自己加一个监控项 默认模板自带监控项展示出来的图形: 图片.
1412 0
|
监控 关系型数据库 MySQL