007-Ambari二次開發之棧名修改
在介紹如何修改棧名稱之前,我們先要了解一下stack的相關概念及在什麼情況下需要修改棧名稱。
掃描二維碼,關注BearData,獲取最新文章
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原始碼中為我們提供了修改棧名的指令碼
所有的程式碼都在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
2. 在resource 目錄下新建BDP目錄,在custom_stack_map.js中配置版本資訊,最小版本,最大版本
3. 執行生成指令碼
4. 將生成的BDP目錄拷貝到ambari-server 模組的 resource/statcks目錄下,重新編譯,打包,安裝
以上就是Ambari中如何修改棧名,下一篇我們將介紹如何在Ambari中新增自定義元件。