第一講:自定義服務整合原理講解
之前,在 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 開發的自定義服務指令碼就會放到這個目錄下。
將自定義服務放到指定目錄下,我們需要重啟 ambari server 才能在 新增服務 介面載入出來我們的自定義服務,ambari 在安裝自定義服務的過程中,也會將 python 開發的自定義服務指令碼分發到 agent 節點上,由 agent 節點的 自定義服務指令碼 來執行 安裝、部署 步驟。
等通過 ambari 安裝自定義服務之後,ambari 會在資料庫(比如 mysql)相關表裡將自定義服務相關資訊進行儲存,和記錄其它 hdp 服務一樣的邏輯。
三、微觀瞭解自定義服務整合原理
一個自定義服務暫且將它定義為一個專案,專案名稱須為大寫,使用 python 編寫。該專案框架有那麼幾個必不可少的檔案或目錄,分別是:
-
metainfo.xml 檔案:描述了對整個專案的約束配置,是一個 核心 檔案。
-
configuration 目錄:裡面放置一個或多個 xml 檔案,用於將該服務的配置資訊展示在前端頁面,也可以在ambari 頁面上對服務的一些配置做更改,如下圖所示:
-
package 目錄:裡面包含 scripts 資料夾,該目錄下存放著 python 檔案,用於對服務的安裝、配置、啟動、停止等操作。自定義服務 python 指令碼依賴的模組是 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 的專案框架:
四、課程宣傳
ambari 自定義服務整合的細節有很多,但是官方網站上並沒有太多的篇幅去介紹這一塊知識,只能自己慢慢摸索。幸虧有公司的支援和個人的努力,我已經將 自定義服務 的大部分知識點掌握,特繪製相關的知識腦圖,具體如下:
目前已將第一講作為課程公開課上傳到了 bilibili 視訊平臺,視訊連結見上圖綠框內容。
後面我會利用業餘時間將上述腦圖中的 14 項錄製成視訊,節約大家學習成本。如果大家有這方面的需求,可以關注我的公眾號留言,或加我好友諮詢。
目前已整理好的筆記, 如下圖所示:
錄製好的視訊, 如下圖所示:
相關文章
- (第五講)自定義Spring Boot StarterSpring Boot
- Fedora 16自定義開機執行指令碼講解指令碼
- CSS人人都能寫自定義Checkbox(+1白話講解)CSS
- EarthChat SignalR原理講解SignalR
- Portworx on OpenShift 原理講解
- Spring Boot整合 Geodesy講解Spring Boot
- Laravel 服務容器、服務提供器、契約例項講解Laravel
- SpringCloudAlibaba 微服務講解(三)Nacos Discovery-服務治理SpringGCCloud微服務
- 講講Handler實現原理
- 講一講應用服務的新鮮事兒
- Retrofit2與服務端例項講解服務端
- SpringCloudAlibaba 微服務講解(四)Sentinel--服務容錯(二)SpringGCCloud微服務
- SpringCloudAlibaba 微服務講解(四)Sentinel--服務容錯(一)SpringGCCloud微服務
- 第一講
- JVM原理講解和調優JVM
- Jaskson精講第6篇-自定義JsonSerialize與DeserJSON
- 機器學習十講-第一講機器學習
- 詳細講解函式呼叫原理函式
- 從零講解搭建一個NIO訊息服務端服務端
- springboot之Druid連線池講解+mybatis整合+PageHelper整合Spring BootUIMyBatis
- 課程講義
- 自定義元件服務註冊配置元件
- Windows如何安裝自定義服務Windows
- angular6自定義服務serviceAngular
- mysql的主從複製 原理講解MySql
- 瘋狂ajax講義
- 精講Redis服務架構分析與搭建Redis架構
- MySQL講義第8講——資料更新之 DELETEMySqldelete
- 全方位講解 Nebula Graph 索引原理和使用索引
- Hadoop 學習系列(四)之 MapReduce 原理講解Hadoop
- 初步講解JS中的callback回撥原理JS
- wordpress外掛開發01-原理講解
- Android自定義View整合AndroidView
- Go 武林外傳 - 解鎖 Micro 新姿勢之自定義服務Go
- Flutter-BLoC-第一講FlutterBloC
- 相親專案講課(講解)
- SpringCloudAlibaba 微服務講解(二)微服務環境搭建SpringGCCloud微服務
- VUE_入門講義Vue