第一講:自定義服務整合原理講解

create17發表於2020-10-24

之前,在 github 上開源了 ambari-Kylin 專案,可離線部署,支援 hdp 2.6+ 及 hdp 3.0+ 。github 地址為:https://github.com/841809077/ambari-Kylin ,歡迎 star 。

這段時間,陸續有不少朋友通過公眾號聯絡到我,問我相關的整合步驟。今天正好休息,索性將 ambari 自定義服務整合的原理給大家整理出來。

B 站搜:create17

它其實不難,但是網路上並沒有多少這方面的資料分享,官方也很少,所以學習門檻就稍微高了一些。但你如果能持續關注我,我相信您能快速上手。

一、簡述 ambari

ambari 是一個視覺化管理 Hadoop 生態系統的一個開源服務,像 hdfs、yarn、mapreduce、zookeeper、hive、hbase、spark、kafka 等都可以使用 ambari 介面來統一安裝、部署、監控、告警等。

對於未受 ambari 介面管理的服務,比如 Elasticsearch、Kylin、甚至是一個 jar 包,都可以利用 自定義服務整合相關技術 將 服務 整合到 ambari 介面裡。這樣,就可以通過 ambari 實現對 自定義服務 的 安裝、配置、啟動、監聽啟動狀態、停止、指標監控、告警、快速連結 等很多操作,極其方便。

二、巨集觀瞭解自定義服務整合原理

對於安裝過 ambari 的朋友可能比較熟悉,我們在部署 hdp 叢集的時候,在介面上,會讓我們選擇 hdp stack 的版本,比如有 2.0、… 、2.6、3.0、3.1 等,每一個 stack 版本在 ambari 節點上都有對應的目錄,裡面存放著 hdp 各服務,像 hdfs、yarn、mapreduce、spark、hbase 這些,stack 版本高一些的,服務相對多一些。stack 版本目錄具體在 ambari-server 節點的 /var/lib/ambari-server/resources/stacks/HDP 下,我們用 python 開發的自定義服務指令碼就會放到這個目錄下。

server節點上的stack版本目錄

將自定義服務放到指定目錄下,我們需要重啟 ambari server 才能在 新增服務 介面載入出來我們的自定義服務,ambari 在安裝自定義服務的過程中,也會將 python 開發的自定義服務指令碼分發到 agent 節點上,由 agent 節點的 自定義服務指令碼 來執行 安裝、部署 步驟。

agent節點上的stack版本目錄

等通過 ambari 安裝自定義服務之後,ambari 會在資料庫(比如 mysql)相關表裡將自定義服務相關資訊進行儲存,和記錄其它 hdp 服務一樣的邏輯。

三、微觀瞭解自定義服務整合原理

一個自定義服務暫且將它定義為一個專案,專案名稱須為大寫,使用 python 編寫。該專案框架有那麼幾個必不可少的檔案或目錄,分別是:

  • metainfo.xml 檔案:描述了對整個專案的約束配置,是一個 核心 檔案。

  • configuration 目錄:裡面放置一個或多個 xml 檔案,用於將該服務的配置資訊展示在前端頁面,也可以在ambari 頁面上對服務的一些配置做更改,如下圖所示:

  • package 目錄:裡面包含 scripts 資料夾,該目錄下存放著 python 檔案,用於對服務的安裝、配置、啟動、停止等操作。自定義服務 python 指令碼依賴的模組是 resource_management 。該模組分佈在不同的目錄下,但內容是一致的,如下圖所示:

    resource_management模組位置分佈

    resource_management模組詳情目錄

除了上述必不可少的目錄或檔案之外,還有一些檔案可以豐富我們自定義服務的功能。比如:

  • alerts.json 檔案:描述 ambari 對服務的 告警 設定。告警型別有 WEB、Port、Metric、Aggregate 和 Script ,如下圖所示:

  • quicklinks.json 檔案:用於生成快速連結,實現 url 的跳轉。可支援多個 url 展示。

  • role_command_order.json 檔案:決定各個服務元件之間的啟動順序,詳情可參考:https://841809077.github.io/2018/09/26/role_command_order.html

如下圖所示,這是自定義服務 KYLIN 的專案框架:

kylin的自定義服務框架

四、課程宣傳

ambari 自定義服務整合的細節有很多,但是官方網站上並沒有太多的篇幅去介紹這一塊知識,只能自己慢慢摸索。幸虧有公司的支援和個人的努力,我已經將 自定義服務 的大部分知識點掌握,特繪製相關的知識腦圖,具體如下:

目前已將第一講作為課程公開課上傳到了 bilibili 視訊平臺,視訊連結見上圖綠框內容。

後面我會利用業餘時間將上述腦圖中的 14 項錄製成視訊,節約大家學習成本。如果大家有這方面的需求,可以關注我的公眾號留言,或加我好友諮詢

目前已整理好的筆記, 如下圖所示:

錄製好的視訊, 如下圖所示:


相關文章