Ambari Server 配置组功能实现分析
配置组是为了实现不同主机、不同配置这个功能。
配置组 表关系图:
configgroup:配置组的基本信息
configgrouphostmapping:配置组对应的主机
confgroupclusterconfigmapping: 配置组对应的配置
clusterconfig:配置文件表
举一个例子:
configgroup 表:
configgrouphostmapping 表:
confgroupclusterconfigmapping 表:
clusterconfig 表:
有一个服务 TestService,安装在3台主机,主机ID分别为1、2、3,我们想让主机1、3和2的配置不一样,应该如何做?
每个服务都有一个默认配置组,最初大家都属于默认配置组,实现上面的需求,需要再创建一个配置组:
创建一个配置组:configgroup 添加一行记录:group_id=2
配置组关联的主机:configgrouphostmapping 添加两行记录:config_group_id=2 对应两个 host_id,1和3
配置组关联的配置:confgroupclusterconfigmapping 添加一行记录:config_group_id 对应一个 version_tag
这里需要注意的是,配置组在 clusterconfig 表的 config_data 只保存修改的配置项,其他配置项,和默认配置组保持一致。