Ambari-server 架构
状态
三种状态 :
- Live Cluster State:集群现有状态,各个节点汇报上来的状态信息会更改该状态
- Desired State:用户希望该节点所处状态,是用户在页面进行了一系列的操作,需要更改某些服务的状态,这些状态还没有在节点上产生作用
- Action State:操作状态,是状态改变时的请求状态,看成一种中间状态,该状态可以辅助 LiveCluster State 向Desired State 状态转变
心跳
Ambari-Server 的 Heartbeat Handler 模块用于接收各个 agent 的心跳请求(心跳请求包含两类信息 : 节点状态信息 , 返回的操作结果),把节点状态信息传递给 FSM 状态机去维护着该节点的状态,并且把返回的操作结果信息返回给 Action Manager 去做进一步的处理
Coordinator 模块 ( API handler ) 主要在接收 WEB 端操作请求后,会检查它是否符合要求,StagePlanner 分解成一组操作,最后提供给 ActionManager 去完成执行操作
Ambari-Server 的所有状态信息的维护和变更都会记录在数据库中,用户做一些更改服务的操作都会在数据库上做一些相应的记录,同时,Agent 通过心跳来获得数据库的变更历史
jetty
Ambari-Server 使用的 jetty 作为 Servlet 容器作为内嵌的 Java 服务器,其中相关的代码在 server/controller 下的AmbariServer.java 中。 其中 Session 的管理似乎 AmbariSessionManager 重写了 SessionManager 类
- jetty 是一个开源的Servlet容器,它为基于java的web容器,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行的Java应用提供网络和web连接
- Google Guice 一个google的IOC容器
- Spring
- JAX-RS
Ambari-Server 依赖于 Ambari-Views
包名 | 描述 |
---|---|
org.apache.ambari.server.api.services | 对web接口的入口方法,处理 /api/v1/* 的请求 |
org.apache.ambari.server.controller | 对 Ambari 中 cluster 的管理处理,如 : 新增 host,更新service、删除 component |
org.apache.ambari.service.orm.* | 对数据库的操作 |
org.apache.ambari.server.agent.rest | 处理与 Agent 的接口 |
org.apache.ambari.security | 是使用 Spring Security 来做权限管理 |
Ambari Server 会读取 Stack 和 Service 的配置文件。当用 Ambari 创建服务的时候,Ambari Server 传送 Stack 和 Service 的配置文件以及 Service 生命周期的控制脚本到 Ambari Agent。Agent 拿到配置文件后,会下载安装公共源里软件包(Redhat,就是使用 yum 服务)。安装完成后,Ambari Server 会通知 Agent 去启动 Service。之后 Ambari Server 会定期发送命令到 Agent 检查 Service 的状态,Agent 上报给 Server,并呈现在 Ambari 的 GUI 上
相关文章
- 深度学习部署架构:以 Triton Inference Server(TensorRT)为例
- VMware上Ubuntu Server连接外网
- ORA-26859: Server “string” is not an XStream outbound server ORACLE 报错 故障修复 远程处理
- 详解SQL Server数据库架构和对象、定义数据完整性
- Mysql Server系统架构介绍详解数据库
- 面优化SQL Server页面优化经验分享(sqlserver页)
- 和 sql server支持两者:Oracle 和 SQL Server的兼容性(兼容oracle)
- server以xcb架构为基础的linux服务器搭建(xcblinux)
- SQL Server 构建高效并行架构(架构的sqlserver)
- 学会前端技术,尽享 SQL Server 功能(前端sqlserver)
- SQL Server架构下的分布式数据库(分布 sqlserver)
- 伪列:SQL Server的强大功能(伪列sqlserver)
- 利用SQL Server搭建高效稳定的数据表架构(sqlserver表架构)
- SQL Server存在的安全漏洞及缺陷(sqlserver缺陷)
- SQL Server缓冲区:提升数据库处理效率(sqlserver缓冲区)
- SQL Server的百分比提升,创造一个灵活的数据库环境(sqlserver百分比)
- 值利用SQL Server实现日期操作(sqlserver日期取)
- 分页SQL Server按尺寸划分页面实现更好的数据库管理(sqlserver按大小)
- SQL Server 强化经典数据库 架构微软SQL Server:精耕细作 改良经典数据库架构(sqlserver 微软)
- SQL Server 建模技术:简洁优雅架构(sqlserver 建模)
- SQL Server架构探索:助力数据存储自动化(sqlserver 架构)
- SQL Server的质的飞跃:架构转型之路(sqlserver 加n)
- :优秀的SQL Server公司——构建完美数据架构(sqlserver公司)
- 等于SQL Server中大于等于的应用(sqlserver中大于)
- SQL Server 深度剖析:构建最优集群架构(详解sqlserver)
- MySQL 中 Server 的重要性(mysql中server)
- 甲,打败SQL Server乙超级武装Oracle甲战胜SQL server乙(exp 武装oracle)