• 初识ambari


    本文地址:http://www.cnblogs.com/qiaoyihang/p/6290467.html

    引用:http://blog.csdn.net/yeruby/article/details/51167868

    Ambari简介   

      ambari是一个拥有集群自动化安装,中心化管理,集群监控,报警等功能的一个工具,使得安装集群从几天的时间缩短到几个小时以内,运维人员大幅下降,极大的提高了集群的管理效率。
     
    1. 对外,Ambari提供ambari web,rest api,ambari shell三大方式操作机群;
    2. ambari将集群的配置、各个服务的配置等信息存在ambari server端的DB中(比如可以是postgresql);
    3. ambari server与ambari agent的交流走RPC,即agent向server报告心跳,server将command通过response发回给agent,agent本地执行命令,比如:agent端执行相应的python脚本;
    4. ambari有自己的一套监控、告警、镜像服务,以可插拔的形式供上层服务调用;
     

    Ambari的设计思想

    Ambari最重要的一块就是将各个Hadoop生态圈的组件抽象成一个个服务,Ambari Stack可以看成一个服务集合,比如,Ambari就使用了Hortonworks的Hortonworks Data Platform(HDP)来做为提供服务的服务栈。

    HDP和Ambari的关系

    hdp ( hodworks data platform)
    hdp 就是把hadoop 生态圈进行了二次开发,ambari 是对hdp进行集中化管理的一个工具
     
    Ambari Stack下面就对应了一个又一个Ambari Service,比如HDFS,那HDFS包含有不同的组件(Datanode,NameNode),这时Ambari又对其进行了抽象:

    一个Service由多个ServiceComponent构成,一个ServiceComponent由多个ServiceComponentHost构成:

    1. Service: HDFS, YARN, HBase, etc
    2. ServiceComponent: HDFS.NameNode, YARN.ResourceManager, HBase.RegionServer, etc
    3. ServiceComponentHost: HDFS.NameNode.HostA, YARN.ResourceManager.HostB, etc

    对应上面的三种资源,有三种操作:

    1. Operation: Service层面的操作(Install/Start/Stop/Config),一个Operation可以作用于一个或多个Service。
    2. Stage: ServicesComponent层面的操作,根据不同ServicesComponent操作间的依赖关系,一个Operation的所有Task可能被划分成多个Stage,一个Stage内的多个Task相互没有依赖,可以并行执行。
    3. Task: ServiceComponentHost层面的操作,为了完成一个Operation,需要为不同的机器分配一系列的Task去执行。

    需要特别说明的是操作的执行顺序:

    1. 不同的Stage只能顺序执行。后面的Stage只有在前面Stage执行成功后才会下发给Agent。如果前面Stage失败,后面的Stage将取消。
    2. 同一个Stage内的多个Task可以并行执行,可以同时下发给Agent。如果某个Task失败,其他的已下发且正执行的Task将被取消。
    3. 分配给同一个机器的不同Task只会顺序执行。


    下图描述了这三种资源与操作的对应关系:

    上述的三个操作抽象是定义态的描述,它们分别对应一个执行态的抽象:

    1. StagePlan: 执行态的Operation,是一个Stage DAG。
    2. Action: 执行态的Stage,由多个Command构成。
    3. Command: 执行态的Task,下发给具体的机器执行。主要有以下几种:
    1)、ExecuteCommand: 对服务组件执行INSTALL/START/STOP等操作。
    (2)、StatusCommand: 对服务组件执行死活检查(由Server定期下发)。
    (3)、CancelCommand: 取消其他已经下发的Task(当Stage中的某个Task失败时)。
    (4)、RegistrationCommand: 要求Agent向Server重新注册(当发现Server维护的心跳序号与Agent上报的不一致时)


    Ambari Server 会读取 Stack 和 Service 的配置文件。当用 Ambari 创建集群的时候,Ambari Server 传送 Stack 和 Service 的配置文件以及 Service 生命周期的控制脚本到 Ambari Agent。Agent 拿到配置文件后,会下载安装公共源里软件包(centos上面,就是使用 yum 服务)。安装完成后,Ambari Server 会通知 Agent去启动 Service。之后 Ambari Server 会定期发送命令到 Agent 检查 Service 的状态,Agent 上报给 Server,并呈现在 Ambari 的 GUI 上。


  • 相关阅读:
    JSP内置对象Session
    jsp 中对jar 包的引用
    Windows下AndroidStudio 中使用Git(AndroidStudio项目于GitHub关联)
    教你怎么使用Github for Windows?
    cannot run program "git.exe":CreateProcess error=2
    如何在Android Studio上使用Github
    怎么在Android studio配置Github账号
    js下读取input中的value值
    jQuery获取多种input值的方法
    Android studio 导入github工程
  • 原文地址:https://www.cnblogs.com/qiaoyihang/p/6290467.html
Copyright © 2020-2023  润新知