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 |
---|
<localhost><resource_manager_host>: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
The following Curl request example expands the size of the cluster.
Code Block |
---|
{
"instances":1, "profile": "small"
} |
The following request example shrinks (flex down) the size of the cluster for one instance.
Code Block |
---|
{
"instances":1
} |
to flexup 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=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 flexupRequest header for a flex down request and a request payload of 1 instance:
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 |
Curl request example that sets the flexup profile to smallRequest header to flexdown:
Code Block |
---|
curl -X PUTPUT /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/api/cluster/flexup -d profiles=small 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:
Code Block |
---|
{profile: "medium", instances:1} |
Launches a Node Manager with the profile set to small on any host in the Mesos cluster:
Code Block |
---|
{
"instances":1, "profile": "small"
} |
Launches a Node Manager with the profile set to zero on any host in the Mesos cluster:
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",
"constraints": ["hdfs LIKE true"]
} |
Response Example
Code Block |
---|
200202 okACCEPTED |