Hi

I've just merged and checked the core of the AA placement work into develop

Features

  1.  Guaranteed anti-affinity placement: if there aren't enough live hosts for 
all the requested containers, you don't get all the containers. You will not 
get multiple instances on the same node.
  2.  incremental start of containers
  3.  web UI gives some information about what is going on (and why the 
application isn't complete). See SLIDER-979 for screen shots.

All you have to do for this is to set the yarn.component.placement.policy=4

"yarn.component.placement.policy": "4"

{
  "schema" : "http://example.org/specification/v2.0.0";,
  "metadata" : {
  },
  "global" : {
  },
  "components": {
    "slider-appmaster": {
      "yarn.memory": "256"
    },
    "SLEEP_100": {
      "yarn.role.priority": "1",
      "yarn.component.instances": "1",
      "yarn.memory": "128"
    },
    "SLEEP_LONG": {
      "yarn.role.priority": "2",
      "yarn.component.instances": "4",
      "yarn.memory": "128",
      "yarn.component.placement.policy": "4"   <-- HERE
    }
  }
}


That tells slider that the "SLEEP_LONG" instances must come up on separate 
nodes.

The code is in, it needs more testing —please, set this placement policy on 
your components and see what happens. If any come up on the same machine: bug. 
If you don't get all of them up, even though there is enough spare machines: 
bug.

On that topic, the "slider nodes" command gives you a list of all nodes in the 
cluster;

slider nodes  [<instance>] [--healthy] [--label <label>]

invoke slider nodes without a cluster name, you get a JSON summary from YARN 
itself. Invoke it with a cluster name and you get the view of the world from 
the AM: what nodes are there, it's view of their health, what components are on 
each node and historical data.

If you do find a bug in the AA placement code, grabbing that JSON file for the 
cluster in question would be really helpful in understanding what's up.

Not in this release

There's no use of historical information when bringing up an AA cluster. Its 
planned, I just wanted to get the core placement working.

Likely troublespots

Here is what I haven't tested fully —which will need more field trials.

  1.  How frequent/accurate are node updates coming from the RM to the Slider 
AM? We're relying on those to know when new hosts are added, or when existing 
hosts that were unavailable come online. Without notifications, requests for 
placements won't include those hostnames
  2.  Scale surprises: does asking for every host but those in use hit limits?
  3.  Handling unreliable nodes. There's no blacklisting here —or exclusion of 
untrusted nodes from the explicit list requested. Does this create a bias 
towards rescheduling work on unreliable servers?
  4.  Startup time. How long does it take? I'm assuming, at a minimum 10s per 
desired component instance, even when there is cluster capacity. But you should 
not see delays if you are asking for AA placements of different component 
types; they will all be issued in parallel.

Please download and play with it: I'm not doing any more to it this week.

-Steve




Reply via email to