由一个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。

相关文章
|
Web App开发
在 HTML 中禁用 Chrome 浏览器的 Google 翻译功能
在 html 标签中添加 translate=“no” 属性,浏览器将不会翻译整个页面。
794 0
|
6月前
|
设计模式 XML JSON
【设计模式】【行为型模式】访问者模式(Visitor)
一、入门 什么是访问者模式? 访问者模式(Visitor Pattern)是一种行为设计模式,允许你将算法与对象结构分离。通过这种方式,可以在不改变对象结构的情况下,向对象结构中的元素添加新的操作。
217 10
|
12月前
|
人工智能 弹性计算 数据可视化
解决方案|触手可及,函数计算玩转 AI 大模型 评测
解决方案|触手可及,函数计算玩转 AI 大模型 评测
173 1
|
SQL 关系型数据库 BI
关系型数据库SQL server INSERT 语句
【8月更文挑战第3天】
403 9
|
存储 算法 安全
AIGC 的主要特点和优势
AIGC 的主要特点和优势
2689 2
|
分布式计算 Hadoop 关系型数据库
Hadoop学习笔记(HDP)-Part.13 安装Ranger
本文详细介绍了在HDP集群中安装与配置Ranger的全过程,涵盖服务安装、插件启用、用户同步、权限及联合授权测试、审计日志查看,并通过HAProxy实现Ranger高可用部署,保障数据安全与系统稳定。
761 0
|
JavaScript API 开发者
【HarmonyOS 4.0 应用开发实战】ArkTS 快速入门
【HarmonyOS 4.0 应用开发实战】ArkTS 快速入门
1070 0
复制浏览器网页文字后无法正常粘贴情况的解决
本文介绍在复制网页内容后粘贴时,粘贴内容出现一个方框图案而不是当初复制内容的解决办法~
582 1
复制浏览器网页文字后无法正常粘贴情况的解决
|
弹性计算 固态存储 数据可视化
2023阿里云服务器租用价格表(一年/按月/按小时报价明细)
阿里云服务器分为云服务器ECS和轻量应用服务器,云服务器ECS专业级云服务器常见的ECS实例规格有ECS共享型n4、ECS突发性能型t6、ECS共享型s6、ECS计算型c5、ECS通用型g5、ECS内存型r5、通用型g7、计算型c7、大数据型d1、GPU云服务器、本地SSD型、高主频通用型hfg7、FPGA计算型 f3及弹性裸金属服务器等。阿里云轻量应用服务器优惠活动来了,2核2G3M带宽轻量服务器一年108元,2核4G4M带宽轻量服务器一年297.98元12个月。
2908 0