Added:
websites/staging/slider/trunk/content/docs/configuration/revision-1/specification.html
==============================================================================
---
websites/staging/slider/trunk/content/docs/configuration/revision-1/specification.html
(added)
+++
websites/staging/slider/trunk/content/docs/configuration/revision-1/specification.html
Wed Mar 25 17:59:38 2015
@@ -0,0 +1,650 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE- 2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link href="/css/bootstrap.min.css" rel="stylesheet">
+ <link href="/css/bootstrap-theme.min.css" rel="stylesheet">
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+ <!--[if lt IE 9]>
+ <script
src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
+ <script
src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
+ <![endif]-->
+ <script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
+ <script src="/js/bootstrap.min.js"></script>
+ <link href="/css/slider.css" rel="stylesheet" type="text/css">
+ <link
href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css"
rel="stylesheet">
+ <title></title>
+
+</head>
+
+<body>
+<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
+<div class="container-fluid">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse"
data-target="#navbar-items">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="/index.html">Slider</a>
+ </div>
+ <div class="collapse navbar-collapse" id="navbar-items">
+ <ul class="nav navbar-nav">
+ <li class="dropdown">
+ <a class="dropdown-toggle" data-toggle="dropdown" href="#">
+ Project <span class="caret"></span>
+ </a>
+<ul class="dropdown-menu">
+<li id="nav_index"><a href="/index.html">Home</a></li>
+<li id="nav_downloads"><a href="/downloads">Downloads</a></li>
+<li id="nav_source"><a
href="https://git-wip-us.apache.org/repos/asf/incubator-slider.git"><i
class="fa fa-external-link"></i> Source</a></li>
+<li><a href="http://www.apache.org/licenses/LICENSE-2.0"><i class="fa
fa-external-link"></i> License</a></li>
+<li class="divider"></li>
+<li class="dropdown-header">Community</li>
+<li id="nav_team"><a href="/team.html">Team</a></li>
+<li id="nav_mailinglists"><a href="/mailing_lists.html">Mailing Lists</a></li>
+<li class="divider"></li>
+<li class="dropdown-header">Tools</li>
+<li id="nav_jira"><a href="https://issues.apache.org/jira/browse/SLIDER"><i
class="fa fa-external-link"></i> Issues</a></li>
+<li id="nav_builds"><a href="https://builds.apache.org/job/Slider-develop"><i
class="fa fa-external-link"></i> Builds</a></li>
+</ul>
+</li>
+
+ <li class="dropdown">
+ <a class="dropdown-toggle" data-toggle="dropdown" href="/design">
+ Design <span class="caret"></span>
+ </a>
+<ul class="dropdown-menu">
+<li id="nav_design_overview"><a
href="/design/architecture.html">Overview</a></li>
+<li id="nav_app_needs"><a
href="/docs/slider_specs/application_needs.html">Application Needs</a></li>
+<li id="nav_spec"><a href="/design/specification/index.html">Expected
Behavior</a></li>
+<li id="nav_registry"><a href="/design/registry/index.html">Service
Registry</a></li>
+<li id="nav_ssl_impl"><a href="/design/ssl_implementation.html">SSL
Implementation</a></li>
+<li id="nav_role_history"><a href="/design/rolehistory.html">Role
History</a></li>
+</ul>
+</li>
+
+
+ <li class="dropdown">
+ <a class="dropdown-toggle" data-toggle="dropdown" href="/developing">
+ Developing <span class="caret"></span>
+ </a>
+<ul class="dropdown-menu">
+<li id="nav_dev_building"><a href="/developing/building.html">Building</a></li>
+<li id="nav_dev_debugging"><a
href="/developing/debugging.html">Debugging</a></li>
+<li id="nav_dev_testing"><a href="/developing/testing.html">Testing</a></li>
+<li id="nav_dev_funtesting"><a
href="/developing/functional_tests.html">Functional Testing</a></li>
+<li id="nav_dev_manual_testing"><a
href="/developing/manual_testing.html">Manual Testing</a></li>
+<li id="nav_releasing"><a href="/developing/releasing.html">Releasing</a></li>
+</ul>
+</li>
+
+ <li class="dropdown">
+ <a class="dropdown-toggle" data-toggle="dropdown" href="#">
+ Using <span class="caret"></span>
+ </a>
+<ul class="dropdown-menu">
+<li id="nav_use_getting_started"><a href="/docs/getting_started.html">Getting
Started</a></li>
+<li id="nav_use_manpage"><a href="/docs/manpage.html">Man Page</a></li>
+<li role="presentation" class="divider"></li>
+<li id="nav_use_app_package"><a href="/docs/slider_specs/index.html">Creating
App Packages</a></li>
+<li role="presentation" class="divider"></li>
+<li id="nav_use_client_config"><a
href="/docs/client-configuration.html">Client Configuration</a></li>
+<li id="nav_use_exitcodes"><a href="/docs/exitcodes.html">Client Exit
Codes</a></li>
+<li role="presentation" class="divider"></li>
+<li id="nav_use_debugging"><a
href="/developing/debugging.html">Debugging</a></li>
+<li id="nav_use_troubleshooting"><a
href="/docs/troubleshooting.html">Troubleshooting</a></li>
+<li role="presentation" class="divider"></li>
+<li id="nav_use_high_availability"><a href="/docs/high_availability.html">High
Availability</a></li>
+<li id="nav_use_security"><a href="/docs/security.html">Security</a></li>
+<li id="nav_am_agent_ssl"><a href="/docs/ssl.html">Agent to AM SSL</a></li>
+<li id="nav_use_app_configuration"><a
href="/docs/configuration/index.html">App Configuration Model</a></li>
+<li id="nav_use_examples"><a href="/docs/examples.html">Provider
Examples</a></li>
+</ul>
+</li>
+
+ <li class="dropdown">
+ <a class="dropdown-toggle" data-toggle="dropdown" href="#">
+ ASF Links <span class="caret"></span>
+ </a>
+<ul class="dropdown-menu">
+<li><a href="http://www.apache.org"><i class="fa fa-external-link"></i> Apache
Software Foundation</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html"><i class="fa
fa-external-link"></i> Sponsorship</a></li>
+<li><a href="http://www.apache.org/security/"><i class="fa
fa-external-link"></i> Security</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html"><i class="fa
fa-external-link"></i> Thanks</a></li>
+</ul>
+</li>
+</ul>
+
+ </div>
+
+</div>
+</nav>
+
+
+<div class="container-fluid">
+<div class="row">
+ <div class="col-md-2" id="sidebar">
+ <div style="text-align: center">
+ <h1><a href="/index.html">Apache Slider (incubating)</a></h1>
+ <hr>
+Latest release: <strong>0.60.0-incubating</strong><br>
+ <br>
+ <a id="download-button-sidebar" class="btn btn-success btn-block"
href="/downloads/" role="button">Download</a>
+ </div>
+ <hr>
+ <a href="http://incubator.apache.org"><img id="logo" alt="Apache Incubator
™" class="img-responsive"
src="http://incubator.apache.org/images/apache-incubator-logo.png"/></a>
+ </div>
+ <div class="col-md-8 col-md-offset-1">
+
+ <div id="content">
+
+ <h1 class="title"></h1>
+
+ <!---
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<h1 id="apache-slider-specification-of-the-cluster-description">Apache Slider
Specification of the "Cluster Description"</h1>
+<ul>
+<li>This is partially obsolete. Slider still returns the Slider Cluster
Description
+as changing it will break most of the unit tests -once these are updated
+this document will be completely obsolete and replaced with a new one.</li>
+</ul>
+<h3 id="notation">Notation:</h3>
+<p>In this document, a full path to a value is represented as a path
+<code>options/zookeeper.port</code> ; an assigment as
<code>options/zookeeper.port=2181</code>.</p>
+<p>A wildcard indicates all entries matching a path:
<code>options/zookeeper.*</code>
+or <code>/roles/*/yarn.memory</code></p>
+<h2 id="core-concepts">Core Concepts</h2>
+<p>The specificaton of an application instance is defined in an application
instance
+directory,
<code>${user.home}/.slidera/clusters/${clustername}/cluster.json</code>)</p>
+<h2 id="sections-for-specifying-and-describing-cluster-state">Sections for
specifying and describing cluster state</h2>
+<p>The cluster desciption is hierarchal, with standardized sections.</p>
+<p>Different sections have one of three roles.</p>
+<ol>
+<li>
+<p>Storage and specification of internal properties used to define a cluster
-properties
+that should not be modified by users -doing so is likely to render the
+cluster undeployable.</p>
+</li>
+<li>
+<p>Storage and specification of the components deployed by Slider.
+These sections define options for the deployed application, the size of
+the deployed application, attributes of the deployed roles, and customizable
+aspects of the Slider application master. </p>
+</li>
+</ol>
+<p>This information defines the <em>desired state</em> of a cluster.</p>
+<p>Users may edit these sections, either via the CLI, or by directly editing
the <code>cluster.json</code> file of
+ a stopped cluster.</p>
+<ol>
+<li>Status information provided by a running cluster. These include:
+ information about the cluster, statistics, information about reach role in
+ the cluster -as well as other aspects of the deployment.</li>
+</ol>
+<p>This information describes the <em>actual state</em> of a cluster.</p>
+<p>Using a common format for both the specification and description of a
cluster
+may be confusing, but it is designed to unify the logic needed to parse
+and process cluster descriptions. There is only one JSON file to parse
+-merely different sections of relevance at different times.</p>
+<h2 id="role-by-role-subsections">Role-by-role subsections</h2>
+<p>A slider-deployed application consists of the single Slider application
master,
+and one or more roles -specific components in the actual application.</p>
+<p>The <code>/roles</code> section contains a listing for each role,
+declaring the number of instances of each role desired,
+possibly along with some details defining the actual execution of the
application.</p>
+<p>The <code>/statistics/roles/</code> section returns statistics on each role,
+while <code>/instances</code> has a per-role entry listing the YARN
+containers hosting instances. </p>
+<h2 id="cluster-information-for-applications">Cluster information for
applications</h2>
+<p>The AM/application provider may generate information for use by client
applications.</p>
+<p>There are three ways to provide this</p>
+<ol>
+<li>A section in which simple key-value pairs are provided for interpretation
+by client applications -usually to generate configuration documents</li>
+<li>A listing of files that may be provided directly to a client. The API to
provide these files is not covered by this document.</li>
+<li>A provider-specific section in which arbitrary values and structures may
be defined. This allows greater flexibility in the information that a provider
can publish -though it does imply custom code to process this data on the
client.</li>
+</ol>
+<h1 id="persistent-specification-sections">Persistent Specification
Sections</h1>
+<h2 id="root">"/" : root</h2>
+<p>The root contains a limited number of key-value pairs, </p>
+<ul>
+<li>
+<p><code>version</code>: string; required.
+The version of the JSON file, as an <code>x.y.z</code> version string.</p>
+<ol>
+<li>Applications MUST verify that they can process a specific version.</li>
+<li>The version number SHOULD be incremented in the minor "z" value
+after enhancements that are considered backwards compatible.
+Incompatible updates MUST be updated with a new "y" value.
+The final, "x" number, is to be reserved for major reworkings
+of the cluster specification itself (this document or its
+successors).</li>
+</ol>
+</li>
+<li>
+<p><code>name</code>: string; required. Cluster name; </p>
+</li>
+<li><code>type</code>: string; required.
+Reference to the provider type -this triggers a Hadoop configuration
+property lookup to find the implementation classes.</li>
+<li><code>valid</code>: boolean; required.
+Flag to indicate whether or not a specification is considered valid.
+If false, the rest of the document is in an unknown state.</li>
+</ul>
+<h2 id="slider-internal-internal-confiugration"><code>/slider-internal</code>:
internal confiugration</h2>
+<p>Stores internal configuration options. These parameters
+are not defined in this document.</p>
+<h2 id="diagnostics-diagnostics-sections"><code>/diagnostics</code>:
diagnostics sections</h2>
+<p>Persisted list of information about Slider. </p>
+<p>Static information about the file history</p>
+<div class="codehilite"><pre>"<span class="n">diagnostics</span>"
<span class="p">:</span> <span class="p">{</span>
+ "<span class="n">create</span><span class="p">.</span><span
class="n">hadoop</span><span class="p">.</span><span
class="n">deployed</span><span class="p">.</span><span
class="n">info</span>" <span class="p">:</span>
+ "<span class="p">(</span><span class="n">detached</span> <span
class="n">from</span> <span class="n">release</span><span
class="o">-</span>2<span class="p">.</span>3<span class="p">.</span>0<span
class="p">)</span> <span class="p">@</span><span
class="n">dfe46336fbc6a044bc124392ec06b85</span>"<span class="p">,</span>
+ "<span class="n">create</span><span class="p">.</span><span
class="n">application</span><span class="p">.</span><span
class="n">build</span><span class="p">.</span><span class="n">info</span>"
<span class="p">:</span>
+ "<span class="n">Slider</span> <span class="n">Core</span><span
class="o">-</span>0<span class="p">.</span>13<span class="p">.</span>0<span
class="o">-</span><span class="n">SNAPSHOT</span> <span class="n">Built</span>
<span class="n">against</span> <span class="n">commit</span># 1<span
class="n">a94ee4aa1</span> <span class="n">on</span> <span
class="n">Java</span> 1<span class="p">.</span>7<span class="p">.</span>0<span
class="n">_45</span> <span class="n">by</span> <span
class="n">stevel</span>"<span class="p">,</span>
+ "<span class="n">create</span><span class="p">.</span><span
class="n">hadoop</span><span class="p">.</span><span
class="n">build</span><span class="p">.</span><span class="n">info</span>"
<span class="p">:</span> "2<span class="p">.</span>3<span
class="p">.</span>0"<span class="p">,</span>
+ "<span class="n">create</span><span class="p">.</span><span
class="n">time</span><span class="p">.</span><span
class="n">millis</span>" <span class="p">:</span>
"1393512091276"<span class="p">,</span>
+<span class="p">},</span>
+</pre></div>
+
+
+<p>This information is not intended to provide anything other
+than diagnostics to an application; the values and their meaning
+are not defined. All applications MUST be able to process
+an empty or absent <code>/diagnostics</code> section.</p>
+<h2 id="options-cluster-options">Options: cluster options</h2>
+<p>A persisted list of options used by Slider and its providers to build up
the AM
+and the configurations of the deployed service components</p>
+<div class="codehilite"><pre>"<span class="n">options</span>"<span
class="p">:</span> <span class="p">{</span>
+ "<span class="n">slider</span><span class="p">.</span><span
class="n">am</span><span class="p">.</span><span
class="n">monitoring</span><span class="p">.</span><span
class="n">enabled</span>"<span class="p">:</span> "<span
class="n">false</span>"<span class="p">,</span>
+ "<span class="n">slider</span><span class="p">.</span><span
class="n">cluster</span><span class="p">.</span><span
class="n">application</span><span class="p">.</span><span
class="n">image</span><span class="p">.</span><span
class="n">path</span>"<span class="p">:</span> "<span
class="n">hdfs</span><span class="p">:</span><span class="o">//</span><span
class="n">sandbox</span><span class="p">:</span>8020<span
class="o">/</span><span class="n">hbase</span><span class="p">.</span><span
class="n">tar</span><span class="p">.</span><span
class="n">gz</span>"<span class="p">,</span>
+ "<span class="n">slider</span><span class="p">.</span><span
class="n">container</span><span class="p">.</span><span
class="n">failure</span><span class="p">.</span><span
class="n">threshold</span>"<span class="p">:</span> "5"<span
class="p">,</span>
+ "<span class="n">slider</span><span class="p">.</span><span
class="n">container</span><span class="p">.</span><span
class="n">failure</span><span class="p">.</span><span
class="n">shortlife</span>"<span class="p">:</span> "60"<span
class="p">,</span>
+ "<span class="n">zookeeper</span><span class="p">.</span><span
class="n">port</span>"<span class="p">:</span> "2181"<span
class="p">,</span>
+ "<span class="n">zookeeper</span><span class="p">.</span><span
class="n">path</span>"<span class="p">:</span> "<span
class="o">/</span><span
class="n">yarnapps_slider_stevel_test_cluster_lifecycle</span>"<span
class="p">,</span>
+ "<span class="n">zookeeper</span><span class="p">.</span><span
class="n">hosts</span>"<span class="p">:</span> "<span
class="n">sandbox</span>"<span class="p">,</span>
+ "<span class="n">site</span><span class="p">.</span><span
class="n">hbase</span><span class="p">.</span><span
class="n">master</span><span class="p">.</span><span
class="n">startup</span><span class="p">.</span><span
class="n">retainassign</span>"<span class="p">:</span> "<span
class="n">true</span>"<span class="p">,</span>
+ "<span class="n">site</span><span class="p">.</span><span
class="n">fs</span><span class="p">.</span><span
class="n">defaultFS</span>"<span class="p">:</span> "<span
class="n">hdfs</span><span class="p">:</span><span class="o">//</span><span
class="n">sandbox</span><span class="p">:</span>8020"<span
class="p">,</span>
+ "<span class="n">site</span><span class="p">.</span><span
class="n">fs</span><span class="p">.</span><span class="n">default</span><span
class="p">.</span><span class="n">name</span>"<span class="p">:</span>
"<span class="n">hdfs</span><span class="p">:</span><span
class="o">//</span><span class="n">sandbox</span><span
class="p">:</span>8020"<span class="p">,</span>
+ "<span class="n">env</span><span class="p">.</span><span
class="n">MALLOC_ARENA_MAX</span>"<span class="p">:</span>
"4"<span class="p">,</span>
+ "<span class="n">site</span><span class="p">.</span><span
class="n">hbase</span><span class="p">.</span><span
class="n">master</span><span class="p">.</span><span class="n">info</span><span
class="p">.</span><span class="n">port</span>"<span class="p">:</span>
"0"<span class="p">,</span>
+ "<span class="n">site</span><span class="p">.</span><span
class="n">hbase</span><span class="p">.</span><span
class="n">regionserver</span><span class="p">.</span><span
class="n">info</span><span class="p">.</span><span
class="n">port</span>"<span class="p">:</span> "0"
+<span class="p">},</span>
+</pre></div>
+
+
+<p>Many of the properties are automatically set by Slider when a cluster is
constructed.
+They may be edited afterwards.</p>
+<h3 id="standard-option-types">Standard Option types</h3>
+<p>All option values MUST be strings.</p>
+<h4 id="slider"><code>slider.</code></h4>
+<p>All options that begin with <code>slider.</code> are intended for use by
slider and
+providers to configure the Slider application master itself, and the
+application. For example, <code>slider.container.failure.threshold</code>
defines
+the number of times a container must fail before the role (and hence the
cluster)
+is considered to have failed. As another example, the zookeeper bindings
+such as <code>zookeeper.hosts</code> are read by the HBase and Ambari
providers, and
+used to modify the applications' site configurations with application-specific
+properties.</p>
+<h4 id="site"><code>site.</code></h4>
+<p>These are properties that are expected to be propagated to an application's
+ <code>site</code> configuration -if such a configuration is created. For
HBase, the
+ site file is <code>hbase-site.xml</code>; for Accumulo it is
<code>accumulo-site.xml</code></p>
+<ol>
+<li>The destination property is taken by removing the prefix
<code>site.</code>, and
+setting the shortened key with the defined value.</li>
+<li>Not all applications have the notion of a site file; These applications MAY
+ignore the settings.</li>
+<li>Providers MAY validate site settings to recognise invalid values. This
+aids identifying and diagnosing startup problems.</li>
+</ol>
+<h4 id="env"><code>env.</code></h4>
+<p>These are options to configure environment variables in the roles. When
+a container is started, all <code>env.</code> options have the prefix removed,
and
+are then set as environment variables in the target context.</p>
+<ol>
+<li>The Slider AM uses these values to configure itself, after following the
+option/role merge process.</li>
+<li>Application providers SHOULD follow the same process.</li>
+</ol>
+<h2 id="roles-role-declarations">'/roles': role declarations</h2>
+<p>The <code>/roles/$ROLENAME/</code> clauses each provide options for a
+specific role.</p>
+<p>This includes
+1. <code>role.instances</code>: defines the number of instances of a role to
create
+1. <code>env.</code> environment variables for launching the container
+1. <code>yarn.</code> properties to configure YARN requests.
+1. <code>jvm.heapsize</code>: an option supported by some providers to
+fix the heap size of a component.</p>
+<div class="codehilite"><pre> "<span class="n">worker</span>"<span
class="p">:</span> <span class="p">{</span>
+ "<span class="n">yarn</span><span class="p">.</span><span
class="n">memory</span>"<span class="p">:</span> "768"<span
class="p">,</span>
+ "<span class="n">env</span><span class="p">.</span><span
class="n">MALLOC_ARENA_MAX</span>"<span class="p">:</span>
"4"<span class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "0"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">name</span>"<span class="p">:</span> "<span
class="n">worker</span>"<span class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">failed</span><span class="p">.</span><span
class="n">starting</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "0"<span
class="p">,</span>
+ "<span class="n">jvm</span><span class="p">.</span><span
class="n">heapsize</span>"<span class="p">:</span> "512<span
class="n">M</span>"<span class="p">,</span>
+ "<span class="n">yarn</span><span class="p">.</span><span
class="n">vcores</span>"<span class="p">:</span> "1"<span
class="p">,</span>
+ <span class="p">},</span>
+</pre></div>
+
+
+<p>The role <code>slider</code> represents the Slider Application Master
itself.</p>
+<div class="codehilite"><pre> "<span class="n">slider</span>"<span
class="p">:</span> <span class="p">{</span>
+ "<span class="n">yarn</span><span class="p">.</span><span
class="n">memory</span>"<span class="p">:</span> "256"<span
class="p">,</span>
+ "<span class="n">env</span><span class="p">.</span><span
class="n">MALLOC_ARENA_MAX</span>"<span class="p">:</span>
"4"<span class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "1"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">name</span>"<span class="p">:</span> "<span
class="n">slider</span>"<span class="p">,</span>
+ "<span class="n">jvm</span><span class="p">.</span><span
class="n">heapsize</span>"<span class="p">:</span> "256<span
class="n">M</span>"<span class="p">,</span>
+ "<span class="n">yarn</span><span class="p">.</span><span
class="n">vcores</span>"<span class="p">:</span> "1"<span
class="p">,</span>
+ <span class="p">},</span>
+</pre></div>
+
+
+<p>Providers may support a fixed number of roles -or they may support a dynamic
+number of roles defined at run-time, potentially from other data sources.</p>
+<h2 id="how-options-and-role-options-are-merged">How <code>/options</code> and
role options are merged.</h2>
+<p>The options declared for a specific role are merged with the cluster-wide
options
+to define the final options for a role. This is implemented in a simple
+override model: role-specific options can override any site-wide options.</p>
+<ol>
+<li>The options defined in <code>/options</code> are used to create the
initial option
+map for each role.</li>
+<li>The role's options are then applied to the map -this may overwrite
definitions
+from the <code>/options</code> section.</li>
+<li>There is no way to "undefine" a cluster option, merely overwrite it. </li>
+<li>The merged map is then used by the provider to create the component.</li>
+<li>The special <code>slider</code> role is used in the CLI to define the
attributes of the AM.</li>
+</ol>
+<p>Options set on a role do not affect any site-wide options: they
+are specific to the invidual role being created. </p>
+<p>As such, overwriting a <code>site.</code> option may have no effect -or it
it may
+change the value of a site configuration document <em>in that specific role
instance</em>.</p>
+<h3 id="standard-role-options">Standard role options</h3>
+<ul>
+<li><code>role.instances</code> : number; required.
+ The number of instances of that role desired in the application.</li>
+<li><code>yarn.vcores</code> : number.
+ The number of YARN "virtual cores" to request for each role instance.
+ The larger the number, the more CPU allocation -and potentially the longer
+ time to satisfy the request and so instantiate the node.
+ If the value '"-1"<code>is used -for any role but</code>slider`-the maximum
value
+ available to the application is requested.</li>
+<li>
+<p><code>yarn.memory</code> : number.
+ The number in Megabytes of RAM to request for each role instance.
+ The larger the number, the more memory allocation -and potentially the longer
+ time to satisfy the request and so instantiate the node.
+ If the value '"-1"<code>is used -for any role but</code>slider`-the maximum
value
+ available to the application is requested.</p>
+</li>
+<li>
+<p><code>env.</code> environment variables.
+String environment variables to use when setting up the container</p>
+</li>
+</ul>
+<h3 id="provider-specific-role-options">Provider-specific role options</h3>
+<ul>
+<li><code>jvm.heapsize</code> -the amount of memory for a provider to allocate
for
+ a processes JVM. Example "512M". This option MAY be implemented by a
provider.</li>
+</ul>
+<h1 id="dynamic-information-sections">Dynamic Information Sections</h1>
+<p>These are the parts of the document that provide dynamic run-time
+information about an application. They are provided by the
+Slider Application Master when a request for the cluster status is issued.</p>
+<h2 id="info"><code>/info</code></h2>
+<p>Dynamic set of string key-value pairs containing
+information about the running application -as provided by th </p>
+<p>The values in this section are not normatively defined. </p>
+<p>Here are some standard values</p>
+<ul>
+<li>
+<p><code>slider.am.restart.supported"</code> whether the AM supports service
restart without killing all the containers hosting
+ the role instances:</p>
+<div class="codehilite"><pre>"<span class="n">slider</span><span
class="p">.</span><span class="n">am</span><span class="p">.</span><span
class="n">restart</span><span class="p">.</span><span
class="n">supported</span>" <span class="p">:</span> "<span
class="n">false</span>"<span class="p">,</span>
+</pre></div>
+
+
+</li>
+<li>
+<p>timestamps of the cluster going live, and when the status query was made</p>
+<div class="codehilite"><pre>"<span class="n">live</span><span
class="p">.</span><span class="n">time</span>" <span class="p">:</span>
"27 <span class="n">Feb</span> 2014 14<span class="p">:</span>41<span
class="p">:</span>56 <span class="n">GMT</span>"<span class="p">,</span>
+"<span class="n">live</span><span class="p">.</span><span
class="n">time</span><span class="p">.</span><span
class="n">millis</span>" <span class="p">:</span>
"1393512116881"<span class="p">,</span>
+"<span class="n">status</span><span class="p">.</span><span
class="n">time</span>" <span class="p">:</span> "27 <span
class="n">Feb</span> 2014 14<span class="p">:</span>42<span
class="p">:</span>08 <span class="n">GMT</span>"<span class="p">,</span>
+"<span class="n">status</span><span class="p">.</span><span
class="n">time</span><span class="p">.</span><span
class="n">millis</span>" <span class="p">:</span>
"1393512128726"<span class="p">,</span>
+</pre></div>
+
+
+</li>
+<li>
+<p>yarn data provided to the AM</p>
+<div class="codehilite"><pre>"<span class="n">yarn</span><span
class="p">.</span><span class="n">vcores</span>" <span class="p">:</span>
"32"<span class="p">,</span>
+"<span class="n">yarn</span><span class="p">.</span><span
class="n">memory</span>" <span class="p">:</span> "2048"<span
class="p">,</span>
+</pre></div>
+
+
+</li>
+<li>
+<p>information about the application and hadoop versions in use. Here
+ the application was built using Hadoop 2.3.0, but is running against the
version
+ of Hadoop built for HDP-2.</p>
+<div class="codehilite"><pre>"<span class="n">status</span><span
class="p">.</span><span class="n">application</span><span
class="p">.</span><span class="n">build</span><span class="p">.</span><span
class="n">info</span>" <span class="p">:</span> "<span
class="n">Slider</span> <span class="n">Core</span><span
class="o">-</span>0<span class="p">.</span>13<span class="p">.</span>0<span
class="o">-</span><span class="n">SNAPSHOT</span> <span class="n">Built</span>
<span class="n">against</span> <span class="n">commit</span># 1<span
class="n">a94ee4aa1</span> <span class="n">on</span> <span
class="n">Java</span> 1<span class="p">.</span>7<span class="p">.</span>0<span
class="n">_45</span> <span class="n">by</span> <span
class="n">stevel</span>"<span class="p">,</span>
+"<span class="n">status</span><span class="p">.</span><span
class="n">hadoop</span><span class="p">.</span><span
class="n">build</span><span class="p">.</span><span class="n">info</span>"
<span class="p">:</span> "2<span class="p">.</span>3<span
class="p">.</span>0"<span class="p">,</span>
+"<span class="n">status</span><span class="p">.</span><span
class="n">hadoop</span><span class="p">.</span><span
class="n">deployed</span><span class="p">.</span><span
class="n">info</span>" <span class="p">:</span> "<span
class="n">bigwheel</span><span class="o">-</span><span
class="n">m16</span><span class="o">-</span>2<span class="p">.</span>2<span
class="p">.</span>0 <span class="p">@</span>704<span
class="n">f1e463ebc4fb89353011407e965</span>"
+</pre></div>
+
+
+</li>
+</ul>
+<p>As with the <code>/diagnostics</code> section, this area is primarily
intended
+for debugging.</p>
+<p>## <code>/instances</code>: instance list</p>
+<p>Information about the live containers in a cluster</p>
+<div class="codehilite"><pre> "<span
class="n">instances</span>"<span class="p">:</span> <span
class="p">{</span>
+ "<span class="n">slider</span>"<span class="p">:</span> <span
class="p">[</span> "<span
class="n">container_1393511571284_0002_01_000001</span>" <span
class="p">],</span>
+ "<span class="n">master</span>"<span class="p">:</span> <span
class="p">[</span> "<span
class="n">container_1393511571284_0002_01_000003</span>" <span
class="p">],</span>
+ "<span class="n">worker</span>"<span class="p">:</span> <span
class="p">[</span>
+ "<span
class="n">container_1393511571284_0002_01_000002</span>"<span
class="p">,</span>
+ "<span class="n">container_1393511571284_0002_01_000004</span>"
+ <span class="p">]</span>
+ <span class="p">},</span>
+</pre></div>
+
+
+<h2 id="status-detailed-dynamic-state"><code>/status</code>: detailed dynamic
state</h2>
+<p>This provides more detail on the application including live and failed
instances</p>
+<h3
id="statuslive-live-role-instances-by-container"><code>/status/live</code>:
live role instances by container</h3>
+<div class="codehilite"><pre>"<span class="n">cluster</span>"<span
class="p">:</span> <span class="p">{</span>
+ "<span class="n">live</span>"<span class="p">:</span> <span
class="p">{</span>
+ "<span class="n">worker</span>"<span class="p">:</span> <span
class="p">{</span>
+ "<span
class="n">container_1394032374441_0001_01_000003</span>"<span
class="p">:</span> <span class="p">{</span>
+ "<span class="n">name</span>"<span class="p">:</span>
"<span class="n">container_1394032374441_0001_01_000003</span>"<span
class="p">,</span>
+ "<span class="n">role</span>"<span class="p">:</span>
"<span class="n">worker</span>"<span class="p">,</span>
+ "<span class="n">roleId</span>"<span class="p">:</span>
1<span class="p">,</span>
+ "<span class="n">createTime</span>"<span class="p">:</span>
1394032384451<span class="p">,</span>
+ "<span class="n">startTime</span>"<span class="p">:</span>
1394032384503<span class="p">,</span>
+ "<span class="n">released</span>"<span class="p">:</span>
<span class="n">false</span><span class="p">,</span>
+ "<span class="n">host</span>"<span class="p">:</span>
"192<span class="p">.</span>168<span class="p">.</span>1<span
class="p">.</span>88"<span class="p">,</span>
+ "<span class="n">state</span>"<span class="p">:</span>
3<span class="p">,</span>
+ "<span class="n">exitCode</span>"<span class="p">:</span>
0<span class="p">,</span>
+ "<span class="n">command</span>"<span class="p">:</span>
"<span class="n">hbase</span><span class="o">-</span>0<span
class="p">.</span>98<span class="p">.</span>0<span class="o">/</span><span
class="n">bin</span><span class="o">/</span><span class="n">hbase</span> <span
class="o">--</span><span class="n">config</span> $<span
class="n">PROPAGATED_CONFDIR</span> <span class="n">regionserver</span> <span
class="n">start</span> 1<span class="o">><</span><span
class="n">LOG_DIR</span><span class="o">>/</span><span
class="n">region</span><span class="o">-</span><span
class="n">server</span><span class="p">.</span><span class="n">txt</span>
2<span class="o">>&</span>1 <span class="p">;</span> "<span
class="p">,</span>
+ "<span class="n">diagnostics</span>"<span class="p">:</span>
""<span class="p">,</span>
+ "<span class="n">environment</span>"<span class="p">:</span>
<span class="p">[</span>
+ "<span class="n">HADOOP_USER_NAME</span><span
class="p">=</span><span class="o">\</span>"<span
class="n">slider</span><span class="o">\</span>""<span
class="p">,</span>
+ "<span class="n">HBASE_LOG_DIR</span><span
class="p">=</span><span class="o">\</span>"<span class="o">/</span><span
class="n">tmp</span><span class="o">/</span><span class="n">slider</span><span
class="o">-</span><span class="n">slider</span><span
class="o">\</span>""<span class="p">,</span>
+ "<span class="n">HBASE_HEAPSIZE</span><span
class="p">=</span><span class="o">\</span>"256<span
class="o">\</span>""<span class="p">,</span>
+ "<span class="n">MALLOC_ARENA_MAX</span><span
class="p">=</span><span class="o">\</span>"4<span
class="o">\</span>""<span class="p">,</span>
+ "<span class="n">PROPAGATED_CONFDIR</span><span
class="p">=</span><span class="o">\</span>"$<span
class="n">PWD</span><span class="o">/</span><span
class="n">propagatedconf</span><span class="o">\</span>""
+ <span class="p">]</span>
+ <span class="p">}</span>
+ <span class="p">}</span>
+ <span class="n">failed</span> <span class="p">:</span> <span
class="p">{}</span>
+ <span class="p">}</span>
+</pre></div>
+
+
+<p>All live instances MUST be described in <code>/status/live</code></p>
+<p>Failed clusters MAY be listed in the <code>/status/failed</code> section,
specifically,
+a limited set of recently failed clusters SHOULD be provided.</p>
+<p>Future versions of this document may introduce more sections under
<code>/status</code>.</p>
+<h3
id="statusrolestatus-role-status-information"><code>/status/rolestatus</code>:
role status information</h3>
+<p>This lists the current status of the roles:
+How many are running vs requested, how many are being
+released.</p>
+<div class="codehilite"><pre>"<span
class="n">rolestatus</span>"<span class="p">:</span> <span
class="p">{</span>
+ "<span class="n">worker</span>"<span class="p">:</span> <span
class="p">{</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "2"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">requested</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "0"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">failed</span><span class="p">.</span><span
class="n">starting</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "0"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">actual</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "2"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">releasing</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "0"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">failed</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "1"
+ <span class="p">},</span>
+ "<span class="n">slider</span>"<span class="p">:</span> <span
class="p">{</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "1"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">requested</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "0"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">name</span>"<span class="p">:</span> "<span
class="n">slider</span>"<span class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">actual</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "1"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">releasing</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "0"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">failed</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "0"
+ <span class="p">},</span>
+ "<span class="n">master</span>"<span class="p">:</span> <span
class="p">{</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "1"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">requested</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "1"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">name</span>"<span class="p">:</span> "<span
class="n">master</span>"<span class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">failed</span><span class="p">.</span><span
class="n">starting</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "0"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">actual</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "0"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">releasing</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "0"<span
class="p">,</span>
+ "<span class="n">role</span><span class="p">.</span><span
class="n">failed</span><span class="p">.</span><span
class="n">instances</span>"<span class="p">:</span> "0"
+ <span class="p">}</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<h3
id="statusprovider-provider-specific-information"><code>/status/provider</code>:
provider-specific information</h3>
+<p>Providers MAY publish information to the <code>/status/provider</code>
section.</p>
+<ol>
+<li>There's no restriction on what JSON is permitted in this section.</li>
+<li>Providers may make their own updates to the application state to read and
+write this block -operations that are asynchronous to any status queries.</li>
+</ol>
+<h2 id="statistics-aggregate-statistics"><code>/statistics</code>: aggregate
statistics</h2>
+<p>Statistics on the cluster and each role in the cluster </p>
+<p>Better to have a specific <code>/statistics/cluster</code> element,
+and to move the roles' statistics under <code>/statistics/roles</code>:</p>
+<div class="codehilite"><pre>"<span
class="n">statistics</span>"<span class="p">:</span> <span
class="p">{</span>
+ "<span class="n">cluster</span>"<span class="p">:</span> <span
class="p">{</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">unknown</span><span class="p">.</span><span
class="n">completed</span>"<span class="p">:</span> 0<span
class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">start</span><span class="p">.</span><span
class="n">completed</span>"<span class="p">:</span> 3<span
class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">live</span>"<span class="p">:</span> 1<span class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">start</span><span class="p">.</span><span
class="n">failed</span>"<span class="p">:</span> 0<span class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">failed</span>"<span class="p">:</span> 0<span class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">completed</span>"<span class="p">:</span> 0<span
class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">surplus</span>"<span class="p">:</span> 0
+ <span class="p">},</span>
+ "<span class="n">roles</span>"<span class="p">:</span> <span
class="p">{</span>
+ "<span class="n">worker</span>"<span class="p">:</span> <span
class="p">{</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">start</span><span class="p">.</span><span
class="n">completed</span>"<span class="p">:</span> 0<span
class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">live</span>"<span class="p">:</span> 2<span class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">start</span><span class="p">.</span><span
class="n">failed</span>"<span class="p">:</span> 0<span class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">active</span><span class="p">.</span><span
class="n">requests</span>"<span class="p">:</span> 0<span
class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">failed</span>"<span class="p">:</span> 0<span class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">completed</span>"<span class="p">:</span> 0<span
class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">desired</span>"<span class="p">:</span> 2<span class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">requested</span>"<span class="p">:</span> 0
+ <span class="p">},</span>
+ "<span class="n">master</span>"<span class="p">:</span> <span
class="p">{</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">start</span><span class="p">.</span><span
class="n">completed</span>"<span class="p">:</span> 0<span
class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">live</span>"<span class="p">:</span> 1<span class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">start</span><span class="p">.</span><span
class="n">failed</span>"<span class="p">:</span> 0<span class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">active</span><span class="p">.</span><span
class="n">requests</span>"<span class="p">:</span> 0<span
class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">failed</span>"<span class="p">:</span> 0<span class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">completed</span>"<span class="p">:</span> 0<span
class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">desired</span>"<span class="p">:</span> 1<span class="p">,</span>
+ "<span class="n">containers</span><span class="p">.</span><span
class="n">requested</span>"<span class="p">:</span> 0
+ <span class="p">}</span>
+ <span class="p">}</span>
+<span class="p">},</span>
+</pre></div>
+
+
+<p><code>/statistics/cluster</code> provides aggregate statistics for the
entire cluster.</p>
+<p>Under <code>/statistics/roles</code> MUST come an entry for each role in
the cluster.</p>
+<p>All simple values in statistics section are integers.</p>
+<h3 id="clientproperties"><code>/clientProperties</code></h3>
+<p>The <code>/clientProperties</code> section contains key-val pairs of type
+string, the expectation being this is where providers can insert specific
+single attributes for client applications.</p>
+<p>These values can be converted to application-specific files on the client,
+in code -as done today in the Slider CLI-, or via template expansion (beyond
+the scope of this document.</p>
+<h3 id="clientfiles"><code>/clientfiles</code></h3>
+<p>This section list all files that an application instance MAY generate
+for clients, along with with a description.</p>
+<div class="codehilite"><pre>"<span class="o">/</span><span
class="n">clientfiles</span><span class="o">/</span><span
class="n">hbase</span><span class="o">-</span><span class="n">site</span><span
class="p">.</span><span class="n">xml</span>"<span class="p">:</span>
"<span class="n">site</span> <span class="n">information</span> <span
class="k">for</span> <span class="n">HBase</span>"
+"<span class="o">/</span><span class="n">clientfiles</span><span
class="o">/</span><span class="n">log4</span><span class="p">.</span><span
class="k">properties</span>"<span class="p">:</span> "<span
class="n">log4</span><span class="p">.</span><span class="n">property</span>
<span class="n">file</span>"
+</pre></div>
+
+
+<p>Client configuration file retrieval is by other means; this
+status operation merely lists files that are available;</p>
+<h3 id="aggregate-example">Aggregate Example</h3>
+ </div>
+
+ <div id="footer">
+ <a alt="Apache Software Foundation" href="http://www.apache.org">
+ <img id="asf-logo" alt="Apache Software Foundation"
src="/images/feather-small.gif" width="100">
+ </a>
+ <div class="copyright">
+ <p>
+ Copyright © 2011-2014 The Apache Software Foundation, Licensed
under
+ the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
License, Version 2.0</a>.
+ Apache Slider, Slider, Apache, the Apache feather logo, and the Apache
Incubator
+ project logo are trademarks of the <a
href="http://www.apache.org">Apache Software Foundation</a>.<br />
+ Site created with <a href="http://getbootstrap.com/">Bootstrap</a>
including icons from <a href="http://glyphicons.com/">GLYPHICONS</a> and <a
href="http://fontawesome.io/">Font Awesome</a>.
+ </p>
+ </div>
+ </div>
+ </div>
+
+</div>
+</div>
+
+<script type="text/javascript">
+
+</script>
+</body>
+</html>
Modified: websites/staging/slider/trunk/content/docs/examples.html
==============================================================================
--- websites/staging/slider/trunk/content/docs/examples.html (original)
+++ websites/staging/slider/trunk/content/docs/examples.html Wed Mar 25
17:59:38 2015
@@ -252,7 +252,10 @@ to keep the log bloat under control.</p>
<h3
id="optional-point-binslider-at-your-chosen-cluster-configuration">Optional:
point bin/slider at your chosen cluster configuration</h3>
-<p>export
SLIDER_CONF_DIR=~/Projects/slider/slider-core/src/test/configs/ubuntu-secure/slider</p>
+<div class="codehilite"><pre><span class="n">export</span> <span
class="n">SLIDER_CONF_DIR</span><span class="p">=</span><span
class="o">~/</span><span class="n">Projects</span><span class="o">/</span><span
class="n">slider</span><span class="o">/</span><span
class="n">slider</span><span class="o">-</span><span class="n">core</span><span
class="o">/</span><span class="n">src</span><span class="o">/</span><span
class="n">test</span><span class="o">/</span><span
class="n">configs</span><span class="o">/</span><span
class="n">ubuntu</span><span class="o">-</span><span
class="n">secure</span><span class="o">/</span><span class="n">slider</span>
+</pre></div>
+
+
<h2 id="optional-clean-up-any-existing-slider-cluster-details">Optional: Clean
up any existing slider cluster details</h2>
<p>This is for demos only, otherwise you lose the clusters and their
databases.</p>
<div class="codehilite"><pre><span class="n">hdfs</span> <span
class="n">dfs</span> <span class="o">-</span><span class="n">rm</span> <span
class="o">-</span><span class="n">r</span> <span class="n">hdfs</span><span
class="p">:</span><span class="o">//</span><span class="n">master</span><span
class="p">:</span>9090<span class="o">/</span><span class="n">user</span><span
class="o">/</span><span class="n">home</span><span class="o">/</span><span
class="n">stevel</span><span class="o">/</span><span class="p">.</span><span
class="n">slider</span>
Modified: websites/staging/slider/trunk/content/docs/getting_started.html
==============================================================================
--- websites/staging/slider/trunk/content/docs/getting_started.html (original)
+++ websites/staging/slider/trunk/content/docs/getting_started.html Wed Mar 25
17:59:38 2015
@@ -397,7 +397,7 @@ This path is also reflected in appConfig
<p>Slider needs to know what components (and how many components) to
deploy.</p>
<p>As Slider creates each instance of a component in its own YARN container,
it also needs to know what to ask YARN for in terms of <strong>memory</strong>
and <strong>CPU</strong> for those containers. </p>
<p>All this information goes into the <strong>Resources Specification</strong>
file ("Resource Spec") named <code>resources.json</code>. The Resource Spec
tells Slider how many instances of each component in the application (such as
an HBase RegionServer) to deploy and the parameters for YARN.</p>
-<p>An application package should contain the default resources.json and you
can start from there. Or you can create one based on <a
href="slider_specs/resource_specification.html">Resource Specification</a>.</p>
+<p>An application package should contain the default resources.json and you
can start from there. Or you can create one based on <a
href="/configuration/resource.html">Resource Specification</a>).</p>
<p>Store the Resource Spec file on your local disk (e.g.
<code>/tmp/resources.json</code>).</p>
<h4 id="wzxhzdk44wzxhzdk45application-configuration"><a
name="appconfig"></a>Application Configuration</h4>
<p>Alongside the Resource Spec there is the <strong>Application
Configuration</strong> file ("App Config") which includes parameters that are
specific to the application, rather than YARN. The App Config is a file that
contains all application configuration. This configuration is applied to the
default configuration provided by the application definition and then handed
off to the associated component agent.</p>
Modified: websites/staging/slider/trunk/content/docs/high_availability.html
==============================================================================
--- websites/staging/slider/trunk/content/docs/high_availability.html (original)
+++ websites/staging/slider/trunk/content/docs/high_availability.html Wed Mar
25 17:59:38 2015
@@ -274,7 +274,6 @@ for setup details.</p>
<span class="nt"><property></span>
<span class="nt"><description></span>The class to use as the
persistent store.<span class="nt"></description></span>
<span
class="nt"><name></span>yarn.resourcemanager.store.class<span
class="nt"></name></span>
- <span
class="cp"><!ÂÂ--value></span>org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore<span
class="err"><</span>/valueÂ-->
<span
class="nt"><value></span>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore<span
class="nt"></value></span>
<span class="nt"></property></span>
@@ -284,7 +283,7 @@ for setup details.</p>
org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
as the value for yarn.resourcemanager.store.class
<span class="nt"></description></span>
- <span
class="nt"><name></span>yarn.resourcemanager.zkÂ-address<span
class="nt"></name></span>
+ <span
class="nt"><name></span>yarn.resourcemanager.zk.address<span
class="nt"></name></span>
<span class="nt"><value></span>127.0.0.1:2181<span
class="nt"></value></span>
<span class="nt"></property></span>
</pre></div>
Modified: websites/staging/slider/trunk/content/docs/security.html
==============================================================================
--- websites/staging/slider/trunk/content/docs/security.html (original)
+++ websites/staging/slider/trunk/content/docs/security.html Wed Mar 25
17:59:38 2015
@@ -270,7 +270,7 @@ rights of the user that created the clus
<p>The Application Master will read in the JSON cluster specification file,
and instantiate the
relevant number of componentss. </p>
<h3 id="the-keytab-distributionaccess-options">The Keytab distribution/access
Options</h3>
-<p>Rather than relying on delegation token based authentication mechanisms,
the AM leverages keytab files for obtaining the principals to authenticate to
the configured cluster KDC. In order to perform this login the AM requires
access to a keytab file that contains the principal representing the user
identity to be associated with the launched application instance (e.g. in an
HBase installation you may elect to leverage the âhbaseâ principal for this
purpose). There are two mechanisms supported for keytab access and/or
distribution:</p>
+<p>Rather than relying on delegation token based authentication mechanisms,
the AM leverages keytab files for obtaining the principals to authenticate to
the configured cluster KDC. In order to perform this login the AM requires
access to a keytab file that contains the principal representing the user
identity to be associated with the launched application instance (e.g. in an
HBase installation you may elect to leverage the <code>hbase</code> principal
for this purpose). There are two mechanisms supported for keytab access and/or
distribution:</p>
<h4 id="local-keytab-file-access">Local Keytab file access:</h4>
<p>An application deployer may choose to pre-distribute the keytab files
required to the Node Manager (NM) hosts in a Yarn cluster. In that instance the
appConfig.json requires the following properties:</p>
<div class="codehilite"><pre><span class="p">.</span> <span class="p">.</span>
<span class="p">.</span>
@@ -278,13 +278,13 @@ relevant number of componentss. </p>
"<span class="n">slider</span><span class="o">-</span><span
class="n">appmaster</span>"<span class="p">:</span> <span
class="p">{</span>
"<span class="n">jvm</span><span class="p">.</span><span
class="n">heapsize</span>"<span class="p">:</span> "256<span
class="n">M</span>"<span class="p">,</span>
"<span class="n">slider</span><span class="p">.</span><span
class="n">am</span><span class="p">.</span><span class="n">keytab</span><span
class="p">.</span><span class="n">local</span><span class="p">.</span><span
class="n">path</span>"<span class="p">:</span> "<span
class="o">/</span><span class="n">etc</span><span class="o">/</span><span
class="n">security</span><span class="o">/</span><span
class="n">keytabs</span><span class="o">/</span><span
class="n">hbase</span><span class="p">.</span><span
class="n">headless</span><span class="p">.</span><span
class="n">keytab</span>"<span class="p">,</span>
- â<span class="n">slider</span><span class="p">.</span><span
class="n">keytab</span><span class="p">.</span><span
class="n">principal</span><span class="p">.</span><span
class="n">name</span>â <span class="p">:</span> â<span
class="n">hbase</span>"
+ "<span class="n">slider</span><span class="p">.</span><span
class="n">keytab</span><span class="p">.</span><span
class="n">principal</span><span class="p">.</span><span
class="n">name</span>" <span class="p">:</span> "<span
class="n">hbase</span>"
<span class="p">}</span>
<span class="p">}</span>
</pre></div>
-<p>The âslider.am.keytab.local.pathâ property provides the full path to
the keytab file location and is mandatory for the local lookup mechanism. The
principal to leverage from the file is identified by the
âslider.keytab.principal.nameâ property.</p>
+<p>The <code>slider.am.keytab.local.path</code> property provides the full
path to the keytab file location and is mandatory for the local lookup
mechanism. The principal to leverage from the file is identified by the
<code>slider.keytab.principal.name</code> property.</p>
<p>In this scenario the distribution of keytab files for the AM AND the
application itself is the purview of the application deployer. So, for
example, for an hbase deployment, the hbase site service keytab will have to be
distributed as well and indicated in the hbase-site properties:</p>
<div class="codehilite"><pre> <span class="p">.</span> <span
class="p">.</span> <span class="p">.</span>
"<span class="n">site</span><span class="p">.</span><span
class="n">hbase</span><span class="o">-</span><span class="n">site</span><span
class="p">.</span><span class="n">hbase</span><span class="p">.</span><span
class="n">master</span><span class="p">.</span><span
class="n">kerberos</span><span class="p">.</span><span
class="n">principal</span>"<span class="p">:</span> "<span
class="n">hbase</span><span class="o">/</span><span class="n">_HOST</span><span
class="p">@</span><span class="n">EXAMPLE</span><span class="p">.</span><span
class="n">COM</span>"<span class="p">,</span>
@@ -301,15 +301,22 @@ relevant number of componentss. </p>
"<span class="n">jvm</span><span class="p">.</span><span
class="n">heapsize</span>"<span class="p">:</span> "256<span
class="n">M</span>"<span class="p">,</span>
"<span class="n">slider</span><span class="p">.</span><span
class="n">hdfs</span><span class="p">.</span><span class="n">keytab</span><span
class="p">.</span><span class="n">dir</span>"<span class="p">:</span>
"<span class="p">.</span><span class="n">slider</span><span
class="o">/</span><span class="n">keytabs</span><span class="o">/</span><span
class="n">hbase</span>"<span class="p">,</span>
"<span class="n">slider</span><span class="p">.</span><span
class="n">am</span><span class="p">.</span><span class="n">login</span><span
class="p">.</span><span class="n">keytab</span><span class="p">.</span><span
class="n">name</span>"<span class="p">:</span> "<span
class="n">hbase</span><span class="p">.</span><span
class="n">headless</span><span class="p">.</span><span
class="n">keytab</span>"<span class="p">,</span>
- â<span class="n">slider</span><span class="p">.</span><span
class="n">keytab</span><span class="p">.</span><span
class="n">principal</span><span class="p">.</span><span
class="n">name</span>â <span class="p">:</span> â<span
class="n">hbase</span>"
+ "<span class="n">slider</span><span class="p">.</span><span
class="n">keytab</span><span class="p">.</span><span
class="n">principal</span><span class="p">.</span><span
class="n">name</span>" <span class="p">:</span> "<span
class="n">hbase</span>"
<span class="p">}</span>
<span class="p">}</span>
</pre></div>
-<p>The âslider.hdfs.keytab.dirâ points to an HDFS path, relative to the
userâs home directory (e.g. /users/hbase), in which slider can find all
keytab files required for both AM login as well as application services (e.g.
for hbase that would be the headless keytab for the AM and the service keytab
for the HBase application components). If no value is specified, a default
location of â.slider/keytabs/<cluster name>â is assumed.
- The âslider.am.login.keytab.nameâ is the name of the keytab file
(mandatory property), found within the specified directory, that the AM will
use to lookup up the login principal and authenticate.</p>
-<p>If leveraging the slider-based distribution mechanism, the keytab files for
components will be accessible from a âkeytabsâ sub-directory of the
container work folder and can therefore be specified relative to the
$AGENT_WORK_ROOT/keytabs directory, e.g.:</p>
+<p>The <code>slider.hdfs.keytab.dir</code> points to an HDFS path, relative to
the user<code>s home directory
+(e.g.</code>/users/hbase`), in which slider can find all keytab files required
for both AM login
+as well as application services. For example, for Apache HBase the uses would
be the headless keytab
+for the AM and the service keytab for the HBase application components).</p>
+<p>If no value is specified, a default location of
<code>.slider/keytabs/<cluster name></code> is assumed.</p>
+<p>The <code>slider.am.login.keytab.name</code> is the name of the keytab file
(mandatory property),
+found within the specified directory, that the AM will use to lookup up the
login principal and authenticate.</p>
+<p>When using the slider-based distribution mechanism, the keytab files for
components will be
+accessible from a <code>keytabs</code> sub-directory of the container work
folder and can therefore be
+specified relative to the <code>$AGENT_WORK_ROOT/keytabs</code> directory,
e.g.:</p>
<div class="codehilite"><pre> . . .
"site.hbase-site.hbase.master.kerberos.principal":
"hbase/[email protected]",
"site.hbase-site.hbase.master.keytab.file": "<span
class="cp">${</span><span class="n">AGENT_WORK_ROOT</span><span
class="cp">}</span>/keytabs/hbase.service.keytab",
@@ -319,16 +326,22 @@ relevant number of componentss. </p>
<p>For both mechanisms above, the principal name used for authentication is
either:</p>
<ul>
-<li>The principal name established on the client side before invocation of the
Slider CLI (the principal used to âkinitâ) or</li>
-<li>The value specified for a âslider.keytab.principal.nameâ property.
</li>
+<li>The principal name established on the client side before invocation of the
Slider CLI (the principal used to <code>kinit</code>) or</li>
+<li>The value specified for a <code>slider.keytab.principal.name</code>
property. </li>
</ul>
<h4 id="slider-client-keytab-installation">Slider Client Keytab
installation:</h4>
-<p>The Slider client can be leveraged to install keytab files individually
into a designated keytab HDFS folder. The format of the command is:</p>
+<p>The Slider client can be leveraged to install keytab files individually
into a designated
+keytab HDFS folder. The format of the command is:</p>
<div class="codehilite"><pre><span class="n">slider</span> <span
class="n">install</span><span class="o">-</span><span class="n">keytab</span>
â<span class="n">keytab</span> <span class="o"><</span><span
class="n">path</span> <span class="n">to</span> <span class="n">keytab</span>
<span class="n">on</span> <span class="n">local</span> <span
class="n">file</span> <span class="n">system</span><span class="o">></span>
â<span class="n">folder</span> <span class="o"><</span><span
class="n">name</span> <span class="n">of</span> <span class="n">HDFS</span>
<span class="n">folder</span> <span class="n">to</span> <span
class="n">store</span> <span class="n">keytab</span><span class="o">></span>
<span class="p">[</span>â<span class="n">overwrite</span><span
class="p">]</span>
</pre></div>
-<p>The command will store the keytab file specified by the ââkeytabâ
option in to an HDFS folder that is created or exists under
/user/username/.slider/keytabs named by the ââfolderâ option (e.g. if the
folder name specified is âHBASEâ the keytab will be stored in
/user/username/.slider/keytabs/HBASE). The command can be used to upload
keytab files individually up to HDFS. For example, if uploading both AM and
HBase service keytabs to the âHBASEâ folder, the command will be invoked
twice:</p>
+<p>The command will store the keytab file specified by the
<code>âkeytab</code> option in to
+an HDFS folder that is created or exists under
<code>/user/username/.slider/keytabs</code> named by the
+<code>âfolder</code> option (e.g. if the folder name specified is
<code>HBASE</code> the keytab will be stored in
+ <code>/user/username/.slider/keytabs/HBASE</code>).
+The command can be used to upload keytab files individually up to HDFS.
+ For example, if uploading both AM and HBase service keytabs to the
<code>HBASE</code> folder, the command will be invoked twice:</p>
<div class="codehilite"><pre><span class="n">slider</span> <span
class="n">install</span><span class="o">-</span><span class="n">keytab</span>
â<span class="n">keytab</span> <span class="o">/</span><span
class="n">my</span><span class="o">/</span><span class="n">local</span><span
class="o">/</span><span class="n">keytabs</span><span class="o">/</span><span
class="n">folder</span><span class="o">/</span><span
class="n">hbase</span><span class="p">.</span><span
class="n">headless</span><span class="p">.</span><span class="n">keytab</span>
â<span class="n">folder</span> <span class="n">HBASE</span>
<span class="n">slider</span> <span class="n">install</span><span
class="o">-</span><span class="n">keytab</span> â<span
class="n">keytab</span> <span class="o">/</span><span class="n">my</span><span
class="o">/</span><span class="n">local</span><span class="o">/</span><span
class="n">keytabs</span><span class="o">/</span><span
class="n">folder</span><span class="o">/</span><span
class="n">hbase</span><span class="p">.</span><span
class="n">service</span><span class="p">.</span><span class="n">keytab</span>
â<span class="n">folder</span> <span class="n">HBASE</span>
</pre></div>
@@ -346,7 +359,7 @@ relevant number of componentss. </p>
"jvm.heapsize": "256M",
"slider.hdfs.keytab.dir": ".slider/keytabs/HBASE",
"slider.am.login.keytab.name":
"hbase.headless.keytab"
- âslider.keytab.principal.nameâ : âhbase"
+ `slider.keytab.principal.name` : `hbase"
}
}
</pre></div>
@@ -399,15 +412,22 @@ documentation.</p>
<h2
id="generation-and-deployment-of-application-keystorestruststores">Generation
and deployment of application keystores/truststores</h2>
-<p>Application components may make use of keystores and truststores to
establish secure communications. Given the nature of application deployments
in a YARN cluster and the lack of certainty concerning the nodemanager host on
which a component container may be spawned, Slider provides the facility for
creating and deploying the keystores and truststores that may be required.</p>
+<p>Application components may make use of keystores and truststores to
establish secure communications.
+Given the nature of application deployments in a YARN cluster and the lack of
certainty concerning
+the host on which a component container may be allocated,
+Slider provides the facility for creating and deploying the keystores and
truststores that may be required.</p>
<p>The process of enabling application keystore/truststore generation and
deployment is:</p>
<ul>
-<li>Set the "slider.component.security.stores.required" property to "true".
This property can be set as a global property (indicating all components
require stores) or can be set/overridden at the component level to selectively
enable store generation for a given component.</li>
+<li>Set the configuration option
<code>"slider.component.security.stores.required"</code> to <code>"true"</code>.
+ This optional can be set as a global property (indicating all components
require stores) or can be set/overridden at the component level to selectively
enable store generation for a given component.</li>
<li>Specify the password property for the component keystore or truststore
or,</li>
<li>Specify the property providing the alias that references a credential
managed by the Hadoop Credential Provider. This credential provides the
password for securing the keystore/truststore.</li>
</ul>
<h3 id="specifying-a-keystoretruststore-password">Specifying a
keystore/truststore password</h3>
-<p>Applications that make use of a keystore and/or truststore may already have
configuration properties that reference the value for the password used to
secure the given certificate store. In those instances the application
configuration can reference the value of the password property in the component
specific configuration section:</p>
+<p>Applications that make use of a keystore and/or truststore may already have
configuration
+properties that reference the value for the password used to secure the given
certificate store.
+In those instances the application configuration can reference the value of
the password property
+in the component specific configuration section:</p>
<div class="codehilite"><pre> "<span
class="n">APP_COMPONENT</span>"<span class="p">:</span> <span
class="p">{</span>
"<span class="n">slider</span><span class="p">.</span><span
class="n">component</span><span class="p">.</span><span
class="n">security</span><span class="p">.</span><span
class="n">stores</span><span class="p">.</span><span
class="n">required</span>"<span class="p">:</span> "<span
class="n">true</span>"<span class="p">,</span>
"<span class="n">slider</span><span class="p">.</span><span
class="n">component</span><span class="p">.</span><span
class="n">keystore</span><span class="p">.</span><span
class="n">password</span><span class="p">.</span><span
class="n">property</span>"<span class="p">:</span> "<span
class="n">site</span><span class="p">.</span><span class="n">myapp</span><span
class="o">-</span><span class="n">site</span><span class="p">.</span><span
class="n">app_component</span><span class="p">.</span><span
class="n">keystore</span><span class="p">.</span><span
class="n">password</span>"
@@ -417,14 +437,15 @@ documentation.</p>
<p>In this example:</p>
<ul>
-<li>The store required property is set to "true" for the APP_COMPONENT
component</li>
-<li>The application has a property in its site configuration file named
"app_component.keystore.password". This property is specified in the appConfig
file's global section (with the "site.myapp-site" prefix), and is referenced
here to indicate to Slider which application property provides the store
password.</li>
+<li>The store required property is set to <code>"true"</code> for the
<code>APP_COMPONENT</code> component</li>
+<li>The application has a property in its site configuration file named
<code>"app_component.keystore.password"</code>.
+This property is specified in the appConfig file's global section (with the
"site.myapp-site" prefix), and is referenced here to indicate to Slider which
application property provides the store password.</li>
</ul>
<h3 id="specifying-a-keystoretruststore-credential-provider-alias">Specifying
a keystore/truststore Credential Provider alias</h3>
<p>Applications that utilize the Credenfial Provider API to retrieve
application passwords can specify the following configuration:</p>
<ul>
<li>
-<p>Indicate the credential storage path in the "credentials" section of the
app configuration file:</p>
+<p>Indicate the credential storage path in the <code>credentials</code>
section of the app configuration file:</p>
<div class="codehilite"><pre> "credentials": {
"jceks://hdfs/user/<span class="cp">${</span><span
class="n">USER</span><span class="cp">}</span>/myapp.jceks":
["app_component.keystore.password.alias"]
}
@@ -453,6 +474,8 @@ documentation.</p>
</pre></div>
+<p>or
+ No valid credentials provided (Mechanism level: Failed to find any
Kerberos tgt)</p>
<p>This means that the JRE does not have the extended cryptography package
needed to work with the keys that Kerberos needs. This must be downloaded
from Oracle (or other supplier of the JVM) and installed according to
Modified:
websites/staging/slider/trunk/content/docs/slider_specs/application_instance_configuration.html
==============================================================================
---
websites/staging/slider/trunk/content/docs/slider_specs/application_instance_configuration.html
(original)
+++
websites/staging/slider/trunk/content/docs/slider_specs/application_instance_configuration.html
Wed Mar 25 17:59:38 2015
@@ -242,7 +242,7 @@ Latest release: <strong>0.60.0-incubatin
<p>appConf.json allows you to pass in arbitrary set of configuration that
Slider will forward to the application component instances.</p>
<h2 id="variable-naming-convention">Variable naming convention</h2>
-<p>In order to understand how the naming convention work, lets look at how the
config is passed on to component commands. Slider agent recevies a structured
bag of commands as input for all commands, INSTALL, CONFIGURE, START, etc. The
command includes a section "configuration" which has config properties arranged
into named property bags.</p>
+<p>In order to understand how the naming convention works, lets look at how
the config is passed on to component commands. Slider agent recevies a
structured bag of commands as input for all commands, INSTALL, CONFIGURE,
START, etc. The command includes a section "configuration" which has config
properties arranged into named property bags.</p>
<ul>
<li>Variables of the form <code>site.xx.yy</code> translates to variables by
the name <code>yy</code> within the group <code>xx</code> and are typically
converted to site config files by the name <code>xx</code> containing variable
<code>yy</code>. For example,
<code>"site.hbase-site.hbase.regionserver.port":""</code> will be sent to the
Slider-Agent as <code>"hbase-site" : { "hbase.regionserver.port": ""}</code>
and app definition scripts can access all variables under
<code>hbase-site</code> as a single property bag.</li>
<li>Similarly, <code>site.core-site.fs.defaultFS</code> allows you to pass in
the default fs. <em>This specific variable is automatically made available by
Slider but its shown here as an example.</em></li>
@@ -265,7 +265,7 @@ Latest release: <strong>0.60.0-incubatin
<p><a href="application_definition.html">Application Definition</a> describes
how to advertise arbitrary set of properties that are dynamically finalized
when application is activated.</p>
<p><strong>configuraing an app for ganglia metrics</strong></p>
<p>There is no set guideline for doing so. How an application emits metrics
and how the metrics are emitted to the right place is completely defined by the
application. In the following example, we hso how HBase app is configured to
emit metrics to a ganglia server.</p>
-<p>Ganglia server lifecycle is not controlled by the app instance. So the app
instance only needs to know where to emit the metrics. This is achieved by
three global variables</p>
+<p>Ganglia server lifecycle is not controlled by the app instance. So the app
instance only needs to know where to emit the metrics. This is achieved through
global variables</p>
<ul>
<li>"site.global.ganglia_enabled":"true"</li>
<li>"site.global.ganglia_server_host": "gangliaserver.my.org"</li>
Modified:
websites/staging/slider/trunk/content/docs/slider_specs/creating_app_definitions.html
==============================================================================
---
websites/staging/slider/trunk/content/docs/slider_specs/creating_app_definitions.html
(original)
+++
websites/staging/slider/trunk/content/docs/slider_specs/creating_app_definitions.html
Wed Mar 25 17:59:38 2015
@@ -263,10 +263,10 @@ Latest release: <strong>0.60.0-incubatin
<p>Sample <strong>resources-default.json</strong> and
<strong>appConfig-default.json</strong> files are also included in the
enlistment. These are samples and are typically tested on one node test
installations. These files are not used during the create commmand, rather the
files provided as input parameter are the ones that are used. <em>So you can
leave these files as is in the package.</em></p>
-<h3 id="-template-appconfigjson">--template appConfig.json</h3>
+<h3 id="-template-appconfigjson"><code>--template appConfig.json</code></h3>
<p>An appConfig.json contains the application configuration. See <a
href="application_instance_configuration.html">Specifications
InstanceConfiguration</a> for details on how to create a template config file.
The enlistment includes sample config files for HBase, Accumulo, and Storm.</p>
-<h3 id="-resources-resourcesjson">--resources resources.json</h3>
-<p>Resource specification is an input to Slider to specify the Yarn resource
needs for each component type that belong to the application. <a
href="resource_specification.html">Specification of Resources</a> describes how
to write a resource config json file. The enlistment includes sample config
files for HBase, Accumulo, and Storm.</p>
+<h3 id="-resources-resourcesjson"><code>--resources resources.json</code></h3>
+<p>Resource specification is an input to Slider to specify the Yarn resource
needs for each component type that belong to the application. <a
href="/docs/configuration/resource.html">Specification of Resources</a>
describes how to write a resource config json file. The enlistment includes
sample config files for HBase, Accumulo, and Storm.</p>
<h2 id="scripting-for-apppackage">Scripting for AppPackage</h2>
<p>Refer to <a href="writing_app_command_scripts">App Command Scripts</a> for
details on how to write scripts for a AppPackage. These scripts are in the
package/script folder within the AppPackage. <em>Use the checked in samples for
HBase/Storm/Accumulo as reference for script development.</em></p>
</div>
Modified:
websites/staging/slider/trunk/content/docs/slider_specs/hello_world_slider_app.html
==============================================================================
---
websites/staging/slider/trunk/content/docs/slider_specs/hello_world_slider_app.html
(original)
+++
websites/staging/slider/trunk/content/docs/slider_specs/hello_world_slider_app.html
Wed Mar 25 17:59:38 2015
@@ -260,7 +260,8 @@ Latest release: <strong>0.60.0-incubatin
<h2 id="step-3-create-a-default-resources-file-resourcesjson">Step 3: Create a
default resources file (resources.json)</h2>
-<p>By default all resources.json file must include slider-appmaster. Add one
more entry for the component MEMCACHED and assign a unique priority and default
number of instances. Ensure, that a suitable default value is provided for
yarn.memory. Additional details are available <a
href="/docs/slider_specs/resource_specification.html">here</a>.</p>
+<p>By default all <code>resources.json</code> files must include a
<code>slider-appmaster</code> component
+Add one more entry for the component <code>MEMCACHED</code> and assign a
unique priority and default number of instances. Ensure, that a suitable
default value is provided for yarn.memory. Additional details are available <a
href="/docs/configuration/resource.html">here</a>).</p>
<div class="codehilite"><pre><span class="p">{</span>
"<span class="n">schema</span>" <span class="p">:</span>
"<span class="n">http</span><span class="p">:</span><span
class="o">//</span><span class="n">example</span><span class="p">.</span><span
class="n">org</span><span class="o">/</span><span
class="n">specification</span><span class="o">/</span><span
class="n">v2</span><span class="p">.</span>0<span
class="p">.</span>0"<span class="p">,</span>
"<span class="n">metadata</span>" <span class="p">:</span> <span
class="p">{</span>
Modified: websites/staging/slider/trunk/content/docs/slider_specs/index.html
==============================================================================
--- websites/staging/slider/trunk/content/docs/slider_specs/index.html
(original)
+++ websites/staging/slider/trunk/content/docs/slider_specs/index.html Wed Mar
25 17:59:38 2015
@@ -199,19 +199,20 @@ Latest release: <strong>0.60.0-incubatin
</ul>
<h2 id="specifications">Specifications</h2>
<p>Refer to <a href="hello_world_slider_app.html">Creating a Slider package
for Memcached</a> for a quick over view of how to write a Slider app.</p>
-<p>Packaging enhancements: <a href="simple_pkg.html">Simplified Packaging</a>
describes a simplified version of packaging that Slider supports for
applications that do not need full capability of a Slider application package.
<em>The work is available in the develop branch and is targeted for the next
relase.</em></p>
-<p>The entry points to leverage Slider are:</p>
+<p>Packaging enhancements: <a href="simple_pkg.html">Simplified Packaging</a>
describes a simplified version of packaging that Slider
+supports for applications that do not need full capability of a Slider
application package.
+<em>The work is available in the develop branch and is targeted for the next
relase.</em></p>
+<p>The entry points to use Slider are:</p>
<ul>
<li><a href="application_needs.html">Application Needs</a> What it takes to be
deployable by Slider. </li>
<li><a href="creating_app_definitions.html">Slider AppPackage</a> Overview of
how to create an Slider AppPackage.</li>
<li><a href="application_package.html">Specifications for AppPackage</a>
Describes the structure of an AppPackage</li>
-<li><a href="application_definition.html">Specifications for Application
Definition</a> How to write metainfo.xml?</li>
-<li><a href="resource_specification.html">Specification of Resources</a> How
to write a resource spec for an app?</li>
-<li><a href="application_instance_configuration.html">Specifications
InstanceConfiguration</a> How to write a template config for an app?</li>
+<li><a href="application_definition.html">Specifications for Application
Definition</a> How to write metainfo.xml</li>
+<li><a href="/docs/configuration/resource.html">Specification of Resources</a>
How to write a resource spec for an app/</li>
+<li><a href="application_instance_configuration.html">Specifications
InstanceConfiguration</a> How to write a template config for an app</li>
<li><a href="application_configuration.html">Specifications for
Configuration</a> Default application configuration</li>
<li><a href="specifying_exports.html">Specifying Exports</a> How to specify
exports for an application?</li>
<li><a href="/developing/index.html">Documentation for "General Developer
Guidelines"</a></li>
-<li><a href="chaosmonkey.html">Configuring the Slider Chaos Monkey</a></li>
</ul>
</div>