背景
最近在做关于Hadoop集群的可视化部署相关的调研,发现了Ambari这个有趣的东西,在使用的过程中,整理了一部分功能列表,在此分享。欢迎光顾 我的博客
Ambari简介
Ambari是Hortonworks开源的Hadoop平台的管理软件,具备Hadoop组件的安装、管理、运维等基本功能,提供Web UI进行可视化的集群管理,简化了大数据平台的安装、使用难度。
功能列表
操作级别:
- Host Level Action(机器级别的操作)
- Component Level Action(模块级别的操作)
基于角色的用户管理,角色分为:
- Cluster User。 查看集群和Service的信息,如配置、service状态、健康状态等。Read-only
- Service Operator。 能够操作Service的生命周期,如启动,停止,也可以进行一些如Rebalance DataNode和YARN refresh的操作
- Service Administrator。 在Service Operator的基础上增加了配置service,移动NameNode,启用HA等操作
- Cluster Operator。 在Service Administrator的基础上增加了对hosts和components的操作,如增加,删除等
- Cluster Administrator。集群的超级管理员,拥有无上的权利,可以操作任何组件。
Dashboard 监控
- Roll Start功能。根据Service的依赖关系,按照一定的顺序启动每个Service。比如HBase依赖HDFS和Zookeeper,Ambari会先启动HDFS和Zookeeper,之后启动HBase。如图所示
- 关键的运维指标(metrics)–metrics 是“度量,指标”的意思
- 在左侧的 Service 列表,中间部分是 Service 的模块(Component)信息,也就是该 Service 有哪些模块及其数目。右上角有个 Service Action 的按钮,包括service的启动、停止、删除等操作。
- Quick links(导向组件原生管理界面)
- NameNode UI、ResourceManage UI、HBase Master UI
- http://unix191:50070/logs/ HDFS的NameNode的logs
- http://unix192:8088/logs/ YARN的ResourceManage 的logs
- http://unix191:16010/logs/ Hbase的logs
Alert介绍
- Alert 告警级别 Status:
OK 、Warning、Critical、Unknown、None - Alert 告警类型:
WEB、Port、Metric、Aggregate 和 Script - 表 1. Ambari 中的 Alert 类型对比
类型 | 用途 | 告警级别 | 阀值是否可配置 | 单位 |
---|---|---|---|---|
PORT | 用来监测机器上的一个端口是否可用 | OK, WARN, CRIT | 是 | 秒 |
METRIC | 用来监测 Metric 相关的配置属性 | OK, WARN, CRIT | 是 | 变量 |
AGGREGATE | 用于收集其他某些 Alert 的状态 | OK, WARN, CRIT | 是 | 百分比 |
WEB | 用于监测一个 WEB UI(URL)地址是否可用 | OK, WARN, CRIT | 否 | 无 |
SCRIPT | Alert 的监测逻辑由一个自定义的 python 脚本执行 | OK, CRIT | 否 | 无 |
Hadoop代表组件功能说明
1)HDFS
- 启动、停止、重启HDFS,也支持HDFS的删除,前提是删除依赖HDFS的其他service
- 高级配置
支持对core-site.xml、hdfs-site.xml的高级配置 - 下载配置文件
- 状态查看
NameNode和SNameNode的健康状况以及所在的节点、硬盘使用率、块的状态(丢失、冲突的个数) - 文件查看
嵌入了HDFS原生的文件目录查看功能,没有一键上传、下载文件的功能 - 日志查看
日志查看可以通过QuickLinks中导向HDFS原生日志查看Web UI界面,没有经过界面的优化,日志查看也没有辅助功能(如检索) - 移动NameNode、SNameNode
- Rebalancing HDFS
使得DataNodes上的块分布均匀 - NameNode UI
通过QuickLinks导向HDFS原生UI - HA
一键配置NameNode的高可用,使用JournalNode、NFS为共享存储
2)Zookeeper
- 启动、停止、重启Zookeeper集群
- 状态查看
Zookeeper Server和Client的健康状况,所在的节点 - 高级配置
zoo.cfg、日志输出格式(log4j的配置) - 添加Zookeeper Server节点
- 下载配置文件
3)HBase
- 启动HBase集群,启动RegionServer,停止集群,删除HBase集群
- 添加HBase Master节点
- 状态查看
HBase Master、RegionServers的状态及其所处节点,master启动时间,平均负载(regions/regionsServer) - 高级配置
HBase Master、RegionServer、Client的内存限制、心跳时间等。可以启用Kerberos(前提是安装该Service),也可以开启Phoenix SQL - 日志查看
日志查看可以通过QuickLinks中导向原生日志查看Web UI界面 - Master UI界面
通过QuickLinks导向HDFS原生UI
4)Kafka
- Kafka的启动、停止、重启,Brokers的重启,Service的删除
- 高级配置
对Kafka Broker、Producer、Consumer的配置。Broker支持连接参数设置、Topic配置、日志配置等, - 状态查看
Broker的状态、所在节点位置,结合Ambari Metrics可以查看更多状态,如Topics、Controller、Replica
Ambari使用感想
Ambari通过HDP将Hadoop的组件进行集成,通过栈的形式提供Service的组合使用,它主要解决的问题如下:
- 简化了部署过程,在HDP栈中支持的Service只需要图形化的安装即可,可以方便的指定master所在的节点,使集群快速运行起来
- 通过Ambari Metrics实现集群状态的监控,并通过集成Grafana进行数据的展示(CPU、内存、负载等)
- Service的高级配置。集群部署之后,可以方便的通过dashboard进行参数的修改(如HDFS的core-site等)
- 快速链接。Ambari提供快速导向Hadoop组件原生管理界面的链接
- 节点的扩展。如HBase Master的增加。
- 可定制的Alert功能。Ambari的报警信息可以自定义,使得用户可以根据自己的需要,设置哪些情况下需要报警,哪些不需要。
- 增值功能。如HDFS的Rebalance DataNode、NameNode的HA等
- Ambari自身的用户管理,基于RBAC赋予用户对Hadoop集群的管理权限。角色分为
Ambari并没有对Hadoop组件进行过多的功能集成,如日志分析等,只是提供了安装,配置,启停等功能,尽量保持了跟原生Hadoop组件的隔离性,对于该组件的具体操作,通过Quick Links 直接导向原生的管理界面(如HBase Master UI),它的做法保持了对于Hadoop组件的低侵入性。