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内部一个比较完整的系统,全权负责集群内各组件状态信息的采集。

--待完善

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352

推荐阅读更多精彩内容

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