本周学习了Ambari的一些基础知识

 

Ambari架构采用的是Server/Client的模式,主要由两部分组成:ambari-agent和ambari-server。ambari依赖其它已经成熟的工具,例如其ambari-server 就依赖python,而ambari-agent还同时依赖ruby, puppet,facter等工具,还有它也依赖一些监控工具nagios和ganglia用于监控集群状况。其中:puppet是分布式集群配置管理工具,也是典型的Server/Client模式,能够集中式管理分布式集群的安装配置部署,主要语言是ruby。facter是用python写的一个节点资源采集库,用于采集节点的系统信息,例如OS信息,主机信息等。由于ambari-agent主要是用python写的,因此用facter可以很好地采集到节点信息。

ambari-agent是一个无状态的。其功能主要分两部分:

采集所在节点的信息并且汇总发心跳汇报给ambari-server;

一、Ambari系统架构
除了ambari-server和ambari-agent,ambari还提供一个界面清亮的管理监控页面ambari-web,这些页面由ambari-server提供。ambari-server开放了REST API,这些API也主要分两大类,其中一类为ambari-web提供管理监控服务,另一类用于与ambari-agent交互,接受ambari-agent向ambari-server发送的心跳请求。下图是Ambari的系统架构。其中master模块接受API和Agent Interface的请求,完成ambari-server的集中式管理监控逻辑,而每个agent节点只负责所在节点的状态采集及维护。

二、Ambari-Agent内部架构
ambari-agent是一个无状态的。其功能主要分两部分:采集所在节点的信息并且汇总发心跳汇报给ambari-server;处理ambari-server的执行请求。因此它有两种队列:消息队列MessageQueue,操作队列ActionQueue。


三、Ambari-Server内部架构
ambari-server是一个有状态的,它维护着自己的一个有限状态机FSM。同时这些状态机存储在数据库中,前期数据库主要采用postgres。如下图所示,server端主要维护三类状态:Live Cluster State,Desired State,Action State

 


 

posted on 2022-08-13 18:24  Bot_noob  阅读(19)  评论(0编辑  收藏  举报