Кластер Ambari + какой правильный синтаксис для загрузки файла чертежа json в кластер ambari

у нас есть кластер 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


person King David    schedule 09.08.2017    source источник


Ответы (2)


Вы пытались проверить свой JSON онлайн, например. на https://jsonformatter.curiousconcept.com/? Похоже, проблема связана с общим синтаксисом JSON.

person Dmitriusan    schedule 10.08.2017

В команде curl, используемой для загрузки нового bloueprint.json, вы используете --data @, а также -d @$path/blueprint.json. -d и --data используются для одной и той же цели, поэтому первое появление, т. е. --data @, вступает в силу, и команда пытается найти файл без пути, т. е. "".

Вы можете удалить --data @, чтобы исправить ошибку Couldn't read data from file "".

person Shubhangi    schedule 10.08.2017