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).服务资源是集群的子资源

时间: 2024-11-05 00:48:47

Ambari Rest api 使用的相关文章

ambari rest api (修改集群配置文件)

1.找到你需要修改的配置的最新版本 curl -u admin:admin -H "X-Requested-By: ambari" -X GET http://AMBARI_SERVER_HOST:8080/api/v1/clusters/CLUSTER_NAME?fields=Clusters/desired_configs Sample OUTPUT { "href" : "http://AMBARI_SERVER_HOST:8080/api/v1/c

ambari rest api (三)

1.获取指定主机指定组件的信息列表 http://ip:8080/api/v1/clusters/hdp_dev/hosts/hadoop003.edcs.org/host_components/DATANODE 2.获取主机列表 http://ip:8080/api/v1/clusters/hdp_dev/hosts 3.获取主机的各种状态 http://ip:8080/api/v1/clusters/hdp_dev/hosts/hadoop002.edcs.org?fields=Hosts/

Ambari源代码分析之总览

一.基本概念: Resource:Ambari把能够被管理的资源的抽象为一个Resource实例,资源能够包括服务.组件.主机节点等,一个resource实例中包括了一系列该资源的属性: Property:服务组件的指标名称: ResourceProvider和PropertyProvider分别相应Resource和Property的提供方,获取指标须要先获取Resource,然后获取Property相应的metric: Query:Query是Resource的内部对象,代表了对该资源的操作

Ambari源码分析之总览

一.基本概念: Resource:Ambari把可以被管理的资源的抽象为一个Resource实例,资源可以包括服务.组件.主机节点等,一个resource实例中包含了一系列该资源的属性: Property:服务组件的指标名称: ResourceProvider和PropertyProvider分别对应Resource和Property的提供方,获取指标需要先获取Resource,然后获取Property对应的metric: Query:Query是Resource的内部对象,代表了对该资源的操作

Ambari——大数据平台的搭建利器之进阶篇

前言 本文适合已经初步了解 Ambari 的读者.对 Ambari 的基础知识,以及 Ambari 的安装步骤还不清楚的读者,可以先阅读基础篇文章<Ambari--大数据平台的搭建利器>. Ambari 的现状 目前 Apache Ambari 的最高版本是 2.0.1,最高的 Stack 版本是 HDP 2.2.未来不久将会发布 Ambari 2.1 以及 HDP 2.3(本文也将以 Ambari 2.0.1 和 HDP 2.2 为例进行讲解).其实在 Ambari trunk 的 code

Ambari深入学习(III)-开源使用及其改进思考

Ambari采用的不是一个新的思想和架构,也不是完成了软件的新的革命,而是充分利用了一些已有的优秀开源软件,巧妙地把它们结合起来,使其在分布式环境中做到了集群式服务管理能力.监控能力.展示能力.这些优秀开源软件有: 在agent端,采用了puppet管理节点; 在Web端,采用了ember.js作为前端的MVC构架和NodeJS相关工具,用handlebars.js作为页面渲染引擎,在CSS/HTML方面还用了Bootstrap 框架; 在Server端,采用了Jetty, Spring,Jet

Ambari深入学习(II)-实现细节

在第一节中,我们简单讲了一下Ambari的系统架构.我们这一节主要分析Ambari的源代码,总览Ambari的具体实现方式及其工作细节. 一.Ambari-Server启动 Ambari-Server是一个WEB Server,提供统一的REST API接口,同时向web和agent开放了两个不同的端口(默认前者是8080, 后者是8440或者8441).它是由Jetty Server容器构建起来的,通过Spring Framework构建出来的WEB服务器,其中大量采用了google提供的Gu

Hdp安装问题杂解

5.在安装的时候遇到的问题 5.1使用ambari-server start的时候出现ERROR: Exiting with exit code -1. 5.1.1REASON: Ambari Server java process died with exitcode 255. Check /var/log/ambari-server/ambari-server.out for more information 解决: 由于是重新安装,所以在使用/etc/init.d/postgresql 

调试 ambari-server 总结

刚开始debug ambari-server的时候,很多逻辑都是第一次接触.其中有很多知识点还是记录一下的好,做个备忘.这些知识点对于自定义api的开发还是很有作用的. 1. api的子href的最后一个字符串如何定义?例如,指定一个id? 解答: ambari 2.6 编辑key_properties.json,将当前资源类型与含有id的value相映射. 举例: ambari 2.7 路径:org/apache/ambari/server/controller/internal/RackRe