The Cluster REST API uses the PUT /api/cluster/flexup
and flex down
flexdown
HTTP method and URI to expand and shrink the cluster size size.
HTTP Method and URI
Code Block |
---|
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
Code Block |
---|
<resource_manager_host> |
Syntax
Code Block |
---|
<localhost>:8192/api/cluster/flexup profile=<zero|small|medium|large> instances=<integer> constraints=<["JSON array of strings"]> <resource_manager_host>:8192/api/cluster/flexdown profile=<zero|small|medium|large> instances=<integer> constraints=<["JSON array of strings"]> |
Request Examples
Curl request example that does a to flexup to two instances with the profile set to small:
Code Block |
---|
curl -X PUT http://10.10.100.19:8192/api/cluster/flexup -d instances=2 -d profile=smallflexup -d instances=2 -d profile=small |
Curl request example to flexdown one instance with the profile set to small:
Code Block |
---|
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:
Code Block |
---|
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 flexdown requestflexup:
Code Block |
---|
PUT /api/cluster/flexdownflexup HTTP/1.1 Host: 10.10.100.19:8192 Connection: keep-alive Content-Length: 1736 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 flexupflexdown:
Code Block |
---|
PUT /api/cluster/flexupflexdown HTTP/1.1 Host: 10.10.100.19:8192 Connection: keep-alive Content-Length: 3617 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 payload for one instance Launches a Node Manager with the profile set to medium on any host in the Mesos cluster:
Code Block |
---|
{profile: "medium", instances: "1"} |
Request payload for one instance Launches a Node Manager with the profile set to small on any host in the Mesos cluster:
Code Block |
---|
{ "instances":1, "profile": "small" } |
Request payload for one instance Launches a Node Manager with the profile set to zero on any host in the Mesos cluster with the profile set to zero:
Code Block |
---|
{
"instances":1
} |
Launches four (4) Node Managers with profile set to large only on specific hosts, host-120 through host-129:
Code Block |
---|
{
"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):
Code Block |
---|
{ "instances":2, "profile": "zero", "instancesconstraints":1 ["hdfs LIKE true"] } |
Response Example
Code Block |
---|
200202 okACCEPTED |