Ambari 服务通过 Rest 检查 API
Ambari service checks Through Rest API
我在 hadoop 集群上使用 rest api 到 运行 服务检查。在 Ambari GUI 中,我可以看到请求已触发,但 API 仅 return 低于 json 输出。
"href" : "http://:8080/api/v1/clusters/DEMO/requests/11", "Requests" : { "id" : 11, "status" : "Accepted"
无论 运行 服务检查状态如何(Pass/Fail),此输出都是相同的,只是请求 ID 发生变化。
我如何解释上面 json 输出的 运行 服务检查结果?
一旦您使用 REST API 发出服务检查请求,ambari 就会接受 运行 并立即给出 json 响应(在完成服务检查之前)。因此,响应 json 指示请求 ID、请求的当前状态和 URL 以监视请求状态。
{
"href" : "http://localhost:8080/api/v1/clusters/DEMO/requests/182",
"Requests" : {
"id" : 182,
"status" : "Accepted"
}
您可以使用 json 响应中返回的 URL 来监控服务检查状态。下面给出示例,注意 "request_status" : "FAILED"
表示服务检查是成功完成还是失败。
$ curl -u admin:admin -XGET http://localhost:8080/api/v1/clusters/DEMO/requests/182
{
"href" : "http://localhost:8080/api/v1/clusters/DEMO/requests/182",
"Requests" : {
"aborted_task_count" : 0,
"cluster_name" : "DEMO",
"completed_task_count" : 1,
"create_time" : 1505153613045,
"end_time" : 1505153724897,
"exclusive" : false,
"failed_task_count" : 1,
"id" : 182,
"inputs" : "{}",
"operation_level" : null,
"progress_percent" : 100.0,
"queued_task_count" : 0,
"request_context" : "HDFS Service Check",
"request_schedule" : null,
"request_status" : "FAILED",
"resource_filters" : [
{
"service_name" : "HDFS"
}
],
"start_time" : 1505153613139,
"task_count" : 1,
"timed_out_task_count" : 0,
"type" : "COMMAND"
},
"stages" : [
{
"href" : "http://localhost:8080/api/v1/clusters/DEMO/requests/182/stages/0",
"Stage" : {
"cluster_name" : "DEMO",
"request_id" : 182,
"stage_id" : 0
}
}
],
"tasks" : [
{
"href" : "http://localhost:8080/api/v1/clusters/DEMO/requests/182/tasks/1314",
"Tasks" : {
"cluster_name" : "DEMO",
"id" : 1314,
"request_id" : 182,
"stage_id" : 0
}
}
]
}
我在 hadoop 集群上使用 rest api 到 运行 服务检查。在 Ambari GUI 中,我可以看到请求已触发,但 API 仅 return 低于 json 输出。
"href" : "http://:8080/api/v1/clusters/DEMO/requests/11", "Requests" : { "id" : 11, "status" : "Accepted"
无论 运行 服务检查状态如何(Pass/Fail),此输出都是相同的,只是请求 ID 发生变化。
我如何解释上面 json 输出的 运行 服务检查结果?
一旦您使用 REST API 发出服务检查请求,ambari 就会接受 运行 并立即给出 json 响应(在完成服务检查之前)。因此,响应 json 指示请求 ID、请求的当前状态和 URL 以监视请求状态。
{
"href" : "http://localhost:8080/api/v1/clusters/DEMO/requests/182",
"Requests" : {
"id" : 182,
"status" : "Accepted"
}
您可以使用 json 响应中返回的 URL 来监控服务检查状态。下面给出示例,注意 "request_status" : "FAILED"
表示服务检查是成功完成还是失败。
$ curl -u admin:admin -XGET http://localhost:8080/api/v1/clusters/DEMO/requests/182
{
"href" : "http://localhost:8080/api/v1/clusters/DEMO/requests/182",
"Requests" : {
"aborted_task_count" : 0,
"cluster_name" : "DEMO",
"completed_task_count" : 1,
"create_time" : 1505153613045,
"end_time" : 1505153724897,
"exclusive" : false,
"failed_task_count" : 1,
"id" : 182,
"inputs" : "{}",
"operation_level" : null,
"progress_percent" : 100.0,
"queued_task_count" : 0,
"request_context" : "HDFS Service Check",
"request_schedule" : null,
"request_status" : "FAILED",
"resource_filters" : [
{
"service_name" : "HDFS"
}
],
"start_time" : 1505153613139,
"task_count" : 1,
"timed_out_task_count" : 0,
"type" : "COMMAND"
},
"stages" : [
{
"href" : "http://localhost:8080/api/v1/clusters/DEMO/requests/182/stages/0",
"Stage" : {
"cluster_name" : "DEMO",
"request_id" : 182,
"stage_id" : 0
}
}
],
"tasks" : [
{
"href" : "http://localhost:8080/api/v1/clusters/DEMO/requests/182/tasks/1314",
"Tasks" : {
"cluster_name" : "DEMO",
"id" : 1314,
"request_id" : 182,
"stage_id" : 0
}
}
]
}