Ambari Server 架构图,由图中看,主要有4部分:

Resource Service:资源服务,用来接收前端的 Rest 请求。关于 Resource 的几个基本概念:

  • Resource:Ambari Server 定义了各种各样的 Resource,比如 Config、User、Cluster、
  • Component、Alert 等都是一种 Resource。
  • Resource Type:每种 Resource 都对应一个 ResourceType,标记所属的资源类型。
  • Resource Service:每种 Resource 都对应一个 Resource Service,比如ConfigService、UserService等,Service 中定义了相对应 Resource 的 Rest API。
  • Resource Provider:每种 Resource 都对应一个 ResourceProvider,比如ConfigResourceProvider、UserResourceProvider等,对 Resource 的具体操作,都封装在 Provider 中。

HeartBeatHandler:处理 Agent 的 Heartbeat 请求。

ActionQueue:每个 Host 都有一个 ActionQueue 记录着需要这台 Host 执行的命令。

FSM:维护组件状态的有限状态机。

简述一下 Ambari Server 的工作流程:
前端请求处理流程:前端提交一个 Rest 请求,相应 Resource 的 Service 处理请求,根据 ResourceType 找到对应的 ResourceProvider 执行具体的操作;如果存在需要 Agent 执行的操作,则把操作存储到相应 Host 的 ActionQueue 中;如果需要改变组件的状态,则需要操作 FSM。

Agent 请求处理流程:Agent Heartbeat 每10秒执行一次,Heartbeat Request 会携带命令的执行情况、组件状态以及 Host 状态等信息,HeartBeatHandler 会根据汇报上来的命令执行情况,去操作 FSM 来维护组件的状态;HeartBeatHandler 会从 ActionQueue 中取出需要 Host 执行的命令、修改的配置、Alert 定义等信息,通过 HeartBeat Response 返回给 Agent 执行。

总体来说由于 Ambari Server 和 Ambari Agent 之间是通过短连接进行通信,所以 Server 无法把需要执行的命令,直接推送给相应的 Agent,所以需要 ActionQueue 来存储命令,然后通过 Heartbeat 把命令下发给 Agent 执行。

转载自 并发编程网 - ifeve.com

Ambari 架构(三)Ambari Server 架构相关推荐

  1. Re:从 0 开始的微服务架构--(三)微服务架构 API 的开发与治理--转

    原文来自:聊聊架构公众号 前面的文章中有说到微服务的通信方式,Martin Folwer 先生在他对微服务的定义中也提到"每个服务运行在其独立的进程中,服务与服务间采用 轻量级的通信机制 互 ...

  2. SQL SERVER 架构管理

    架构特点: 架构是数据库级的安全对象,是数据库中表.视图.存储过程等对象的容器,是形成单个命名空间的数据库实体的集合,一个架构只能有一个拥有者. 将所有权与架构分离的意义: ①架构所有权和架构范围内的 ...

  3. 朱晔的互联网架构实践心得S1E2:屡试不爽的架构三马车

    朱晔的互联网架构实践心得S1E2:屡试不爽的架构三马车 [下载本文PDF进行阅读] 这里所说的三架马车是指微服务.消息队列和定时任务.如下图所示,这里是一个三驾马车共同驱动的一个立体的互联网项目的架构 ...

  4. 大数据三种主流架构(Lambda、Kappa、IOTA)

    文章目录 前言 Lambda架构 Lambda架构的介绍 Lambda架构的关键性 Lambda的三层架构 Lambda的三层架构 Speed Layer 速度层 Serving layer 服务层 ...

  5. Parameter Server架构

    Parameter Server架构 现在的机器学习系统,但凡是大一点的公司,恐怕都在用分布式了.而在分布式机器学习领域,最出名的恐怕就是少帅的PS框架了.在本博文里,PS框架特指第三代PS框架,即少 ...

  6. 浅议DAS、NAS、SAN三种存储架构

    浅议DAS.NAS.SAN三种存储架构 目前磁盘存储市场上,存储分类(如下表一)根据服务器类型分为:封闭系统的存储和开放系统的存储,封闭系统主要指大型机,AS400等服务器,开放系统指基于包括Wind ...

  7. Java 基础入门随笔(1) JavaSE版——java语言三种技术架构

    1.java语言的三种技术架构: J2SE(java 2 Platform Standard Edition):标准版,是为开发普通桌面和商务应用程序提供的解决方案.该技术体系是其他两者的基础,可以完 ...

  8. 【架构】互联网架构三马车:微服务+消息队列+定时任务

    注:内容整理自:互联网架构:屡试不爽的架构三马车

  9. 网络资产管理系统_固定资产管理系统的三种网络架构方式

    随着互联网技术的发展和信息技术的广泛使用,固定资产管理系统在各行业的应用越来越普及,固定资产管理系统作为当今主流的企业固定资产信息化管理模式,能够对企业固定资产进行有效管理并提升企业的管理水平.对于固 ...

  10. 从零开始学架构三 高性能

    从零开始学架构三 高性能 读写分离 读写分离的基本实现是: 数据库服务器搭建主从集群,一主一从.一主多从都可以. 数据库主机负责读写操作,从机只负责读操作. 数据库主机通过复制将数据同步到从机,每台数 ...

最新文章

  1. 皮一皮:中国男足啊..这球少一个人帮忙这球都进不了...
  2. 纯css3开发的响应式设计动画菜单(支持ie8)
  3. batocera_batocera系统如何把旧电脑改造成影音游戏主机
  4. NSURLSessionDataTask与NSOperationQueue实现多文件断点下载(任意时刻终止进程,重启应用,自动重启下载)...
  5. 网上支付心案例payment
  6. sprint 3 总结
  7. 产品结构bom设计 mongodb_产品设计人员看过来!儿童智能机器人产品结构设计解析(二)...
  8. 12行Python暴力爬《黑豹》豆瓣短评
  9. 一个通用的单元测试框架的思考和设计06-实现篇-自动管理测试数据-如何临时关闭数据外键约束...
  10. 简述对互联网产品经理的认识
  11. stm32实用技巧:JLINK接口定义和使用JTAG或SW下载程序
  12. php uchome,Uchome1.2 1.5 代码学习 common.php
  13. 微信注册验证成功之后不跳转_想申请小号的网友福利来了:绑定了微信的手机号怎么注册新的微信...
  14. 在MySQL数据库中进行模糊查询_如何实现mysql数据库单表的模糊查询?
  15. case when 嵌套
  16. 最好用的 6 款 Vue 实时消息提示通知(Message/Notification)组件推荐与测评
  17. Android 读取本地Word/Pdf/Txt文件转文本输出
  18. 怎么在腾讯云函数抖音无水印解析接口部署
  19. matlab求传递函数在某个频率点的增益_EQ均衡器频率特性的原理——Q值与带宽、滤波器...
  20. 【转】Downgrade iOS 4 to OS 3.1.3/3.1.2 (iPhone, iPod Touch)

热门文章

  1. Spring MVC Hello World 例子
  2. 用MFC制作程序启动logo
  3. Kali Linux
  4. adb devices指令实例讲解
  5. 进一步解 apt-get 的几个命令
  6. objective-c 多媒体 音乐播放
  7. Npm的配置管理及设置代理
  8. 基于matlab的点云重建与三角剖分
  9. kafka的groupid
  10. FFmpeg使用基础