在介紹如何修改棧名稱之前,我們先要了解一下stack的相關概念及在什麼情況下需要修改棧名稱。
掃描二維碼,關注BearData,擷取最新文章
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TPnJGc4JjYqRWbiZHbHVmb1cVWvB3MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TO0ETMxkTM4ADNygDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
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中添加自定義元件。