Ambari 项目结构

* <small>本文从Ambari的业务功能的角度展开,对Ambari的各个模块功能做一个简单的概述。</small>*

Ambari 主要分为三部分:
  • Server
     <small>内含ambari-server(java/shell/python)、ambari-web(js/html)、ambari-admin(js/html)三个子项目</small>
  • Ambari-Agent
     * <small>ambari-agent(python)项目</small>*
  • Ambari-Metrics
     <small>又称AMS(Ambari-Metrics-System),内含ambari-xxxx-sink(java)、ambari-metrics-collector(java)、ambari-metrics-monitor(java)等
***--Ambari架构图--***

心跳机制
  <small>ambari-server和ambari-agent是通过ambari-agent定期发送post请求上报agent所在主机的状态,ambari-server在接收到ambari-agent上报的状态后,给ambari-agent返回应该在这台主机上执行的指令,这样一次完整的流程就是一次心跳,通过心跳完成主从交互的这种机制就是心跳机制</small>

Server

此Server 并不是代码层面的的Ambari-Server,而是站在业务的角度来看,server 将集群的状态通过web UI 或RESTAPI的形式呈献给用户,也是通过这两种形式将用户的指令(比如stop namenode、start datanode)下发到集群,从而完成用户与hadoop集群的交互。
  server 从代码层面由三个项目组成:ambari-server、ambari-web、ambari-agent。也就是说在将ambari项目打成rpm包时,这三个项目会汇总到一个名字叫ambari-server-xxxx.rpm包中。

  • 用户和集群的交互流程######

在server安装、配置完成并启动后,用户通过浏览器访问server,在地址栏输入的url是由ambari-web(以后简称web)模块响应请求,web端又调用ambari-server 的rest api获取数据显示在浏览器页面上。当用户想要通过浏览器操作集群(stop、start某些组件)时,由web端向ambari-server发送post或put请求,ambari-server 接收到请求后通过心跳机制,向ambari-agent(以后简称agent)发送指令,最后由agent执行shell或python脚本来完成。

  • 显示在浏览器上的数据来源######

浏览器页面上显示的数据根据时间状态可以分为两种类型。一种是集群内各服务的实时状态信息,这类数据是由AMS模块实时采集上报给Ambari-Metrics-Collector,再由Ambari-Server调用ambari-metrics-collector的REST AP显示在页面上。这部分数据没有落地到ambari-server 的数据库中,在每次web端调用ambari-server的数据时,ambari-server都会调用ambari-metrics-collector获取数据,进行适当的加工处理后直接返回给web端 显示在浏览器页面上。还有一种由ambari-server缓存在内存,持久化到数据库的数据,这类数据比如主机列表、服务列表、服务的配置信息等。这些数据是由agent采集通过心跳发送给ambari-server后,ambari-server更新自身的数据状态。当web端调用ambari-server的rest api获取这些数据时,ambari-server将web端请求的数据直接返回给web显示在浏览器页面。

Ambari-Agent

ambari-agent 是由Python语言开发,负责对集群内主机状态的采集以及执行ambari-server发来的指令,将执行结果上报给ambari-server。ambari-agent虽然是离hadoop集群最近的一个模块,但是它不保存集群的任何状态信息,完全听命于ambari-server。

Ambari-Metrics(AMS)

AMS是ambari内部一个比较完整的系统,全权负责集群内各组件状态信息的采集。

--待完善

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,798评论 19 139
  • Ambari安装 1 Ambari简介 Apache Ambari项目的目的是通过开发软件来配置、监控和管理had...
    CobubRazor阅读 10,525评论 2 3
  • 问题导读: 1.如何构建高并发电商平台架构 2.哈希、B树、倒排、bitmap的作用是什么? 3.作为软件工程师,...
    MaLiang阅读 10,542评论 1 70
  • 高并发平台架构 设计理念 1. 空间换时间 多级缓存,静态化前端页面缓存(HTTP Header中包含Expire...
    AkaTBS阅读 8,127评论 0 13
  • 都说,人生的路一定是在路上,在前行中,才能真正的领悟到生命中的圆满。 那么在人的一生里,最美好的应该是来自心底的安...
    华枝春满5339阅读 3,365评论 5 6