zoukankan      html  css  js  c++  java
  • Ambari源代码分析之总览

    一、基本概念:

    1. Resource:Ambari把能够被管理的资源的抽象为一个Resource实例,资源能够包括服务、组件、主机节点等,一个resource实例中包括了一系列该资源的属性;
    2. Property:服务组件的指标名称;
    3. ResourceProvider和PropertyProvider分别相应Resource和Property的提供方,获取指标须要先获取Resource,然后获取Property相应的metric;
    4. Query:Query是Resource的内部对象,代表了对该资源的操作;
    5. Request:一个Request代表了对Resource的操作请求,包括http信息及要操作的Resource的实例,Request依照http的请求方式分为四种:GET、PUT、DELETE、POST;
    6. Predicate:一个Predicate代表了一系列表达式,如and、or等;

    二、源码结构:

    1. org.apache.ambari.server.api.services:对web接口的入口方法,处理/api/v1/*的请求;
    2. org.apache.ambari.server.controller:对Ambari中cluster的管理操作,如新增host,更新service、删除Component等;
    3. org.apache.ambari.server.controller.internal:主要存放ResourceProvider和PropertyProvider;
    4. org.apache.ambari.server.orm.*:数据库操作相关;
    5. org.apache.ambari.server.agent.rest:处理与Agent的接口的入口方法;

    三、获取指标流程:

    1. jersy接口接收到请求,创建一个ResourceInstance实例;
    2. 解析http请求构造一个Request对象,然后交给reques的process()方法来处理;
    3. reques解析url或http_body得到一个Predicate对象;
    4. 依据http类型获取handler,GET请求相应ReadHandler;
    5. handler向Query对象中加入�分页、Render、Predicate等属性后,然后让query.execute();
    6. 依据Resource.Type获得相应的ResourceProvider对象,调用其getResources方法得到Set<Resource>;
    7. 调用相应的PropertyProvider填充Resource;
    8. 处理结果,放回json结果


  • 相关阅读:
    还没解决的问题
    USACO 1.41 The clocks
    USACO Broken Necklace
    hdu 3265 Posters
    USACO1.52 Prime Palindromes
    hdu 3068 && pku 3974 (最长回文串)(Manacher 算法)
    USACO Calf Flac
    USACO Milking Cows
    旧版RTSP协议网页视频无插件直播EasyNVR视频平台为什么无法播放H264编码视频?
    mysql的基本查询
  • 原文地址:https://www.cnblogs.com/blfshiye/p/3787230.html
Copyright © 2011-2022 走看看