You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »

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:

ParameterDescription
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. Default values: zero. These default profiles (zero, small, medium, and large) are defined in the myriad-config-default.yml file. The resources associated with these default profiles can be modified; additionally, new profiles can be defined.

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.

constraintsArray 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 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

 

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
  • No labels