ambari自定義服務乾貨

        “ 本文介紹如何設置ambari的各服務啓動順序

聲明:博主寫了一些Ambari自定義服務系列文章,可以在歷史文章中查看。 仔細看,肯定會對ambari的自定義服務有一個更清晰的認識。 引言:ambari平臺系統上的服務有很多,衆所周知,每一個服務都是由各個組件所組成。如果我點擊頁面上的 啓動/停止全部服務 或者 啓動/停止單個服務,各個組件之間的啓動停止順序是怎麼設置的呢?本篇內容爲你解除心中的疑問

一、Role Command Order

角色是組件的另一個名稱(例如:NAMENODE,DATANODE,RESOURCEMANAGER,HBASE_MASTER等)。 顧名思義,可以告訴Ambari關於應該爲堆棧中定義的組件運行命令的順序。 例如:“應在啓動NameNode之前啓動ZooKeeper服務器”。或者“只有在NameNode和DataNodes啓動後才能啓動HBase Master”。 這可以通過在stack-version文件夾中包含role_command_order.json文件來指定。

在Ambari的Service目錄中,存在很多個叫做role_command_order.json的配置文件。這個文件中定義了Service狀態以及Action的依賴。

resource目錄下的role_command_order.json定義着全局的的依賴。每個Stack目錄下也會存在role_command_order.json。相同的配置,Stack下面的會覆蓋全局的。不同的配置,Ambari會拼接在一起。高版本的Stack會繼承低版本的配置。相同的也會overwrite,不同的merge。

二、Format

該文件以JSON格式指定,包含一個JSON對象。在每個section對象中,鍵描述了依賴的component-action,值列出了應該在它之前完成的component-actions。

{
  "_comment": "Section 1 comment",
  "section_name_1": {
    "_comment": "Section containing role command orders",
    "<DEPENDENT_COMPONENT_1>-<COMMAND>": ["<DEPENDS_ON_COMPONENT_1>-<COMMAND>", "<DEPENDS_ON_COMPONENT_1>-<COMMAND>"],
    "<DEPENDENT_COMPONENT_2>-<COMMAND>": ["<DEPENDS_ON_COMPONENT_3>-<COMMAND>"],
    ...
  },
  "_comment": "Next section comment",
  ...
}

三、Sections

Section Name

When Used

general_deps

命令順序適用於所有情況

optional_glusterfs

當集羣沒有GLUSTERFS服務實例時,將應用命令順序

optionalnoglusterfs

當集羣具有GLUSTERFS服務的實例時,將應用命令順序

namenodeoptionalha

安裝HDFS服務且存在JOURNALNODE組件時啓用命令順序(啓用HDFS HA)

resourcemanageroptionalha

安裝YARN服務時存在命令順序,並且存在多個RESOURCEMANAGER主機組件(啓用了YARN HA)

四、COMMAND

Ambari目前支持的命令是

  • INSTALL
  • UNINSTALL
  • START
  • RESTART
  • STOP
  • EXECUTE
  • ABORT
  • UPGRADE
  • SERVICE_CHECK
  • CUSTOM_COMMAND
  • ACTIONEXECUTE

舉例:

Role Command Order

Explanation

"HIVEMETASTORE-START": ["MYSQLSERVER-START", "NAMENODE-START"]

在啓動Hive Metastore之前啓動MySQL和NameNode組件

"MAPREDUCESERVICECHECK-SERVICE_CHECK": ["NODEMANAGER-START", "RESOURCEMANAGER-START"],

MapReduce服務檢查需要ResourceManager和NodeManagers啓動

"ZOOKEEPERSERVER-STOP" : ["HBASEMASTER-STOP", "HBASEREGIONSERVER-STOP", "METRICSCOLLECTOR-STOP"],

在停止ZooKeeper服務器之前,請確保已停止HBase Masters,HBase RegionServers和AMS Metrics Collector。

"ELASTICSEARCHSERVICE-START": ["METRICSCOLLECTOR-START", "METRICSMONITOR-START", "METRICSGRAFANA-START"]

當啓動metrics和ES組件時,metrics組件啓動在前,ES組件在後

"ELASTICSEARCHSERVICECHECK-SERVICECHECK": ["ELASTICSEARCHSERVICE-START"]

ES check操作在ES start操作之後

"-": ["-", "-"]

組件名-命令

五、實例

{
  "general_deps" : {
    "_comment" : "dependencies for elasticsearch",
    "ELASTICSEARCH_SERVICE-START": ["METRICS_COLLECTOR-START", "METRICS_MONITOR-START", "METRICS_GRAFANA-START"],
	"ELASTICSEARCH_SERVICE-RESTART": ["METRICS_COLLECTOR-START", "METRICS_MONITOR-START", "METRICS_GRAFANA-START"],
    "ELASTICSEARCH_SERVICE_CHECK-SERVICE_CHECK": ["ELASTICSEARCH_SERVICE-START"]
  }
}

說明:在執行key命令之前,請先確保value項都被執行。

在執行 ELASTICSEARCH_SERVICE啓動之前,啓動 METRICS_COLLECTORMETRICS_MONITORMETRICS_GRAFANA

在執行 ELASTICSEARCH_SERVICE重啓之前,啓動 METRICS_COLLECTORMETRICS_MONITORMETRICS_GRAFANA

在執行 ELASTICSEARCH_SERVICE檢查操作在 ELASTICSEARCH_SERVICE開始操作之後。

六、參考資料

【1】:https://cwiki.apache.org/confluence/display/AMBARI/How-To+Define+Stacks+and+Services#How-ToDefineStacksandServices-RoleCommandOrder


更多精彩乾貨內容,請關注微信公衆號實時查看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章