Ambari集群+将蓝图json文件上传到ambari集群的正确语法是什么

时间:2017-08-09 08:45:23

标签: json hadoop ambari apiblueprint blueprint

我们有Ambari群集版本2.5.0.3 ,而所有客户端计算机都是Linux redhat

首先我将json文件生成到我的Linux机器,如下所示:(在ambari服务器机器上)

 curl -H "X-Requested-By: ambari" -X GET -u admin:admin http://130.14.6.28:8080/api/v1/clusters/HDP01\?format\=blueprint > blueprint.json

然后我更新了blueprint.json文件,其中包含有关参数及其值的一些更改

最后我的目标是将新的blueprint.json上传到ambari集群以便生效!

path=/root

curl -H "X-Requested-By: ambari" --data @ -X POST -u admin:admin http://130.14.6.28:8080/api/v1/blueprints/HDP01 -d @$path/blueprint.json

但我收到以下错误(似乎是因为语法错误)

Warning: Couldn't read data from file "", this makes an empty POST. { 
"status" : 400, "message" : "Invalid Request: Malformed Request Body. An 
exception occurred parsing the request body: Unexpected character ('&' 
(code 38)): expected a valid value (number, String, array, object, 'true', 
'false' or 'null')\n at [Source: java.io.StringReader@4a3484a6; line: 1, 
column: 3]"

请告知我的语法有什么问题?

上传新更新 blueprint.json 文件的正确语法是什么

2 个答案:

答案 0 :(得分:0)

您是否尝试在线验证您的JSON,例如在https://jsonformatter.curiousconcept.com/? 看起来问题是一般的JSON语法

答案 1 :(得分:0)

在用于上传新bloueprint.json的curl命令中,您使用的是--data @以及-d @$path/blueprint.json-d--data用于相同的目的,因此首次出现,即--data @生效,命令尝试定位没有路径的文件,即""

您可以删除--data @以修复Couldn't read data from file ""错误。