最近由於項目的需要在看一些Ambari的api去獲取集群的一些信息,獲取集群節點的狀態信息以及各個服務和組件的信息。然后在我們的數據服務管理平台上去做一些監控運維,現在把一些使用總結一下:
官網rest api地址:
https://cwiki.apache.org/confluence/display/AMBARI/
ambari api使對Hadoop集群資源的管理和監控更加便利。文檔描述了ambari api的資源和語法,以方便於加入ambari的開發者。
(1)認證和授權
您執行的關於ambari api需要認證。接近api需要基礎認證。為了使用基礎認證,您需要發送帶有“Authorization:base”頭部的請求。例如,當使用curl命令時可以如此發送:
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的信息:
GET /clusters/c1/services/HDFS/components/DATANODE
(3)管理
amabri api包含了對hadoop集群資源的管理。包括創建、刪除和資源升級。
【1】post
通過post方法可以創建一個新資源。如果新資源被創建則返回值是201.返回值202表示請求已被服務器接受。
例如:創建hdfs服務
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可以用於查詢與請求相關的資源和監控請求的進程。請求資源包含一到多個子任務資源。如下例子展示了如何使用部分響應去查詢請求資源。
/clusters/c1/requests/6?fields=tasks/Tasks/*
(4)資源
【1】資源采集
資源采集是相同類型的資源的一個組合,而非特定資源。例如:
/clusters,強調的是集群的采集。
【2】資源實例
資源實例是單個特定資源。例如:
/clusters/c1,強調的是id為‘c1’的集群資源
【3】類型
以組划分的資源的類型。允許用戶查詢行溝通類型的資源。個別資源類型包含了子類型(例如服務是集群的子資源)
如下是ambari資源類型的描述跟使用事例。
[1]集群
集群資源代表着Hadoop集群命名。集群是最高級別的資源
集群資源
[2]服務
服務資源時hadoop集群的服務(例如HDFS/mapduce/ganglia).服務資源是集群的子資源