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) If a profile value is not specified, the API returns an error. The profile indicates the amount of resources (CPU or memory) a Node Manager should advertise to the Resource Manager. Default profiles: zero, small, medium, large. These default profiles (zero, small, medium, and large) are defined in the |
instances | (Required) The number of Node Managers instances to launch. Each Node Manager instance advertises the amount of resources specified in the profile. The value is a number in the range of zero (0) to the number of Mesos slave nodes. |
constraints | (Optional) Array definition for a single constraint using the LIKE operator constraint format: <mesos_slave_attribute|hostname> LIKE <value_regex> . The hostname constraint is used to launch Node Managerss on nodes whose hostname matches the regex passed in as value. 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=<"JSON array of strings"> <resource_manager_host>:8192/api/cluster/flexdown -d profile=<zero|small|medium|large> -d instances=<integer> -d constraints=<"JSON array of strings">
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 request example to flexdown 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
Curl request example to launch two (2) Node Managers with profile set to large only on specific hosts, host-120 through host-129:
curl -X PUT http://10.10.100.19:8192/api/cluster/flexdown -d instances=2 -d profile=large -d constraints="hostname LIKE host-12[0-9].example.com"
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