zoukankan      html  css  js  c++  java
  • 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 扩展名,否则照样不会提示用户更新。

  • 相关阅读:
    《软件需求十步走》读书笔记二
    《软件需求十步走》读书笔记一
    FJUTOJ-周赛2016-12-16
    FJUTOJ-周赛2016-11-25
    网络爬虫
    树链剖分讲解
    HDU 5266 pog loves szh III
    HDU 3518 Boring counting
    HDU 5929 Basic Data Structure
    HDU 1055 Color a Tree
  • 原文地址:https://www.cnblogs.com/basenet855x/p/6824639.html
Copyright © 2011-2022 走看看