最近因爲項目的須要在看一些Ambari的api去獲取集羣的一些信息,獲取集羣節點的狀態信息以及各個服務和組件的信息。而後在咱們的數據服務管理平臺上去作一些監控運維,如今把一些使用總結一下:
官網rest api地址:
https://cwiki.apache.org/confluence/display/AMBARI/
ambari api使對Hadoop集羣資源的管理和監控更加便利。文檔描述了ambari api的資源和語法,以方便於加入ambari的開發者。
(1)認證和受權
您執行的關於ambari api須要認證。接近api須要基礎認證。爲了使用基礎認證,您須要發送帶有「Authorization:base」頭部的請求。例如,當使用curl命令時能夠如此發送:
node
curl –user name:password http://{your.ambari.server}/api/v1/clusters
注意:認證方法和資源配置是在ambari server端。修改或是配置認證的方法並無包含在本文檔中。
(2)監控
ambari apid提供了監控和管理hadoop集羣的資源的指標信息。
【1】get
經過get方法能夠讀取到amabari資源的屬性、指標和下屬資源的等信息。調用Get方法返回請求資源並不產生反作用。返回值200表示請求已成功返回幷包含了響應內容
例如:獲取集羣「c1」的HDFS服務的組件datanode的信息:
apache
GET /clusters/c1/services/HDFS/components/DATANODE
(3)管理
amabri api包含了對hadoop集羣資源的管理。包括建立、刪除和資源升級。
【1】post
經過post方法能夠建立一個新資源。若是新資源被建立則返回值是201.返回值202表示請求已被服務器接受。
例如:建立hdfs服務
api
POST /clusters/c1/services/HDFS
【2】put
使用put方法能夠用來更新資源。若是存在的資源被修改了,則返回值200表示請求已成功完成。請求值202也表示服務器接受了請求。
例如:啓動HDFS服務(更新hdfs的狀態爲‘started’)
服務器
PUT /clusters/c1/services/HDFS/
【3】delete
使用delete方法來刪除一個資源。若是存在的集羣被刪除掉則返回值200表示請求成功完成。返回值202也表示服務器接受了該指令而且該資源被標記爲刪除。
例如:刪除集羣名稱是「c1」的集羣:
運維
DELETE /clusters/c1
異步響應
管理api會返回標誌着請求被接受的返回值202.該響應包含請求ID和攜帶請求命令的href。
響應中href能夠用於查詢與請求相關的資源和監控請求的進程。請求資源包含一到多個子任務資源。以下例子展現瞭如何使用部分響應去查詢請求資源。
curl
/clusters/c1/requests/6?fields=tasks/Tasks/*
(4)資源
【1】資源採集
資源採集是相同類型的資源的一個組合,而非特定資源。例如:
/clusters,強調的是集羣的採集。
【2】資源實例
資源實例是單個特定資源。例如:
/clusters/c1,強調的是id爲‘c1’的集羣資源
【3】類型
以組劃分的資源的類型。容許用戶查詢行溝通類型的資源。個別資源類型包含了子類型(例如服務是集羣的子資源)
以下是ambari資源類型的描述跟使用事例。
[1]集羣
集羣資源表明着Hadoop集羣命名。集羣是最高級別的資源
集羣資源
[2]服務
服務資源時hadoop集羣的服務(例如HDFS/mapduce/ganglia).服務資源是集羣的子資源異步