作者:Eric Lin (林晨辉), Cloudera高级售后技术支持工程师。毕业于Monash大学计算机科学, Sir John Monash的奖学金获得者。曾就业于数据收集公司如Hitwise(现为Experian的子公司)和Effective Measure,担任高级工程师,负责设计,开发和管理用于采集, 处理和报告网络数据的平台(基于PHP,Java和CDH)。现任职Cloudera, 担任高级售后技术支持工程师,主要擅长解决在CDH生态系统中出现的各种疑难杂症。
最近一段时间我与印度同事在做一些培训内容,内容主要涉及Cloudera Manager与CDH如何进行通信,以及CM如何监控CDH的相关服务,接下来我会分享一些相关内容,以便CM/CDH的新手可以从中获益。我将这些内容拆成了几篇文章,这样每篇文章看上去不至于太长。在这第一篇文章中,我会简要说明Service Monitoring (SMON)和Host Monitoring (HMON)如何与CM/CDH一起工作。
如上图所示,我将所有CDH服务都放在一个节点中,并且全部由一个CM Agent管理,这样可以减少每个组件之间的连接线,以方便阅读。
在深入介绍这个图之前,我先解释一下图中各个组件的具体作用。
CM Server
它是Cloudera Manager的重要组成部分,它主要有以下作用:
- 将集群的运行状态保存到数据库
- 将每个组件的配置信息保存到数据库
- 提供Cloudera Manager API
- 提供Cloudera Manager Web UI
- 管理Cloudera Manager Agent进程的心跳
- 与各种Cloudera Management Services进行通信以提供以下功能:
- 生成告警信息
- 告警
- 显示图表
- 触发命令
- etc…
CM Agent
每个受Cloudera Manager管理的节点上都会有这个服务,它的主要作用是:
- 通过supervisord启动或停止进程
- 解压缩配置并在每个主机上部署
- 触发安装
- 监控主机
Service Monitor (SMON)
它的主要作用是:
- 收集有关服务的健康状况和指标信息,并在CM的Web UI上进行展示。
- 从YARN服务中收集活动信息,以便在CM的Web UI上显示YARN的作业列表。
- 从Impala服务中收集活动信息,以便在CM的Web UI上显示Impala的作业列表。
Host Monitor (HMON)
它的主要作用是:
- 收集有关主机的健康状况和指标信息,并在CM的Web UI上进行展示。
现在让我们回到之前那张图来看看服务之间具体如何通信以及工作的。
你可以看到在每个运行CDH组件的主机上都会安装CM agent,这些主机都会受Cloudera Manager管理。agent会跟踪主机上运行的所有进程比如NameNode,ResourceManager,JobHistory Server等。这是通过supervisord来实现的,supervisord是Cloudera Manager集成的第三方组件,讨论supervisord超过了本文的范围,具体参考:
代码语言:javascript复制http://supervisord.org/introduction.html
默认每15秒CM agent会向CM server发送一次心跳,这样CM server就会一直知道这些主机上发生了什么。例如,在某些主机上触发的诸如启动,停止或重启服务之类的动作将作为心跳的一部分发送到CM服务器,CM会将这些信息记录更新到后端的数据库,同时会发送新的指令到agent以告诉其下一步要做什么。
CM server会将所有的数据都保存到数据库中,包括每个组件的配置,每个服务和主机的状态等。大多数CM/CDH用户都会使用MySQL,PostgreSQL或Oracle作为后端的数据库,因为这几个都是被广泛使用的关系型数据库。
CM agent还会定期将主机和服务状态发送到Host Monitor和Service Monitor,这样CM就可以记录健康状态并在其Web UI上显示。如果检测到任何异常状态,CM中会触发告警并通知用户。
以上是对Cloudera Management Service介绍的第一部分,请持续关注作者后续的文章,原文参考:
代码语言:javascript复制https://www.ericlin.me/2019/11/introduction-to-cloudera-management-services-part-1/