最近经常碰到ambari集群timeline server和ams-hbase 服务的一些问题,梳理了下这些服务之间的调用关系,留作笔记方便后续查阅
1. 目前笔者用到的hadoop组件版本如下
2. 调用关系如下图
3. 关于timeline server
有两个版本 v1.5和v2.0
3.1 目前v1.5为过渡期版本,但是也是生产中应用用的最多的组件,web端口8188
一般由tez任务app master中的ATSV15HistoryLoggingService 插件将counters推送到timeline server ,resourcemanager 也有实现一个TimelineClientImpl接口定时读写timelineserver 服务,没有细看应该是同步container任务的一些状态信息,目前timelinee server v1.5的数据存储在本地的leveldb上和 timeline server是同一个进程
3.2 v2.0是后续待完善的reader版本,目前集群应用还未大范围使用,web端口17010,17030
一般在resourcemanager 启动的时候自动加载 ats-hbase配置文件,并以任务的形式分别启动
ats-hmaster 和ats-regionserver 两个container,ats-hbase 的数据存储在hdfs 上 /atsv2/ 目录下
4. 关于ams-hbase,web端口61310,61330
hadoop集群所有组件服务中默认都有实现一个HadoopTimelineMetricsSink类,根据配置文件hadoop-metrics2.properties 指定的采集频率将采集到的服务指标定时推送到ambari-metrics-collector 应用,该应用负责将指标数据写入到ams-hbase,用户可以在grafana服务上查询到hadoop集群上组件的运行情况
目前ams-hbase 服务是单进程,融合了zookeeper,hmaster,regionserver,指标数据存储在本地,相对比较重。