简单分析Ambari——顶级Hadoop管理方案
前面我们提到了两个比较火的Hadoop集群运维管理工具 Ambari和Cloudera Manager。它们集安装,配置,监控于一身,对于Hadoop的初学者可以起到很好的帮助作用。这篇文章就对Ambari着重介绍一下,看一下它相关的一些架构,对于后面我们自己开发基于Apache Hadoop发行版的自动安装服务有帮助。
关于Ambari的简介和安装大家可以看这篇文章:Ambari——大数据平台的搭建利器
Ambari拥有很多的功能,它的大部分功能都是基于一些优秀的开源项目,Ambari充分的将它们结合起来从而实现在分布式环境中的集群式服务管理能力,监控能力,展示能力等等。
比如服务的管理(安装,卸载,更新等等)是基于puppet。puppet是一个非常成熟和优秀的运维工具,而监控部分除了JMX相关的还利用了Nagios和Ganglia等监控项目。
Ambari框架是Server/Client模式。
其中Ambari Server除了基本的用户,组,集群信息管理之外,还提供了Rest API,一部分是接受Ambari Client发送的心跳请求以及各种数据采集信息,一部分是监控管理功能。通过Rest API可以让我们更加简洁愉快的操作Ambari。
图片描述而Ambari Client 负责采集节点相关信息且发送心跳给Ambari Server,同时还需要执行来自Ambari Server的命令(诸如程序安装和服务启动终止等)
图片描述Ambari将所有的服务都抽象成资源,这使得它非常容易扩展,扩展自定义Service详细介绍大家可以看一下:扩展Ambari管理一个自定义的Service ,这个里面自定义Service小结讲的非常详细。这里就不赘述了。
之所以对Ambari的架构进行了解是为了帮助我们去设计我们自己的Hadoop集群安装服务,那么如果我们需要做一个类似的集群管理服务,那么我们都需要哪些功能?该怎样设计呢?