天天看點

007-Ambari二次開發之棧名修改

在介紹如何修改棧名稱之前,我們先要了解一下stack的相關概念及在什麼情況下需要修改棧名稱。

掃描二維碼,關注BearData,擷取最新文章

007-Ambari二次開發之棧名修改

Ambari-stack 表示HDP的某個發行版本,例如HDP-1.0.0,在用ambari建立一個叢集時,首先要通過調用restfulAPI設定stack版本

stack下包含一個或多個service,例如HDP-2.6.2下包括 ZOOKEEPER,HDFS,YARN等

單個service下通過配置service下的metainfo.xml來設定構成服務的component(元件)以及部署元件的部署腳本、運作元件的角色名稱、部署腳本的檔案名稱、部署腳本的語言種類等資訊

stack下package/script/ 存放agent操作相關component(元件)的腳本,ambari-agent會根據腳本的函數名稱調用腳本的對應函數

stack版本可以通過metainfo.xml設定繼承關系。例如HDP-2.6繼承了HDP-2.5的各個服務

使用場景:當我們需要建構屬于自己版權的資料平台,定制化資料平台或資料平台作為産品時,修改棧名是有必要的。

Ambari源碼中為我們提供了修改棧名的腳本

007-Ambari二次開發之棧名修改

所有的代碼都在ambari-common子產品的pluggable_stack_definition目錄下

configs目錄下是用來定義棧名稱,繼承關系,棧中所包含的service等

resources目錄,自定義棧名目錄,cust_stack_map.js配置自定義棧名的版本範圍,custom-ui.less和custom-admin-ui.css配置樣式

GenerateStackDefintion.py是用來生成新棧的主腳本

執行指令 python GenerateStackDefintion.py -c ./configs/BDP.json -r ../../../../../ambari-server/src/main/resources/ -o ./BDP

參數說明: -c 表示指定的皮遏制檔案 -r 表示指定的resource目錄 -o 表示輸出目錄

我們以生成BDP(Bear data platform)為例來說明如何生成新棧

1. 在configs目錄下建立BDP.json,并配置版本,版本依賴,包含的service

007-Ambari二次開發之棧名修改

2. 在resource 目錄下建立BDP目錄,在custom_stack_map.js中配置版本資訊,最小版本,最大版本

007-Ambari二次開發之棧名修改

3. 執行生成腳本

007-Ambari二次開發之棧名修改

4. 将生成的BDP目錄拷貝到ambari-server 子產品的 resource/statcks目錄下,重新編譯,打包,安裝

以上就是Ambari中如何修改棧名,下一篇我們将介紹如何在Ambari中添加自定義元件。