# 一、概述 ## 1.1 Ambari简介 Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。 Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目。 ## 1.2 功能与特性 - 通过一步一步的安装向导简化了集群供应。 - 预先配置好关键的运维指标(metrics),可以直接查看Hadoop Core(HDFS和MapReduce)及相关项目(如HBase、Hive和HCatalog)是否健康。 - 支持作业与任务执行的可视化与分析,能够更好地查看依赖和性能。 - 通过一个完整的RESTful API把监控信息暴露出来,集成了现有的运维工具。 - 用户界面非常直观,用户可以轻松有效地查看信息并控制集群。 ## 1.3 Ambari Server & Ambari Agent Ambari 自身也是一个分布式架构的软件,主要由两部分组成:Ambari Server 和 Ambari Agent。简单来说,用户通过 Ambari Server 通知 Ambari Agent 安装对应的软件;Agent 会定时地发送各个机器每个软件模块的状态给 Ambari Server,最终这些状态信息会呈现在 Ambari 的 GUI,方便用户了解到集群的各种状态,并进行相应的维护。 # 二、技术栈(Technology Stack) ## 2.1 Server - Server code: Java 1.7 / 1.8 - Agent scripts: Python, Jinja2 - Database: Postgres, Oracle, MySQL - ORM: EclipseLink - Security: Spring Security with remote LDAP integration and local database - REST server: Jersey (JAX-RS) - Dependency Injection: Guice - Unit Testing: JUnit - Mocks: EasyMock - Configuration management: Python ## 2.2 Web - Frontend code: JavaScript - Client-side MVC framework: Ember.js / AngularJS - Templating: Handlebars.js (integrated with Ember.js) - DOM manipulation: jQuery - Look and feel: Bootstrap 2 - CSS preprocessor: LESS - Unit Testing: Mocha - Mocks: Sinon.js - Application assembler/tester: Brunch / Grunt / Gulp # 三、参考 - [Apache Ambari](http://ambari.apache.org/) - [Ambari——大数据平台的搭建利器](https://developer.ibm.com/zh/articles/os-cn-bigdata-ambari/)