CM
CM用keepalived做高可用,以后访问CM都访问VIP:7180(以下称为CM_VIP),Agent端指定配置文件为CM_VIP,这样就能实现统一时刻只有一个cm能访问。
MySQL高可用实现:
MySQL做成主主模型用一个VIP,两个cm分别指向msyql VIP。
高可用实现:
注:生产CM和MySQL均在一个节点,实时cdh集群MySQL使用了VIP,批处理的MySQL没有使用VIP。
CM主备模式(高可用)演练测试
模拟环境
测试环境:
11.113.3.11-13 VIP:11.113.3.14
11.113.3.11-12 CM Server、
MySQL
注:CM和MySQL部署一起,MySQL双主模式,使用共同VIP
模拟场景
正常主机A(11.113.3.11)节点宕机,且短时间无法恢复,此时VIP切到主机 B节点(11.113.3.12)
1.1) 将CM配置VIP,VIP访问CM检查是否正常
Cm访问正常
1.2) 所有Agent节点均配置CM VIP访问,重启所有Agent,检查CM组件访问是否正常,并测试重启组件。
Cm访问正常
测试重启一个datanode和nodemanager --正常
1.3) 停止A主机的keepalived和CM(模拟主机A宕机CM无法访问), 检查VIP是否漂移到B主机。
注意:keepalived需要配置漂移启动CM服务,这里先手动启动CM B
1.4) VIP访问CM检查是否正常(需要重启CM Serice),重启组件检查,检查MySQL互为主从复制情况
注意:切换VIP后,CM数据库是根据主机名来进行访问,故需要重启CM Server,重启后即可恢复正常。
Cm访问正常
测试重启一个datanode和nodemanager --正常
MySQL的互为主从复制检查 --正常(检查keepalived是通过MySQL判断VIP的,和MySQL宕机还是有区别的)
1.5) A恢复后,检查VIP,观察组件是否正常,MySQL是否正常。
演练总结
1、 通过VIP的方式可以实现CM的主备访问,功能正常
2、 Keepalived的VIP漂移需要合理规划,否则当A主机启动后,VIP需要控制落到哪个节点,且漂移VIP的时候需要把cm server启动。
3、 如果CM(客户端监控必须和cm分离)能够和MySQL分离,风险性更小。(生产还需要考虑zabbix监控问题)