The Cluster REST API uses the PUT /api/cluster/flexup
and flexdown
HTTP method and URI to expand and shrink the cluster size.
HTTP Method and URI
PUT /api/cluster/flexup // Expands the size of the YARN cluster. PUT /api/cluster/flexdown // Shrinks the size of the YARN cluster.
Parameters include:
Parameter | Description |
---|---|
profile | (Required) Value: zero, small, medium, large. Default: zero. The instance size in the cluster is defined in the myriad-config-default.yml file. |
instances | Value: one (1) to the number of nodes in the cluster. For example, if there are 100 nodes in your cluster, you are bound by 100. If you specify more than 100, the excess is place in a pending state. |
constraints | Array definition for a single constraint using the LIKE operator constraint format: <mesos_slave_attribute|hostname> LIKE <value_regex> . Hostnames are used to define cluster boundary and to start and stop Node Managers on a predefined set of nodes. See common Mesos slave attributes (http://mesos.apache.org/documentation/attributes-resources) for more information. |
Syntax
<resource_manager_host>:8192/api/cluster/flexup -d profile=<zero|small|medium|large> -d instances=<integer> -d constraints=<"string"> <resource_manager_host>:8192/api/cluster/flexdown -d profile=<zero|small|medium|large> -d instances=<integer> -d constraints=<"string">
Request Examples
Curl request example to flexup two instances with the profile set to small:
curl -X PUT http://10.10.100.19:8192/api/cluster/flexup -d instances=2 -d profile=small
Curl example to flex down one instance with the profile set to small:
curl -X PUT http://10.10.100.19:8192/api/cluster/flexdown -d instances=1 -d profile=small
Request header to flexup:
PUT /api/cluster/flexup HTTP/1.1 Host: 10.10.100.19:8192 Connection: keep-alive Content-Length: 36 Origin: http://10.10.100.19:8192 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36 Content-Type: application/json Accept: */* Referer: http://10.10.100.19:8192/ Accept-Encoding: gzip, deflate, sdch Accept-Language: en-US,en;q=0.8
Request header to flexdown:
PUT /api/cluster/flexdown HTTP/1.1 Host: 10.10.100.19:8192 Connection: keep-alive Content-Length: 17 Origin: http://10.10.100.19:8192 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36 Content-Type: application/json Accept: */* Referer: http://10.10.100.19:8192/ Accept-Encoding: gzip, deflate, sdch Accept-Language: en-US,en;q=0.8
Launches a Node Manager with the profile set to medium on any host in the Mesos cluster:
{profile: "medium", instances:1}
Launches a Node Manager with the profile set to small on any host in the Mesos cluster:
{ "instances":1, "profile": "small" }
Launches a Node Manager with the profile set to zero on any host in the Mesos cluster:
{ "instances":1 }
Launches four (4) Node Managers with profile set to large only on specific hosts, host-120 through host-129:
{ "instances":4, "profile": "large", "constraints": ["hostname LIKE host-12[0-9].example.com"] }
Launches two (2) Node Managers with profile set to zero only on hosts sharing a common Mesos slave attribute (http://mesos.apache.org/documentation/attributes-resources):
{ "instances":2, "profile": "zero", "constraints": ["hdfs LIKE true"] }
Response Example
202 ACCEPTED