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

Ambari cluster + what is the right syntax in order to upload blueprint json file to ambari cluster

我们有 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 文件

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

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

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