Ambari Server 配置修改流程


一、前端通過 Rest 接口提交配置修改請求:

接口:[PUT]   /api/v1/clusters/{clustername}

請求:

[
  {
    "Clusters": {
      "desired_config": [
        {
          "type": "zoo.cfg",
          "tag": "version1488444158642",
          "properties": {
            "autopurge.purgeInterval": "24",
            "autopurge.snapRetainCount": "30",
            "clientPort": "2181",
            "dataDir": "/data01/hadoop/zookeeper",
            "initLimit": "10",
            "syncLimit": "5",
            "tickTime": "2000"
          },
          "service_config_version_note": "Initial configurations for ZooKeeper"
        }
        ...
      ]
    }
  }
]

 

二、服務端操作數據庫
1、clusterconfig 表記錄(參考 Ambari Server 配置多版本功能實現分析
2、serviceconfig 表記錄(參考 Ambari Server 配置多版本功能實現分析
3、serviceconfigmapping 表記錄(參考 Ambari Server 配置多版本功能實現分析
4、clusterconfigmapping 表記錄,標記當前期望的配置

 

三、周期性判斷:期望配置和實際配置是否一致,如不一致則提示用戶更新

期望配置:clusterconfigmapping 表,selected=1 的記錄為 當前期望的配置

實際配置:存儲在 Agent 端 /var/lib/ambari-agent/data/ 目錄下,Agent 通過心跳 ComponentStatus 字段,匯報當前主機的實際配置

 

注意點:

1、期望配置和實際配置的對比邏輯:ConfigHelper.java 類的 isStaleConfigs()方法

2、集成服務文件 metainfo.xml 的 configuration-dependencies 配置項,如:

<configuration-dependencies>
       <config-type>hdfs-core-site</config-type>
</configuration-dependencies>

只有在 configuration-dependencies 中定義的配置文件,修改之后才會提示用戶更新。而且 config-type 字段填寫配置文件名的時候,不要加 .xml 擴展名,否則照樣不會提示用戶更新。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM