Ambari Rest API 管理集群

有时候因为网络端口活着其他限制原因,我们没办法直接访问ambari web ui的页面进行操作,这时候我们可以在能访问ambari server的linux服务器上执行curl命令来管理ambari集群
参考链接: https://github.com/apache/ambari/blob/trunk/ambari-server/docs/api/v1/index.md#resources.

  1. 获取集群名称
curl -u username:password -H "X-Requested-By: ambari" -X GET http://ip.ip.ip.ip:8080/api/v1/clusters
{
  "href" : "http://localhost:8080/api/v1/clusters",
  "items" : [
    {
      "href" : "http://localhost:8080/api/v1/clusters/c1",
      "Clusters" : {
        "cluster_name" : "c1"
      }
    }
  ]
}
  1. 获取集群的所有服务
curl -u username:password -H "X-Requested-By: ambari" -X GET http://ip.ip.ip.ip:8080/api/v1/clusters/c1/services
{
  "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/services",
  "items" : [
  	......
    {
      "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/services/HBASE",
      "ServiceInfo" : {
        "cluster_name" : "c1",
        "service_name" : "HBASE"
      }
    },
    {
      "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/services/HDFS",
      "ServiceInfo" : {
        "cluster_name" : "c1",
        "service_name" : "HDFS"
      }
    },
    ......
  ]
}
  1. 获取某个集群的所有主机
curl -u username:password -H "X-Requested-By: ambari" -X GET http://ip.ip.ip.ip:8080/api/v1/clusters/c1/hosts
{
    "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/hosts",
    "items" : [
      {
        "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/hosts/node-01",
        "Hosts" : {
          "cluster_name" : "c1",
          "host_name" : "node-01"
        }
      },
      ......
    ]
  }
  1. 获取某个主机上的所有组件
curl -u username:password -H "X-Requested-By: ambari" -X GET http://ip.ip.ip.ip:8080/api/v1/clusters/c1/hosts/node-01/host_components
{
  "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/hosts/node-01/host_components",
  "items" : [
    {
      "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/hosts/node-01/host_components/HIVE_METASTORE",
      "HostRoles" : {
        "cluster_name" : "c1",
        "component_name" : "HIVE_METASTORE",
        "host_name" : "node-01"
      },
      "host" : {
        "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/hosts/node-01"
      }
    },
    ......
  ]
}
  1. 启停某个服务的所有组件
curl -u username:password -H "X-Requested-By: ambari" -X PUT http://ip.ip.ip.ip:8080/api/v1/clusters/c1/services/HDFS -d '{"RequestInfo":{"context":"Start HDFS Service"},"Body":{"ServiceInfo":{"state":"STARTED"}}}'
{
  "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/requests/287",
  "Requests" : {
    "id" : 287,
    "status" : "Accepted"
  }
}
curl -u username:password -H "X-Requested-By: ambari" -X PUT http://ip.ip.ip.ip:8080/api/v1/clusters/c1/services/HDFS -d '{"RequestInfo":{"context":"Stop HDFS Service"},"Body":{"ServiceInfo":{"state":"INSTALLED"}}}'
{
  "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/requests/286",
  "Requests" : {
    "id" : 286,
    "status" : "Accepted"
  }
}
  1. 启停某个主机上的所有组件
curl -u username:password -H "X-Requested-By: ambari" -X PUT http://ip.ip.ip.ip:8080/api/v1/clusters/c1/hosts/node-01/host_components -d '{"RequestInfo":{"context":"Start All Host Components"},"Body":{"HostRoles":{"state":"STARTED"}}}'
{
  "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/requests/292",
  "Requests" : {
    "id" : 292,
    "status" : "Accepted"
  }
}
curl -u username:password -H "X-Requested-By: ambari" -X PUT http://ip.ip.ip.ip:8080/api/v1/clusters/c1/hosts/node-01/host_components -d '{"RequestInfo":{"context":"Stop All Host Components"},"Body":{"HostRoles":{"state":"INSTALLED"}}}'
{
  "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/requests/293",
  "Requests" : {
    "id" : 293,
    "status" : "Accepted"
  }
}
  1. 启停某个主机上的某个组件
curl -u username:password -H "X-Requested-By: ambari" -X PUT http://ip.ip.ip.ip:8080/api/v1/clusters/c1/osts/node1-02/host_components/DATANODE -d '{"RequestInfo":{"context":"Stop DATANODE"},"Body":{"HostRoles":{"state":"STARTED"}}}'
{
  "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/requests/289",
  "Requests" : {
    "id" : 289,
    "status" : "Accepted"
  }
}
curl -u username:password -H "X-Requested-By: ambari" -X PUT http://ip.ip.ip.ip:8080/api/v1/clusters/c1/hosts/node1-02/host_components/DATANODE -d '{"RequestInfo":{"context":"Start DATANODE"},"Body":{"HostRoles":{"state":"INSTALLED"}}}'
{
  "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/requests/288",
  "Requests" : {
    "id" : 288,
    "status" : "Accepted"
  }
}
  1. 检查操作进度
curl -u username:password -H "X-Requested-By: ambari" -X GET http://ip.ip.ip.ip:8080/api/v1/clusters/c1/requests/287
{
  "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/requests/287",
  "Requests" : {
    ......
    "request_context" : "Start HDFS Service",
    "request_status" : "COMPLETED",
    ......
  },
  "stages" : [
    {
      "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/requests/287/stages/0",
      "Stage" : {
        "cluster_name" : "c1",
        "request_id" : 287,
        "stage_id" : 0
      }
    },
    ......
  ],
  "tasks" : [
    {
      "href" : "http://ip.ip.ip.ip:8080/api/v1/clusters/c1/requests/287/tasks/1574",
      "Tasks" : {
        "cluster_name" : "c1",
        "id" : 1574,
        "request_id" : 287,
        "stage_id" : 0
      }
    },
    ......
  ]
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值