初識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 上。



免責聲明!

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



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