0
私はの後にインストールされた状態のAmbariコンポーネントを再起動します。これはPythonコードを記述しているので、動作するPycurlを使用してAmbariサービスを解析します。Ambari CURLコマンドでPython Pycurl POSTメソッドの問題
しかし、JSONが解析されると、私のようなJSONファイルを生成します:これはと連携
{
"RequestInfo": {
"command": "START",
"context": "Restart all components on HOST"
},
"Requests/resource_filters": [
{
"component_name": "NAMENODE",
"hosts": "hadoopm",
"service_name": "HDFS"
},
{
"component_name": "RESOURCEMANAGER",
"hosts": "hadoopm",
"service_name": "YARN"
}]}
:
curl -u username:password -H 'X-Requested-By-ambari' http://ambariserver:8080/api/v1/clusters/CLUSTERNAME/requests [email protected]
が、同じことが400不正な要求エラーと協力し、失敗していません以下のコードを使用してください。
import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, url_post)
c.setopt(pycurl.HTTPHEADER, ["X-Requested-By:ambari"])
data = json.dumps(json.loads(open(output_temp_file,'rb').read()), indent=1, sort_keys=True)
tabs = re.sub('\n +', lambda match: '\n' + '\t' * (len(match.group().strip('\n'))/2), data)
tabJSON=json.dumps(json.loads(open(output_temp_file,'rb').read()), indent=1, sort_keys=True)
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.USERPWD,'admin:'+admin_pass)
c.setopt(pycurl.POSTFIELDS, 'tabJSON')
c.setopt(pycurl.WRITEFUNCTION, service_buffer.write)
c.setopt(pycurl.VERBOSE, 1)
c.perform()
c.close()
HTTP/1 .1 400悪い要求
私はこれで誰かがこれで私を手伝ってくれることができます何か間違っています。
pythonからリクエストを送信するときに、ambari-server.logにはどのようなメッセージがありますか? – thinkmassive