以前,在 github 上開源了 ambari-Kylin 項目,可離線部署,支持 hdp 2.6+ 及 hdp 3.0+ 。github 地址爲: https://github.com/841809077/... ,歡迎 star 。這段時間,陸續有很多朋友經過公衆號聯繫到我,問我相關的集成步驟。今天正好休息,索性將 ambari 自定義服務集成的原理給你們整理出來。html
它其實不難,可是網絡上並無多少這方面的資料分享,官方也不多,因此學習門檻就稍微高了一些。但你若是能持續關注我,我相信您能快速上手。前端
ambari 是一個可視化管理 Hadoop 生態系統的一個開源服務,像 hdfs、yarn、mapreduce、zookeeper、hive、hbase、spark、kafka 等均可以使用 ambari 界面來統一安裝、部署、監控、告警等。python
<!--more-->mysql
對於未受 ambari 界面管理的服務,好比 Elasticsearch、Kylin、甚至是一個 jar 包,均可以利用 自定義服務集成相關技術 將 服務 集成到 ambari 界面裏。這樣,就能夠經過 ambari 實現對 自定義服務 的 安裝、配置、啓動、監聽啓動狀態、中止、指標監控、告警、快速連接 等不少操做,極其方便。git
對於安裝過 ambari 的朋友可能比較熟悉,咱們在部署 hdp 集羣的時候,在界面上,會讓咱們選擇 hdp stack 的版本,好比有 2.0、... 、2.六、3.0、3.1 等,每個 stack 版本在 ambari 節點上都有對應的目錄,裏面存放着 hdp 各服務,像 hdfs、yarn、mapreduce、spark、hbase 這些,stack 版本高一些的,服務相對多一些。stack 版本目錄具體在 ambari-server 節點的 /var/lib/ambari-server/resources/stacks/HDP 下,咱們用 python 開發的自定義服務腳本就會放到這個目錄下。github
將自定義服務放到指定目錄下,咱們須要重啓 ambari server 才能在 添加服務 界面加載出來咱們的自定義服務,ambari 在安裝自定義服務的過程當中,也會將 python 開發的自定義服務腳本分發到 agent 節點上,由 agent 節點的 自定義服務腳本 來執行 安裝、部署 步驟。sql
等經過 ambari 安裝自定義服務以後,ambari 會在數據庫(好比 mysql)相關表裏將自定義服務相關信息進行保存,和記錄其它 hdp 服務同樣的邏輯。數據庫
一個自定義服務暫且將它定義爲一個項目,項目名稱須爲大寫,使用 python 編寫。該項目框架有那麼幾個必不可少的文件或目錄,分別是:json
除了上述必不可少的目錄或文件以外,還有一些文件能夠豐富咱們自定義服務的功能。好比:segmentfault
以下圖所示,這是自定義服務 KYLIN 的項目框架:
ambari 自定義服務集成的細節有不少,可是官方網站上並無太多的篇幅去介紹這一塊知識,只能本身慢慢摸索。幸好有公司的支持和我的的努力,我已經將 自定義服務 的大部分知識點掌握,特繪製相關的知識腦圖,具體以下:
後面我會利用業餘時間將上述腦圖中的 12 項錄製成視頻,節約你們學習成本。若是你們有這方面的需求,能夠關注個人公衆號,加我好友,一塊兒討論技術與人生。