Ambari Rest API modify configuration

先附一个官方文档

有两种方式修改配置文件

1. 使用REST API

第一种方式
①步
curl --user admin:admin -H "X-Requested-By: ambari" -i -X POST -d '{"type": "capacity-scheduler", "tag": "version16", "properties" : {"yarn.scheduler.capacity.root.queues" : "default,aa","yarn.scheduler.capacity.root.aa.capacity":"10","yarn.scheduler.capacity.root.aa.maximum-capacity":"100","yarn.scheduler.capacity.root.aa.state":"RUNNING"}}' http://192.168.1.63:8080/api/v1/clusters/eds-cluster/configurations·enter code here
②步
curl --user admin:admin -H "X-Requested-By: ambari" -i -X PUT -d '{"Clusters":{"desired_config" : {"type": "capacity-scheduler", "tag": "version15"}}}' http://192.168.1.63:8080/api/v1/clusters/eds-cluster/configurations

第二种方式
curl --user admin:admin -i -X PUT -d '{"Clusters":{"desired_config" : {"type": "mapred-site", "tag": "version1384716041120", "properties" : {...}}}}' http://AMBARI_SERVER_HOST:8080/api/v1/clusters/CLUSTER_NAME

2. 使用 configs.sh

其原理就是把命令传过来的字符串缓存到json文件中,然后再使用 REST API 进行修改。
官网文档,不做解释

/var/lib/ambari-server/resources/scripts/configs.sh
Usage: configs.sh [-u userId] [-p password] [-port port] <ACTION> <AMBARI_HOST> <CLUSTER_NAME> <CONFIG_TYPE> [CONFIG_FILENAME | CONFIG_KEY [CONFIG_VALUE]]
[-u userId]: Optional user ID to use for authentication. Default is 'admin'.
[-p password]: Optional password to use for authentication. Default is 'admin'.
[-port port]: Optional port number for Ambari server. Default is '8080'. Provide empty string to not use port.
<ACTION>: One of 'get', 'set', 'delete'. 'Set' adds/updates as necessary.
<AMBARI_HOST>: Server external host name
<CLUSTER_NAME>: Name given to cluster. Ex: 'c1'
<CONFIG_TYPE>: One of the various configuration types in Ambari. Ex:global, core-site, hdfs-site, mapred-queue-acls, etc.
[CONFIG_FILENAME]: File where entire configurations are saved to, or read from. Only applicable to 'get' and 'set' actions
[CONFIG_KEY]: Key that has to be set or deleted. Not necessary for 'get' action.
[CONFIG_VALUE]: Optional value to be set. Not necessary for 'get' or 'delete' actions.

例子:
/var/lib/ambari-server/resources/scripts/configs.sh get 192.168.1.68 eds-cluster capacity-scheduler
(返回的内容就是
"properties" : {
"yarn.scheduler.capacity.root.queues" : "default,aa",
"yarn.scheduler.capacity.root.aa.capacity":"10"
}

/var/lib/ambari-server/resources/scripts/configs.sh set localhost eds-cluster capacity-scheduler "yarn.scheduler.capacity.root.queues" "default,DataCanvas"

还有一个最重要的就是使用文件进行更新了,如果属性很多的话用单条命令执行就显得有点不合适,况且使用命令更新一次则配置文件对应的版本就会迭代一次,这样使用文件更新配置相对来说比较简单。
例子:
/var/lib/ambari-server/resources/scripts/configs.sh set 192.168.1.68 eds-cluster capacity-scheduler version16.json
这里的文件不一定必须是json文件,但是文件的内容格式是固定的,如下:
"properties" : {
"yarn.scheduler.capacity.root.queues" : "default,aa",
"yarn.scheduler.capacity.root.aa.capacity":"10",
"yarn.scheduler.capacity.root.aa.maximum-capacity":"100",
"yarn.scheduler.capacity.root.aa.state":"RUNNING"
}

这样我们在更新配置时就可以先使用/var/lib/ambari-server/resources/scripts/configs.sh get 192.168.1.68 eds-cluster capacity-scheduler获取当前配置,经过处理后再使用/var/lib/ambari-server/resources/scripts/configs.sh set 192.168.1.68 eds-cluster capacity-scheduler version16.json进行更新配置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值