Ambari Rest api 使用
最近由于项目的需要在看一些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).服务资源是集群的子资源