文章作者:luxianghao
文章来源:http://www.cnblogs.com/luxianghao/p/7886195.html 转载请注明,谢谢合作。
免责声明:文章内容仅代表个人观点,如有不当,欢迎指正。
---
一 引言
Ambari和Hadoop,HBase等一样,是Apache的顶级开源项目,由Hortonworks公司提供,是一个大数据集群管理平台,功能包括部署,管理,监控,日志收集等,允许企业使用,而且没有集群规模的限制。
二 Ambari特点
Ambari不但提供可视化的Web UI,而且也有非常易用的REST API,有了这些就使Hadoop集群管理变得非常简单,对自动化的集群管理大有裨益。
Ambari能提供的方便大概有如下几个方面:
1 简化安装,配置和管理:把简单、高效的创建、管理、监控集群的的工作做到极致,集群配置过程中,Ambari也会提供一些可选的建议,Ambari已经部分智能化,甚至, 如果你不想通过在web端点击来创建集群,你还可以利用Ambari Blueprints(简单来说就是你可以利用一份配置文件和REST API来搭建一个集群);
2 使安全配置中心化: 减少管理、配置集群安全策略的复杂性,支持Kerberos,Apache Ranger的自动化安装;
3 集群健康状态的全面可视化:通过全面的监控来确保集群的健康和可用性,并配置预定义的告警;使用Grafana捕获并可视化程序运行过程中的指标,用来分析和故障排查;
4 高度的可扩展性和可自定义性:可以给Ambari Stacks添加自定义的服务,并进行管理;可以编辑Ambari views生成自定义的Ambari Web UI
三 同类产品比较(大数据集群管理的几个阶段)
1 纯人肉操作阶段:大数据集群一般情况下都规模较大,一个规模较大的集群可能有上千个节点,为了方便集群部署,起停服务,一般会给集群的节点间配置免密码SSH,用纯Linux shell命令来管理集群,当然这样的方式一般是学习或测试时来搭建小集群,当集群规模大起来后就行不通了;
2 在1的基础上借助Ansible(批量操作工具),Puppet(配置管理工具)等工具来操作集群,这样就能管理规模稍大一点的集群,但是这仍然弊端很多,比如Ansible命令容易敲错造成误操作,为了管理配置需要配置puppet等;
3 平台化、可视化的工具:如Ambari,Cloudera Manager,小米Minos,总体上个人比较倾向Ambari,不仅开源,而且有一批顶级的Apache的工程师开发、迭代,代码质量自不必多说。
a)Ambari:上面已经介绍;
b)Cloudera Manager:和Ambari基本类似,但是不开源,这是多数工程师不能容忍的;
c)小米Minos:其开源的版本目前还不能可视化的操作集群,但是已经有了监控,包管理,配置管理等功能,基本功能都有,相对比较轻量,比较容易上手;
四 Ambari架构
1 整体架构图
2 Ambari Server架构图
3 Ambari Agent架构
五 Ambari技术栈
Ambari Server:Java
Ambari Web:Ember.js,Handlebars.js,jQuery,Bootstrap 2,LESS
Ambari Admin Web:AngularJS
Ambari Agent:Python
REST server框架: Jersey (JAX-RS)
Database: Postgres, Oracle, MySQL
ORM: EclipseLink
编译调试工具:Idea,Mvn,Brunch,Gulp
五 相关链接
Ambari Git代码库: https://github.com/apache/ambari
Ambari官网:https://ambari.apache.org/
Ambari WIKI:https://cwiki.apache.org/confluence/display/AMBARI/Ambari
Hortonworks社区:https://community.hortonworks.com/index.html