DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
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 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 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