[prev in list] [next in list] [prev in thread] [next in thread]
List: mesos-commits
Subject: svn commit: r1682527 [1/3] - in /mesos/site: publish/ publish/documentation/allocation-module/ publi
From: dlester () apache ! org
Date: 2015-05-29 18:13:45
Message-ID: 20150529181345.AB1F3AC0665 () hades ! apache ! org
[Download RAW message or body]
Author: dlester
Date: Fri May 29 18:13:44 2015
New Revision: 1682527
URL: http://svn.apache.org/r1682527
Log:
Update Mesos documentation.
Modified:
mesos/site/publish/documentation/allocation-module/index.html
mesos/site/publish/documentation/configuration/index.html
mesos/site/publish/documentation/latest/allocation-module/index.html
mesos/site/publish/documentation/latest/configuration/index.html
mesos/site/publish/documentation/latest/modules/index.html
mesos/site/publish/documentation/modules/index.html
mesos/site/publish/sitemap.xml
mesos/site/source/documentation/latest/allocation-module.md
mesos/site/source/documentation/latest/configuration.md
mesos/site/source/documentation/latest/modules.md
Modified: mesos/site/publish/documentation/allocation-module/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/allocation-module/index.html?rev=1682527&r1=1682526&r2=1682527&view=diff
==============================================================================
--- mesos/site/publish/documentation/allocation-module/index.html (original)
+++ mesos/site/publish/documentation/allocation-module/index.html Fri May 29 18:13:44 \
2015 @@ -83,124 +83,70 @@
<div class="col-md-8">
<h1>Mesos Allocation Module</h1>
-<p>The logic that the Mesos master uses to determine which frameworks to make offer \
resource offers to is encapsulated in the Master’s <em>allocation module</em>. \
The allocation module is a pluggable component that organizations can use to \
implement their own sharing policy, e.g. fair-sharing, Dominant Resource Fairness \
(see <a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-55.pdf">the \
DRF paper</a>), priority, etc.</p> +<p>The logic that the Mesos master uses to \
determine which frameworks to make resource offers to is encapsulated in the \
Master’s <em>allocator module</em>. The allocator is a pluggable component that \
organizations can use to implement their own sharing policy, e.g. fair-sharing, \
priority, etc., or tune the default hierarchical Dominant Resource Fairness algorithm \
(see <a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-55.pdf">the \
DRF paper</a>).</p>
-<h2>Allocation Module API</h2>
+<p>To use a custom allocator in Mesos, one must:</p>
-<p>Mesos is implemented in C++, so allocation modules are implemented in C++, and \
inherit the @AllocatorProcess@ class defined in \
@MESOS_HOME/src/master/allocator.hpp@. As of the time of this writing (5/29/13), the \
API for allocation modules is as follows:</p> +<ul>
+<li><p><a href="#writing-a-custom-allocator">Implement</a> an <code>Allocator</code> \
interface as defined in <code>mesos/master/allocator.hpp</code>,</p></li> +<li><p><a \
href="#wiring-up-a-custom-allocator">Wrap</a> the allocator implementation in a \
module and load it in the Mesos master.</p></li> +</ul>
-<pre><code> virtual ~AllocatorProcess() {}
- virtual void initialize(
- const Flags& flags,
- const process::PID<Master>& master,
- const hashmap<std::string, RoleInfo>& roles) = 0;
-
- virtual void frameworkAdded(
- const FrameworkID& frameworkId,
- const FrameworkInfo& frameworkInfo,
- const Resources& used) = 0;
-
- virtual void frameworkRemoved(
- const FrameworkID& frameworkId) = 0;
-
- virtual void frameworkActivated(
- const FrameworkID& frameworkId,
- const FrameworkInfo& frameworkInfo) = 0;
-
- virtual void frameworkDeactivated(
- const FrameworkID& frameworkId) = 0;
-
- virtual void slaveAdded(
- const SlaveID& slaveId,
- const SlaveInfo& slaveInfo,
- const hashmap<FrameworkID, Resources>& used) = 0;
-
- virtual void slaveRemoved(
- const SlaveID& slaveId) = 0;
-
- virtual void updateWhitelist(
- const Option<hashset<std::string> >& whitelist) = 0;
-
- virtual void resourcesRequested(
- const FrameworkID& frameworkId,
- const std::vector<Request>& requests) = 0;
-
- // Whenever resources are "recovered" in the cluster (e.g., a task
- // finishes, an offer is removed because a framework has failed or
- // is failing over), or a framework refuses them, the master
- // invokes this callback.
- virtual void resourcesRecovered(
- const FrameworkID& frameworkId,
- const SlaveID& slaveId,
- const Resources& resources,
- const Option<Filters>& filters) = 0;
-
- // Whenever a framework that has filtered resources wants to revive
- // offers for those resources the master invokes this callback.
- virtual void offersRevived(
- const FrameworkID& frameworkId) = 0;
-</code></pre>
-
-<p>The default allocation module is the HierarchicalAllocatorProcess, which can be \
found in @MESOS_HOME/src/master/hierarchical_allocator_process.hpp@. You can \
reference this as a starting place if you choose to write your own allocation \
module.</p>
-
-<h2>Sorter API</h2>
+<h2>Writing a custom allocator</h2>
-<p>Additionally, the hierarchical allocator module can be extended without the need \
to reimplement the entirety of the allocation logic through the use of the @Sorter@ \
abstraction.</p> +<p>Allocator modules are implemented in C++, the same language in \
which Mesos is written. They must subclass the <code>Allocator</code> interface \
defined in <code>mesos/master/allocator.hpp</code>. However, your implementation can \
be a C++ proxy, which delegates calls to an actual allocator written in a language of \
your choice.</p>
-<p>Sorters define the order that roles or frameworks should be offered resources in \
by taking “client” objects and some information about those clients and \
returning an ordered list of clients.</p> +<p>The default allocator is \
<code>HierarchicalDRFAllocatorProcess</code>, which lives in \
<code>$MESOS_HOME/src/master/allocator/mesos/hierarchical.hpp</code>. Like most Mesos \
components, it is actor-based, which means all interface methods are non-blocking and \
return immediately after putting the corresponding action into the actor’s \
queue. If you would like to design your custom allocator in a similar manner, \
subclass <code>MesosAllocatorProcess</code> from \
<code>$MESOS_HOME/src/master/allocator/mesos/allocator.hpp</code> and wrap your \
actor-based allocator in <code>MesosAllocator</code>. This dispatches calls to the \
underlying actor and controls its lifetime. You can refer to \
<code>HierarchicalDRFAllocatorProcess</code> as a starting place if you choose to \
write your own actor-based allocation module.</p>
-<p>Sorters are implemented in C++ and inherit the @Sorter@ class defined in \
@MESOS_HOME/src/master/sorter.hpp@. As of the time of this writing, the API for \
Sorters is as follows:</p> +<p>Additionally, the built-in hierarchical allocator can \
be extended without the need to reimplement the entirety of the allocation logic. \
This is possible through the use of the <code>Sorter</code> abstraction. Sorters \
define the order in which hierarchy layers (e.g. roles or frameworks) should be \
offered resources by taking “client” objects and some information about \
those clients and returning an ordered list of clients.</p>
-<pre><code> virtual ~Sorter() {}
+<p>Sorters are implemented in C++ and inherit the <code>Sorter</code> class defined \
in <code>$MESOS_HOME/src/master/allocator/sorter/sorter.hpp</code>. The default \
sorter is <code>DRFSorter</code>, which implements fair sharing and can be found in \
<code>$MESOS_HOME/src/master/allocator/sorter/drf/sorter.hpp</code>. This sorter is \
capable of expressing priorities by specifying weights in <code>Sorter::add()</code>. \
Each client’s share is divided by its weight. For example, a role that has a \
weight of <code>2</code> will be offered twice as many resources as a role with \
weight <code>1</code>.</p>
- // Adds a client to allocate resources to. A client
- // may be a user or a framework.
- virtual void add(const std::string& client, double weight = 1) = 0;
+<h2>Wiring up a custom allocator</h2>
- // Removes a client.
- virtual void remove(const std::string& client) = 0;
+<p>Once a custom allocator has been written, the next step is to override the \
built-in implementation with your own. This process consists of several steps:</p>
- // Readds a client to the sort after deactivate.
- virtual void activate(const std::string& client) = 0;
+<ul>
+<li><p>Wrap your allocator in a Mesos allocator module,</p></li>
+<li><p>Load this module in Mesos master.</p></li>
+</ul>
- // Removes a client from the sort, so it won't get allocated to.
- virtual void deactivate(const std::string& client) = 0;
- // Specify that resources have been allocated to the given client.
- virtual void allocated(const std::string& client,
- const Resources& resources) = 0;
+<p>An allocator module is a factory function and a module description, as defined in \
<code>mesos/module/allocator.hpp</code>. Assuming the allocation logic is implemented \
by the <code>ExternalAllocator</code> class declared in \
<code>external_allocator.hpp</code>, the following snippet describes the \
implementation of an allocator module named <code>ExternalAllocatorModule</code>:</p> \
- // Specify that resources have been unallocated from the given client.
- virtual void unallocated(const std::string& client,
- const Resources& resources) = 0;
+<pre><code>#include <mesos/master/allocator.hpp>
+#include <mesos/module/allocator.hpp>
+#include <stout/try.hpp>
- // Returns the resources that have been allocated to this client.
- virtual Resources allocation(const std::string& client) = 0;
+#include "external_allocator.hpp"
- // Add resources to the total pool of resources this
- // Sorter should consider.
- virtual void add(const Resources& resources) = 0;
+using namespace mesos;
+using mesos::master::allocator::Allocator;
+using mesos::internal::master::allocator::HierarchicalDRFAllocator;
- // Remove resources from the total pool.
- virtual void remove(const Resources& resources) = 0;
+static Allocator* createExternalAllocator(const Parameters& parameters)
+{
+ Try<Allocator*> allocator = ExternalAllocator::create();
+ if (allocator.isError()) {
+ return NULL;
+ }
- // Returns a list of all clients, in the order that they
- // should be allocated to, according to this Sorter's policy.
- virtual std::list<std::string> sort() = 0;
+ return allocator.get();
+}
- // Returns true if this Sorter contains the specified client,
- // either active or deactivated.
- virtual bool contains(const std::string& client) = 0;
-
- // Returns the number of clients this Sorter contains,
- // either active or deactivated.
- virtual int count() = 0;
+// Declares an ExternalAllocator module named 'ExternalAllocatorModule'.
+mesos::modules::Module<Allocator> ExternalAllocatorModule(
+ MESOS_MODULE_API_VERSION,
+ MESOS_VERSION,
+ "Mesos Contributor",
+ "engineer@example.com",
+ "External Allocator module.",
+ NULL,
+ createExternalAllocator);
</code></pre>
-<p>The default @Sorter@ is the DRFSorter, which implements fair sharing and can be \
found at @MESOS_HOME/src/master/drf_sorter.hpp@.</p>
-
-<p>For DRF, if weights are specified in Sorter::add, a client’s share will be \
divided by the weight, creating a form of priority. For example, a role that has a \
weight of 2 will be offered twice as many resources as a role with weight 1.</p> \
+<p>Refer to the <a href="http://mesos.apache.org/documentation/latest/modules/">Mesos \
Modules documentation</a> for instructions how to compile and load a module in Mesos \
master.</p>
</div>
</div>
Modified: mesos/site/publish/documentation/configuration/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/configuration/index.html?rev=1682527&r1=1682526&r2=1682527&view=diff
==============================================================================
--- mesos/site/publish/documentation/configuration/index.html (original)
+++ mesos/site/publish/documentation/configuration/index.html Fri May 29 18:13:44 \
2015 @@ -298,6 +298,17 @@ file:///path/to/file (where file contain
</tr>
<tr>
<td>
+ --allocator=VALUE
+ </td>
+ <td>
+ Allocator to use for resource allocation to frameworks.
+ Use the default <code>HierarchicalDRF</code> allocator, or load
+ an alternate allocator module using <code>--modules</code>.
+ (default: HierarchicalDRF)
+ </td>
+ </tr>
+ <tr>
+ <td>
--[no-]authenticate
</td>
<td>
Modified: mesos/site/publish/documentation/latest/allocation-module/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/allocation-module/index.html?rev=1682527&r1=1682526&r2=1682527&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/allocation-module/index.html (original)
+++ mesos/site/publish/documentation/latest/allocation-module/index.html Fri May 29 \
18:13:44 2015 @@ -83,124 +83,70 @@
<div class="col-md-8">
<h1>Mesos Allocation Module</h1>
-<p>The logic that the Mesos master uses to determine which frameworks to make offer \
resource offers to is encapsulated in the Master’s <em>allocation module</em>. \
The allocation module is a pluggable component that organizations can use to \
implement their own sharing policy, e.g. fair-sharing, Dominant Resource Fairness \
(see <a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-55.pdf">the \
DRF paper</a>), priority, etc.</p> +<p>The logic that the Mesos master uses to \
determine which frameworks to make resource offers to is encapsulated in the \
Master’s <em>allocator module</em>. The allocator is a pluggable component that \
organizations can use to implement their own sharing policy, e.g. fair-sharing, \
priority, etc., or tune the default hierarchical Dominant Resource Fairness algorithm \
(see <a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-55.pdf">the \
DRF paper</a>).</p>
-<h2>Allocation Module API</h2>
+<p>To use a custom allocator in Mesos, one must:</p>
-<p>Mesos is implemented in C++, so allocation modules are implemented in C++, and \
inherit the @AllocatorProcess@ class defined in \
@MESOS_HOME/src/master/allocator.hpp@. As of the time of this writing (5/29/13), the \
API for allocation modules is as follows:</p> +<ul>
+<li><p><a href="#writing-a-custom-allocator">Implement</a> an <code>Allocator</code> \
interface as defined in <code>mesos/master/allocator.hpp</code>,</p></li> +<li><p><a \
href="#wiring-up-a-custom-allocator">Wrap</a> the allocator implementation in a \
module and load it in the Mesos master.</p></li> +</ul>
-<pre><code> virtual ~AllocatorProcess() {}
- virtual void initialize(
- const Flags& flags,
- const process::PID<Master>& master,
- const hashmap<std::string, RoleInfo>& roles) = 0;
-
- virtual void frameworkAdded(
- const FrameworkID& frameworkId,
- const FrameworkInfo& frameworkInfo,
- const Resources& used) = 0;
-
- virtual void frameworkRemoved(
- const FrameworkID& frameworkId) = 0;
-
- virtual void frameworkActivated(
- const FrameworkID& frameworkId,
- const FrameworkInfo& frameworkInfo) = 0;
-
- virtual void frameworkDeactivated(
- const FrameworkID& frameworkId) = 0;
-
- virtual void slaveAdded(
- const SlaveID& slaveId,
- const SlaveInfo& slaveInfo,
- const hashmap<FrameworkID, Resources>& used) = 0;
-
- virtual void slaveRemoved(
- const SlaveID& slaveId) = 0;
-
- virtual void updateWhitelist(
- const Option<hashset<std::string> >& whitelist) = 0;
-
- virtual void resourcesRequested(
- const FrameworkID& frameworkId,
- const std::vector<Request>& requests) = 0;
-
- // Whenever resources are "recovered" in the cluster (e.g., a task
- // finishes, an offer is removed because a framework has failed or
- // is failing over), or a framework refuses them, the master
- // invokes this callback.
- virtual void resourcesRecovered(
- const FrameworkID& frameworkId,
- const SlaveID& slaveId,
- const Resources& resources,
- const Option<Filters>& filters) = 0;
-
- // Whenever a framework that has filtered resources wants to revive
- // offers for those resources the master invokes this callback.
- virtual void offersRevived(
- const FrameworkID& frameworkId) = 0;
-</code></pre>
-
-<p>The default allocation module is the HierarchicalAllocatorProcess, which can be \
found in @MESOS_HOME/src/master/hierarchical_allocator_process.hpp@. You can \
reference this as a starting place if you choose to write your own allocation \
module.</p>
-
-<h2>Sorter API</h2>
+<h2>Writing a custom allocator</h2>
-<p>Additionally, the hierarchical allocator module can be extended without the need \
to reimplement the entirety of the allocation logic through the use of the @Sorter@ \
abstraction.</p> +<p>Allocator modules are implemented in C++, the same language in \
which Mesos is written. They must subclass the <code>Allocator</code> interface \
defined in <code>mesos/master/allocator.hpp</code>. However, your implementation can \
be a C++ proxy, which delegates calls to an actual allocator written in a language of \
your choice.</p>
-<p>Sorters define the order that roles or frameworks should be offered resources in \
by taking “client” objects and some information about those clients and \
returning an ordered list of clients.</p> +<p>The default allocator is \
<code>HierarchicalDRFAllocatorProcess</code>, which lives in \
<code>$MESOS_HOME/src/master/allocator/mesos/hierarchical.hpp</code>. Like most Mesos \
components, it is actor-based, which means all interface methods are non-blocking and \
return immediately after putting the corresponding action into the actor’s \
queue. If you would like to design your custom allocator in a similar manner, \
subclass <code>MesosAllocatorProcess</code> from \
<code>$MESOS_HOME/src/master/allocator/mesos/allocator.hpp</code> and wrap your \
actor-based allocator in <code>MesosAllocator</code>. This dispatches calls to the \
underlying actor and controls its lifetime. You can refer to \
<code>HierarchicalDRFAllocatorProcess</code> as a starting place if you choose to \
write your own actor-based allocation module.</p>
-<p>Sorters are implemented in C++ and inherit the @Sorter@ class defined in \
@MESOS_HOME/src/master/sorter.hpp@. As of the time of this writing, the API for \
Sorters is as follows:</p> +<p>Additionally, the built-in hierarchical allocator can \
be extended without the need to reimplement the entirety of the allocation logic. \
This is possible through the use of the <code>Sorter</code> abstraction. Sorters \
define the order in which hierarchy layers (e.g. roles or frameworks) should be \
offered resources by taking “client” objects and some information about \
those clients and returning an ordered list of clients.</p>
-<pre><code> virtual ~Sorter() {}
+<p>Sorters are implemented in C++ and inherit the <code>Sorter</code> class defined \
in <code>$MESOS_HOME/src/master/allocator/sorter/sorter.hpp</code>. The default \
sorter is <code>DRFSorter</code>, which implements fair sharing and can be found in \
<code>$MESOS_HOME/src/master/allocator/sorter/drf/sorter.hpp</code>. This sorter is \
capable of expressing priorities by specifying weights in <code>Sorter::add()</code>. \
Each client’s share is divided by its weight. For example, a role that has a \
weight of <code>2</code> will be offered twice as many resources as a role with \
weight <code>1</code>.</p>
- // Adds a client to allocate resources to. A client
- // may be a user or a framework.
- virtual void add(const std::string& client, double weight = 1) = 0;
+<h2>Wiring up a custom allocator</h2>
- // Removes a client.
- virtual void remove(const std::string& client) = 0;
+<p>Once a custom allocator has been written, the next step is to override the \
built-in implementation with your own. This process consists of several steps:</p>
- // Readds a client to the sort after deactivate.
- virtual void activate(const std::string& client) = 0;
+<ul>
+<li><p>Wrap your allocator in a Mesos allocator module,</p></li>
+<li><p>Load this module in Mesos master.</p></li>
+</ul>
- // Removes a client from the sort, so it won't get allocated to.
- virtual void deactivate(const std::string& client) = 0;
- // Specify that resources have been allocated to the given client.
- virtual void allocated(const std::string& client,
- const Resources& resources) = 0;
+<p>An allocator module is a factory function and a module description, as defined in \
<code>mesos/module/allocator.hpp</code>. Assuming the allocation logic is implemented \
by the <code>ExternalAllocator</code> class declared in \
<code>external_allocator.hpp</code>, the following snippet describes the \
implementation of an allocator module named <code>ExternalAllocatorModule</code>:</p> \
- // Specify that resources have been unallocated from the given client.
- virtual void unallocated(const std::string& client,
- const Resources& resources) = 0;
+<pre><code>#include <mesos/master/allocator.hpp>
+#include <mesos/module/allocator.hpp>
+#include <stout/try.hpp>
- // Returns the resources that have been allocated to this client.
- virtual Resources allocation(const std::string& client) = 0;
+#include "external_allocator.hpp"
- // Add resources to the total pool of resources this
- // Sorter should consider.
- virtual void add(const Resources& resources) = 0;
+using namespace mesos;
+using mesos::master::allocator::Allocator;
+using mesos::internal::master::allocator::HierarchicalDRFAllocator;
- // Remove resources from the total pool.
- virtual void remove(const Resources& resources) = 0;
+static Allocator* createExternalAllocator(const Parameters& parameters)
+{
+ Try<Allocator*> allocator = ExternalAllocator::create();
+ if (allocator.isError()) {
+ return NULL;
+ }
- // Returns a list of all clients, in the order that they
- // should be allocated to, according to this Sorter's policy.
- virtual std::list<std::string> sort() = 0;
+ return allocator.get();
+}
- // Returns true if this Sorter contains the specified client,
- // either active or deactivated.
- virtual bool contains(const std::string& client) = 0;
-
- // Returns the number of clients this Sorter contains,
- // either active or deactivated.
- virtual int count() = 0;
+// Declares an ExternalAllocator module named 'ExternalAllocatorModule'.
+mesos::modules::Module<Allocator> ExternalAllocatorModule(
+ MESOS_MODULE_API_VERSION,
+ MESOS_VERSION,
+ "Mesos Contributor",
+ "engineer@example.com",
+ "External Allocator module.",
+ NULL,
+ createExternalAllocator);
</code></pre>
-<p>The default @Sorter@ is the DRFSorter, which implements fair sharing and can be \
found at @MESOS_HOME/src/master/drf_sorter.hpp@.</p>
-
-<p>For DRF, if weights are specified in Sorter::add, a client’s share will be \
divided by the weight, creating a form of priority. For example, a role that has a \
weight of 2 will be offered twice as many resources as a role with weight 1.</p> \
+<p>Refer to the <a href="http://mesos.apache.org/documentation/latest/modules/">Mesos \
Modules documentation</a> for instructions how to compile and load a module in Mesos \
master.</p>
</div>
</div>
Modified: mesos/site/publish/documentation/latest/configuration/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/configuration/index.html?rev=1682527&r1=1682526&r2=1682527&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/configuration/index.html (original)
+++ mesos/site/publish/documentation/latest/configuration/index.html Fri May 29 \
18:13:44 2015 @@ -298,6 +298,17 @@ file:///path/to/file (where file contain
</tr>
<tr>
<td>
+ --allocator=VALUE
+ </td>
+ <td>
+ Allocator to use for resource allocation to frameworks.
+ Use the default <code>HierarchicalDRF</code> allocator, or load
+ an alternate allocator module using <code>--modules</code>.
+ (default: HierarchicalDRF)
+ </td>
+ </tr>
+ <tr>
+ <td>
--[no-]authenticate
</td>
<td>
Modified: mesos/site/publish/documentation/latest/modules/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/latest/modules/index.html?rev=1682527&r1=1682526&r2=1682527&view=diff
==============================================================================
--- mesos/site/publish/documentation/latest/modules/index.html (original)
+++ mesos/site/publish/documentation/latest/modules/index.html Fri May 29 18:13:44 \
2015 @@ -194,7 +194,24 @@ searched in the standard library paths o
<h2>What kinds of modules are supported?</h2>
-<p>Here are the various module kinds currently available:</p>
+<p>Here are the various module kinds currently available.</p>
+
+<h3>Allocator</h3>
+
+<p>The Mesos master’s <em>allocator</em> periodically determines which \
framework(s) should be offered the cluster’s available resources. Allocator \
modules enable experimenting with specialized resource allocation algorithms. An \
example of these could be an allocator that provides a feature currently not \
supported by the built-in Hierarchical Dominant Resource Fairness allocator, like \
oversubscription with preemption.</p> +
+<p>To load a custom allocator into Mesos master, you need to:</p>
+
+<ul>
+<li><p>Introduce it to the Mesos master by listing it in the <code>--modules</code> \
configuration,</p></li> +<li><p>Select it as the allocator via the \
<code>--allocator</code> flag.</p></li> +</ul>
+
+
+<p>For example, the following command will run the Mesos master with \
<code>ExternalAllocatorModule</code> (see <a href="#Example-JSON-strings">this \
section</a> for JSON format):</p> +
+<pre><code>./bin/mesos-master.sh --work_dir=m/work \
--modules="file://<modules-including-allocator>.json" \
--allocator=ExternalAllocatorModule +</code></pre>
<h3>Anonymous</h3>
Modified: mesos/site/publish/documentation/modules/index.html
URL: http://svn.apache.org/viewvc/mesos/site/publish/documentation/modules/index.html?rev=1682527&r1=1682526&r2=1682527&view=diff
==============================================================================
--- mesos/site/publish/documentation/modules/index.html (original)
+++ mesos/site/publish/documentation/modules/index.html Fri May 29 18:13:44 2015
@@ -194,7 +194,24 @@ searched in the standard library paths o
<h2>What kinds of modules are supported?</h2>
-<p>Here are the various module kinds currently available:</p>
+<p>Here are the various module kinds currently available.</p>
+
+<h3>Allocator</h3>
+
+<p>The Mesos master’s <em>allocator</em> periodically determines which \
framework(s) should be offered the cluster’s available resources. Allocator \
modules enable experimenting with specialized resource allocation algorithms. An \
example of these could be an allocator that provides a feature currently not \
supported by the built-in Hierarchical Dominant Resource Fairness allocator, like \
oversubscription with preemption.</p> +
+<p>To load a custom allocator into Mesos master, you need to:</p>
+
+<ul>
+<li><p>Introduce it to the Mesos master by listing it in the <code>--modules</code> \
configuration,</p></li> +<li><p>Select it as the allocator via the \
<code>--allocator</code> flag.</p></li> +</ul>
+
+
+<p>For example, the following command will run the Mesos master with \
<code>ExternalAllocatorModule</code> (see <a href="#Example-JSON-strings">this \
section</a> for JSON format):</p> +
+<pre><code>./bin/mesos-master.sh --work_dir=m/work \
--modules="file://<modules-including-allocator>.json" \
--allocator=ExternalAllocatorModule +</code></pre>
<h3>Anonymous</h3>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic