玩轉ambari之一----ambari原理和架構
Ambari 跟 Hadoop 等開源軟體一樣,也是 Apache 基金會的一個頂級專案。目前最新的釋出版本是 2.5.2。就 Ambari 的作用來說,就是建立、管理、監視 Hadoop 的叢集,但是這裡的 Hadoop 是廣義,指的是 Hadoop 整個生態圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而並不僅是特指 Hadoop。並且,Ambari 現在所支援的平臺元件也越來越多,例如流行的 Spark,Storm 等計算框架,以及資源排程平臺
YARN 等,我們都能輕鬆地通過 Ambari 來進行部署和監控。用一句話來說,Ambari 就是為了讓 Hadoop 以及相關的大資料軟體更容易使用的一個工具。
Ambari 自身也是一個分散式架構的軟體,主要由兩部分組成:Ambari Server 和 Ambari Agent。簡單來說,使用者通過 Ambari Server 通知 Ambari Agent 安裝對應的軟體;Agent 會定時地傳送各個機器每個軟體模組的狀態給 Ambari Server,最終這些狀態資訊會呈現在 Ambari 的 GUI,方便使用者瞭解到叢集的各種狀態,並進行相應的維護。
基本架構如圖:
Ambari Server 會讀取 Stack 和 Service 的配置檔案。當用 Ambari 建立叢集的時候,Ambari Server 傳送 Stack 和 Service 的配置檔案以及 Service 生命週期的控制指令碼到 Ambari Agent。Agent 拿到配置檔案後,會下載安裝公共源裡軟體包(Redhat,就是使用 yum 服務)。安裝完成後,Ambari Server 會通知 Agent 去啟動 Service。之後 Ambari Server 會定期傳送命令到 Agent 檢查 Service 的狀態,Agent 上報給 Server,並呈現在 Ambari 的 GUI 上。
Ambari Server 支援 Rest API,這樣可以很容易的擴充套件和定製化 Ambari。甚至於不用登陸 Ambari 的 GUI,只需要在命令列通過 curl 就可以控制 Ambari,以及控制 Hadoop 的 cluster。具體的 API 可以參見 Apache Ambari 的官方網頁 API reference。
對於安全方面要求比較苛刻的環境來說,Ambari 可以支援 Kerberos 認證的 Hadoop 叢集。
更詳細的架構瞭解,可參考:http://www.toxingwang.com/hadoop/2356.html