You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by bu...@apache.org on 2014/07/22 20:17:30 UTC
svn commit: r917125 [15/18] - in /websites/staging/slider/trunk/content: ./
css/ design/ design/registry/ design/specification/ developing/ docs/
docs/configuration/ docs/slider_specs/ downloads/ fonts/ images/ js/
release_notes/
Added: websites/staging/slider/trunk/content/docs/security.html
==============================================================================
--- websites/staging/slider/trunk/content/docs/security.html (added)
+++ websites/staging/slider/trunk/content/docs/security.html Tue Jul 22 18:17:12 2014
@@ -0,0 +1,357 @@
+<!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="/docs/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 id="nav_use_examples"><a href="/docs/examples.html">Examples</a></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 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_package"><a href="/docs/slider_specs/index.html">Creating App Packages</a></li>
+<li id="nav_use_app_configuration"><a href="/docs/configuration/index.html">App Configuration Model</a></li>
+<li id="nav_use_debugging"><a href="/docs/debugging.html">Debugging</a></li>
+<li id="nav_use_troubleshooting"><a href="/docs/troubleshooting.html">Troubleshooting</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.40-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-security">Apache Slider Security</h1>
+<p>This document discusses the design, implementation and use of Slider
+to deploy secure applications on a secure Hadoop cluster.</p>
+<h3 id="important">Important:</h3>
+<p>This document does not cover Kerberos, how to secure a Hadoop cluster, Kerberos
+command line tools or how Hadoop uses delegation tokens to delegate permissions
+round a cluster. These are prerequisites &em;though some links to useful pages are
+listed at the bottom. </p>
+<h2 id="concepts">Concepts</h2>
+<p>Slider runs in secure clusters, but with restrictions</p>
+<ol>
+<li>The keytabs to allow a worker to authenticate with the master must
+ be distributed in advance: Slider does not attempt to pass these around.</li>
+<li>Until the location of Slider node instances can be strictly limited to
+ a set of nodes (a future YARN feature), the keytabs must be passed to
+ all the nodes in the cluster in advance, <em>and made available to the
+ user creating the cluster</em></li>
+<li>due to the way that HBase and accumulo authenticate worker nodes to
+ the masters, any HBase node running on a server must authenticate as
+ the same principal, and so have equal access rights to the HBase cluster.</li>
+<li>As the data directories for a slider cluster are created under the home
+ directories of that user, the principals representing all role instances
+ in the clusters <em>MUST</em> have read/write access to these files. This can be
+ done with a shortname that matches that of the user, or by requesting
+ that Slider create a directory with group write permissions -and using LDAP
+ to indentify the application principals as members of the same group
+ as the user.</li>
+</ol>
+<h2 id="security-requirements">Security Requirements</h2>
+<h3 id="needs">Needs</h3>
+<ul>
+<li>Slider and deployed applications to work against secure HDFS</li>
+<li>Slider to work with secure YARN.</li>
+<li>Slider to start secure applications</li>
+<li>Kerberos and ActiveDirectory to perform the authentication.</li>
+<li>Slider to only allow cluster operations by authenticated users -command line and direct RPC. </li>
+<li>Any Slider Web UI and REST API for Ambari to only allow access to authenticated users.</li>
+<li>The Slider database in <code>~/.slider/clusters/$name/data</code> to be writable by HBase</li>
+</ul>
+<h3 id="short-lived-clusters">Short-lived Clusters</h3>
+<ul>
+<li>Cluster to remain secure for the duration of the Kerberos tokens issued to Slider.</li>
+</ul>
+<h3 id="long-lived-clusters">Long-lived Clusters</h3>
+<ul>
+<li>Slider application instance and HBase instance to remain functional and secure over an indefinite period of time.</li>
+</ul>
+<h3 id="initial-non-requirements">Initial Non-requirements</h3>
+<ul>
+<li>Secure audit trail of cluster operations.</li>
+<li>Multiple authorized users being granted rights to a Slider Cluster (YARN admins can always kill the Slider application instance.</li>
+<li>Any way to revoke certificates/rights of running containers.</li>
+</ul>
+<h3 id="assumptions">Assumptions</h3>
+<ul>
+<li>Kerberos is running and that HDFS and YARN are running Kerberized.</li>
+<li>LDAP cannot be assumed. </li>
+<li>Credentials needed for the application can be pushed out into the local filesystems of
+ the of the worker nodes via some external mechanism (e.g. scp), and protected by
+ the access permissions of the native filesystem. Any user with access to these
+ credentials is considered to have been granted such rights.</li>
+<li>These credentials can outlive the duration of the application instances</li>
+<li>The user running the application has the same identity as that of the application.</li>
+<li>All application instances run by a single user can share the same machine-specific
+kerberos identities.</li>
+</ul>
+<h2 id="design">Design</h2>
+<ol>
+<li>The user is expected to have their own Kerberos principal, and have used <code>kinit</code>
+ or equivalent to authenticate with Kerberos and gain a (time-bounded) TGT</li>
+<li>The user is expected to have their own principals for every host in the cluster of the form
+ username/hostname@REALM</li>
+<li>A keytab must be generated which contains all these principals -and distributed
+ to all the nodes in the cluster with read access permissions to the user.</li>
+<li>When the user creates a secure cluster, they provide the standard HBase kerberos options
+ to identify the principals to use and the keytab location.</li>
+</ol>
+<p>The Slider Client will talk to HDFS and YARN authenticating itself with the TGT,
+talking to the YARN and HDFS principals which it has been configured to expect.</p>
+<p>This can be done as described in [Client Configuration] (/docs/client-configuration.html) on the command line as</p>
+<div class="codehilite"><pre> <span class="o">-</span><span class="n">D</span> <span class="n">yarn</span><span class="p">.</span><span class="n">resourcemanager</span><span class="p">.</span><span class="n">principal</span><span class="p">=</span><span class="n">yarn</span><span class="o">/</span><span class="n">master</span><span class="p">@</span><span class="n">LOCAL</span>
+ <span class="o">-</span><span class="n">D</span> <span class="n">dfs</span><span class="p">.</span><span class="n">namenode</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">hdfs</span><span class="o">/</span><span class="n">master</span><span class="p">@</span><span class="n">LOCAL</span>
+</pre></div>
+
+
+<p>The Slider Client will create the cluster data directory in HDFS with <code>rwx</code> permissions for<br />
+user <code>r-x</code> for the group and <code>---</code> for others. (these can be configurable as part of the cluster options), </p>
+<p>It will then deploy the AM, which will (somehow? for how long?) retain the access
+rights of the user that created the cluster.</p>
+<p>The Application Master will read in the JSON cluster specification file, and instantiate the
+relevant number of componentss. </p>
+<h2 id="securing-communications-between-the-slider-client-and-the-slider-am">Securing communications between the Slider Client and the Slider AM.</h2>
+<p>When the AM is deployed in a secure cluster,
+it automatically uses Kerberos-authorized RPC channels. The client must acquire a
+token to talk the AM. </p>
+<p>This is provided by the YARN Resource Manager when the client application
+wishes to talk with the SliderAM -a token which is only provided after
+the caller authenticates itself as the user that has access rights
+to the cluster</p>
+<p>To allow the client to freeze a Slider application instance while they are unable to acquire
+a token to authenticate with the AM, use the <code>--force</code> option.</p>
+<h3 id="how-to-enable-a-secure-slider-client">How to enable a secure Slider client</h3>
+<p>Slider can be placed into secure mode by setting the Hadoop security options:</p>
+<p>This can be done in <code>slider-client.xml</code>:</p>
+<div class="codehilite"><pre><span class="nt"><property></span>
+ <span class="nt"><name></span>hadoop.security.authorization<span class="nt"></name></span>
+ <span class="nt"><value></span>true<span class="nt"></value></span>
+<span class="nt"></property></span>
+
+<span class="nt"><property></span>
+ <span class="nt"><name></span>hadoop.security.authentication<span class="nt"></name></span>
+ <span class="nt"><value></span>kerberos<span class="nt"></value></span>
+<span class="nt"></property></span>
+</pre></div>
+
+
+<p>Or it can be done on the command line</p>
+<div class="codehilite"><pre><span class="o">-</span><span class="n">D</span> <span class="n">hadoop</span><span class="p">.</span><span class="n">security</span><span class="p">.</span><span class="n">authorization</span><span class="p">=</span><span class="n">true</span> <span class="o">-</span><span class="n">D</span> <span class="n">hadoop</span><span class="p">.</span><span class="n">security</span><span class="p">.</span><span class="n">authentication</span><span class="p">=</span><span class="n">kerberos</span>
+</pre></div>
+
+
+<h3 id="adding-kerberos-binding-properties-to-the-slider-client-jvm">Adding Kerberos binding properties to the Slider Client JVM</h3>
+<p>The Java Kerberos library needs to know the Kerberos controller and
+realm to use. This should happen automatically if this is set up as the
+default Kerberos binding (on a Unix system this is done in <code>/etc/krb5.conf</code>.</p>
+<p>If is not set up, a stack trace with kerberos classes at the top and
+the message <code>java.lang.IllegalArgumentException: Can't get Kerberos realm</code>
+will be printed -and the client will then fail.</p>
+<p>The realm and controller can be defined in the Java system properties
+<code>java.security.krb5.realm</code> and <code>java.security.krb5.kdc</code>. These can be fixed
+in the JVM options, as described in the [Client Configuration] (/docs/client-configuration.html)
+documentation.</p>
+<p>They can also be set on the Slider command line itself, using the <code>-S</code> parameter.</p>
+<div class="codehilite"><pre><span class="o">-</span><span class="n">S</span> <span class="n">java</span><span class="p">.</span><span class="n">security</span><span class="p">.</span><span class="n">krb5</span><span class="p">.</span><span class="n">realm</span><span class="p">=</span><span class="n">MINICLUSTER</span> <span class="o">-</span><span class="n">S</span> <span class="n">java</span><span class="p">.</span><span class="n">security</span><span class="p">.</span><span class="n">krb5</span><span class="p">.</span><span class="n">kdc</span><span class="p">=</span><span class="n">hadoop</span><span class="o">-</span><span class="n">kdc</span>
+</pre></div>
+
+
+<h3 id="important-java-cryptography-package">Important: Java Cryptography Package</h3>
+<p>When trying to talk to a secure, cluster you may see the message:</p>
+<div class="codehilite"><pre><span class="n">No</span> <span class="n">valid</span> <span class="n">credentials</span> <span class="n">provided</span> <span class="p">(</span><span class="n">Mechanism</span> <span class="n">level</span><span class="p">:</span> <span class="n">Illegal</span> <span class="n">key</span> <span class="nb">size</span><span class="p">)]</span>
+</pre></div>
+
+
+<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
+its accompanying instructions.</p>
+<h2 id="useful-links">Useful Links</h2>
+<ol>
+<li><a href="http://hortonworks.com/wp-content/uploads/2011/10/security-design_withCover-1.pdf">Adding Security to Apache Hadoop</a></li>
+<li><a href="http://hortonworks.com/blog/the-role-of-delegation-tokens-in-apache-hadoop-security/">The Role of Delegation Tokens in Apache Hadoop Security</a></li>
+<li><a href="http://hbase.apache.org/book/security.html">Chapter 8. Secure Apache HBase</a></li>
+<li>Hadoop Operations p135+</li>
+<li><a href="http://docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/tutorials/KerberosReq.htmla">Java Kerberos Requirements</a></li>
+<li><a href="http://docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/tutorials/Troubleshooting.html">Troubleshooting Kerberos on Java</a></li>
+<li>For OS/X users, the GUI ticket viewer is <code>/System/Library/CoreServices/Ticket\ Viewer.app</code></li>
+</ol>
+ </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>
Added: websites/staging/slider/trunk/content/docs/slider_specs/application_configuration.html
==============================================================================
--- websites/staging/slider/trunk/content/docs/slider_specs/application_configuration.html (added)
+++ websites/staging/slider/trunk/content/docs/slider_specs/application_configuration.html Tue Jul 22 18:17:12 2014
@@ -0,0 +1,263 @@
+<!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="/docs/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 id="nav_use_examples"><a href="/docs/examples.html">Examples</a></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 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_package"><a href="/docs/slider_specs/index.html">Creating App Packages</a></li>
+<li id="nav_use_app_configuration"><a href="/docs/configuration/index.html">App Configuration Model</a></li>
+<li id="nav_use_debugging"><a href="/docs/debugging.html">Debugging</a></li>
+<li id="nav_use_troubleshooting"><a href="/docs/troubleshooting.html">Troubleshooting</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.40-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-application-configuration">Apache Slider Application Configuration</h1>
+<p>App Configuration captures the default configuration associated with the application. <em>Details of configuration management is discussed in a separate spec</em>. The default configuration is modified based on user provided InstanceConfiguration, cluster specific details (e.g. HDFS root, local dir root), container allocated resources (port and hostname), and dependencies (e.g. ZK quorom hosts) and handed to the component instances.</p>
+<p>App Configuration is a folder containing all configuration needed by the application. Config files include any site.xml, log4j properties file, etc. </p>
+<p>In addition, application may have configuration parameters that do not necessarily go into a config files. Such configurations may be used during template expansion (parameters in env.sh files), as environment variables (e.g. JAVA_HOME), customize user names (for runas). These configurations can be provided as user inputs or are automatically inferred from the environment. Such configurations are stored in a file named "app_config.xml".</p>
+<p><img alt="Image" src="../../resources/images/app_config_folders_01.png?raw=true" /></p>
+<p>A config file is of the form:</p>
+<div class="codehilite"><pre><span class="cp"><?xml version="1.0"?></span>
+<span class="cp"><?xml-stylesheet type="text/xsl" href="configuration.xsl"?></span>
+<span class="nt"><configuration></span>
+ <span class="nt"><property></span>
+ ...
+ <span class="nt"></property></span>
+<span class="nt"></configuration></span>
+</pre></div>
+
+
+<p>Each configuration property is specified as follows:</p>
+<div class="codehilite"><pre><span class="nt"><property></span>
+ <span class="nt"><name></span>storm.zookeeper.session.timeout<span class="nt"></name></span>
+ <span class="nt"><value></span>20000<span class="nt"></value></span>
+ <span class="nt"><description></span>The session timeout for clients to ZooKeeper.<span class="nt"></description></span>
+ <span class="nt"><required></span>false<span class="nt"></required></span>
+ <span class="nt"><valueRestriction></span>0-30000<span class="nt"></valueRestriction></span>
+ <span class="nt"></property></span>
+ <span class="nt"><property></span>
+ <span class="nt"><name></span>storm.zookeeper.root<span class="nt"></name></span>
+ <span class="nt"><value></span>/storm<span class="nt"></value></span>
+ <span class="nt"><description></span>The root location at which Storm stores data in ZK.<span class="nt"></description></span>
+ <span class="nt"><required></span>true<span class="nt"></required></span>
+ <span class="nt"></property></span>
+ <span class="nt"><property></span>
+ <span class="nt"><name></span>jvm.heapsize<span class="nt"></name></span>
+ <span class="nt"><value></span>256<span class="nt"></value></span>
+ <span class="nt"><description></span>The default JVM heap size for any component instance.<span class="nt"></description></span>
+ <span class="nt"><required></span>true<span class="nt"></required></span>
+ <span class="nt"></property></span>
+ <span class="nt"><property></span>
+ <span class="nt"><name></span>nimbus.host<span class="nt"></name></span>
+ <span class="nt"><value></span>localhost<span class="nt"></value></span>
+ <span class="nt"><description></span>The host that the master server is running on.<span class="nt"></description></span>
+ <span class="nt"><required></span>true<span class="nt"></required></span>
+ <span class="nt"><clientVisible></span>true<span class="nt"></clientVisible></span>
+ <span class="nt"></property></span>
+</pre></div>
+
+
+<ul>
+<li>
+<p>name: name of the parameter</p>
+</li>
+<li>
+<p>value: default value of the parameter</p>
+</li>
+<li>
+<p>description: a short description of the parameter</p>
+</li>
+<li>
+<p>required: if the parameter is mandatory in which case it must have a value - default is "false"</p>
+</li>
+<li>
+<p>clientVisible: if the property must be exported for a client</p>
+</li>
+</ul>
+ </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>
Added: websites/staging/slider/trunk/content/docs/slider_specs/application_definition.html
==============================================================================
--- websites/staging/slider/trunk/content/docs/slider_specs/application_definition.html (added)
+++ websites/staging/slider/trunk/content/docs/slider_specs/application_definition.html Tue Jul 22 18:17:12 2014
@@ -0,0 +1,393 @@
+<!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="/docs/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 id="nav_use_examples"><a href="/docs/examples.html">Examples</a></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 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_package"><a href="/docs/slider_specs/index.html">Creating App Packages</a></li>
+<li id="nav_use_app_configuration"><a href="/docs/configuration/index.html">App Configuration Model</a></li>
+<li id="nav_use_debugging"><a href="/docs/debugging.html">Debugging</a></li>
+<li id="nav_use_troubleshooting"><a href="/docs/troubleshooting.html">Troubleshooting</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.40-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-application-definition">Apache Slider Application Definition</h1>
+<p>App definition is a declarative definition of a YARN application describing its content. The AppDefinition is used in conjunction with the <a href="application_package.html">AppPackage</a>. Application definition is an XML file and is packaged as metainfo.xml.</p>
+<h2 id="structure">Structure</h2>
+<p><em>Non-mandatory fields are described in <strong>italics</strong>.</em></p>
+<p>The fields to describe an application is as follows:</p>
+<ul>
+<li>
+<p><strong>name</strong>: the name of the application</p>
+</li>
+<li>
+<p><strong>version</strong>: the version of the application. name and version together uniquely identify an application.</p>
+</li>
+<li>
+<p><strong>type</strong>: the type of the application. "YARN-APP" identifies an application definition suitable for YARN.</p>
+</li>
+<li>
+<p><strong>minHadoopVersion</strong>: the minimum version of hadoop on which the app can run</p>
+</li>
+<li>
+<p><strong>components</strong>: the list of component that the application is comprised of</p>
+</li>
+<li>
+<p><strong>osSpecifics</strong>: OS specific package information for the application</p>
+</li>
+<li>
+<p><em>commandScript</em>: application wide commands may also be defined. The command is executed on a component instance that is a client</p>
+</li>
+<li>
+<p><em>dependencies</em>: application can define a list of dependencies. Dependencies can be on the base services such as HDFS, ZOOKEEPER, YARN which are infrastructure services or GANGLIA, NAGIOS, etc. which are monitoring/alert services. The dependencies are parsed by the management infrastructure to provide the necessary configurations to allow the app to access the services. For example, a HDFS folder could be requested by the app to store its data, a ZOOKEEPER node to co-ordinate among components.</p>
+</li>
+</ul>
+<p>An application contains several component. The fields associated with a component are:</p>
+<ul>
+<li>
+<p><strong>name</strong>: name of the component</p>
+</li>
+<li>
+<p><strong>category</strong>: type of the component - MASTER, SLAVE, and CLIENT</p>
+</li>
+<li>
+<p><strong>minInstanceCount</strong>: the minimum number of instances required for this component</p>
+</li>
+<li>
+<p><em>maxInstanceCount</em>: maximum number of instances allowed for a component</p>
+</li>
+<li>
+<p><strong>commandScript</strong>: the script that implements the commands.</p>
+</li>
+<li>
+<p><strong>script</strong>: the script location - relative to the AppPackage root</p>
+</li>
+<li>
+<p><strong>scriptType</strong>: type of the script</p>
+</li>
+<li>
+<p><strong>timeout</strong>: default timeout of the script</p>
+</li>
+<li>
+<p><em>customCommands</em>: any additional commands available for the component and their implementation</p>
+</li>
+</ul>
+<p>An application definition also includes the package used to install the application. Its typically a tarball or some other form of package that does not require root access to install. The details of what happens during install is captured in the command script.</p>
+<ul>
+<li>
+<p><strong>osSpecific</strong>: details on a per OS basis</p>
+</li>
+<li>
+<p><strong>osType</strong>: "any" refers to any OS ~ typical for tarballs</p>
+</li>
+<li>
+<p><strong>packages</strong>: list of packages that needs to be deployed</p>
+</li>
+<li>
+<p><strong>type</strong>: type of package</p>
+</li>
+<li>
+<p><strong>name</strong>: name of the package</p>
+</li>
+<li>
+<p><strong>location</strong>: location of the package (can be a relative folder within the parent AppPackage)</p>
+</li>
+</ul>
+<p>Application can define a an order of activation which dictates if some component activation must follow the successful activation of other components.</p>
+<ul>
+<li>
+<p><strong>command</strong>: specifies the component and the command in the form component-command <em>currently, START is the only valid command</em></p>
+</li>
+<li>
+<p><strong>requires</strong>: specifies component and their state that the command depends on, provided in the form component-state <em>currently, STARTED is the only valid state</em></p>
+</li>
+</ul>
+<p>Applications can also advertise a set of properties (typically urls) that can only be bound when the application components are active. One such item can be the jmx endpoint. The properties to be advertised are organized as export groups (exportGroup) and each group can export one or more properties organized as a property bag. These values are visible through the registry service.</p>
+<ul>
+<li><strong>name</strong>: specifies the name of the export group</li>
+</ul>
+<p>Each exportGroup contains one or more exports.</p>
+<ul>
+<li>
+<p><strong>name</strong>: the name of the export</p>
+</li>
+<li>
+<p><strong>value</strong>: the template that will be populated by Slider and then exported</p>
+<p><metainfo>
+ <schemaVersion>2.0</schemaVersion>
+ <application>
+ <name>HBASE</name>
+ <version>0.96.0.2.1.1</version>
+ <type>YARN-APP</type>
+ <minHadoopVersion>2.1.0</minHadoopVersion>
+ <components>
+ <component>
+ <name>HBASE_MASTER</name>
+ <category>MASTER</category>
+ <minInstanceCount>1</minInstanceCount>
+ <maxInstanceCount>2</maxInstanceCount>
+ <commandScript>
+ <script>scripts/hbase_master.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ <customCommands>
+ <customCommand>
+ <name>GRACEFUL_STOP</name>
+ <commandScript>
+ <script>scripts/hbase_master.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>1800</timeout>
+ </commandScript>
+ </customCommand>
+ </customCommands>
+ </component></p>
+<div class="codehilite"><pre> <span class="nt"><component></span>
+ <span class="nt"><name></span>HBASE_REGIONSERVER<span class="nt"></name></span>
+ <span class="nt"><category></span>SLAVE<span class="nt"></category></span>
+ <span class="nt"><minInstanceCount></span>1<span class="nt"></minInstanceCount></span>
+ ...
+ <span class="nt"></component></span>
+
+ <span class="nt"><component></span>
+ <span class="nt"><name></span>HBASE_CLIENT<span class="nt"></name></span>
+ <span class="nt"><category></span>CLIENT<span class="nt"></category></span>
+ ...
+ <span class="nt"></components></span>
+
+ <span class="nt"><osSpecifics></span>
+ <span class="nt"><osSpecific></span>
+ <span class="nt"><osType></span>any<span class="nt"></osType></span>
+ <span class="nt"><packages></span>
+ <span class="nt"><package></span>
+ <span class="nt"><type></span>tarball<span class="nt"></type></span>
+ <span class="nt"><name></span>hbase-0.96.1-tar.gz<span class="nt"></name></span>
+ <span class="nt"><location></span>package/files<span class="nt"></location></span>
+ <span class="nt"></package></span>
+ <span class="nt"></packages></span>
+ <span class="nt"></osSpecific></span>
+ <span class="nt"></osSpecifics></span>
+
+ <span class="nt"><commandOrders></span>
+ <span class="nt"><commandOrder></span>
+ <span class="nt"><command></span>HBASE_REGIONSERVER-START<span class="nt"></command></span>
+ <span class="nt"><requires></span>HBASE_MASTER-STARTED<span class="nt"></requires></span>
+ <span class="nt"></commandOrder></span>
+ <span class="nt"></commandOrders></span>
+
+ <span class="nt"><exportGroups></span>
+ <span class="nt"><exportGroup></span>
+ <span class="nt"><name></span>QuickLinks<span class="nt"></name></span>
+ <span class="nt"><exports></span>
+ <span class="nt"><export></span>
+ <span class="nt"><name></span>JMX_Endpoint<span class="nt"></name></span>
+ <span class="nt"><value></span>http://<span class="cp">${</span><span class="n">HBASE_MASTER_HOST</span><span class="cp">}</span>:<span class="cp">${</span><span class="n">site</span><span class="o">.</span><span class="n">hbase</span><span class="o">-</span><span class="n">site</span><span class="o">.</span><span class="n">hbase</span><span class="o">.</span><span class="n">master</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">port</span><span class="cp">}</span>/jmx<span class="nt"></value></span>
+ <span class="nt"></export></span>
+ <span class="nt"><export></span>
+ <span class="nt"><name></span>Master_Status<span class="nt"></name></span>
+ <span class="nt"><value></span>http://<span class="cp">${</span><span class="n">HBASE_MASTER_HOST</span><span class="cp">}</span>:<span class="cp">${</span><span class="n">site</span><span class="o">.</span><span class="n">hbase</span><span class="o">-</span><span class="n">site</span><span class="o">.</span><span class="n">hbase</span><span class="o">.</span><span class="n">master</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">port</span><span class="cp">}</span>/master-status<span class="nt"></value></span>
+ <span class="nt"></export></span>
+ <span class="nt"></exports></span>
+ <span class="nt"></exportGroup></span>
+ <span class="nt"></exportGroups></span>
+
+ <span class="nt"><commandScript></span>
+ <span class="nt"><script></span>scripts/app_health_check.py<span class="nt"></script></span>
+ <span class="nt"><scriptType></span>PYTHON<span class="nt"></scriptType></span>
+ <span class="nt"><timeout></span>300<span class="nt"></timeout></span>
+ <span class="nt"></commandScript></span>
+
+<span class="nt"></application></span>
+</pre></div>
+
+
+<p></metainfo></p>
+</li>
+</ul>
+ </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>
Added: websites/staging/slider/trunk/content/docs/slider_specs/application_instance_configuration.html
==============================================================================
--- websites/staging/slider/trunk/content/docs/slider_specs/application_instance_configuration.html (added)
+++ websites/staging/slider/trunk/content/docs/slider_specs/application_instance_configuration.html Tue Jul 22 18:17:12 2014
@@ -0,0 +1,312 @@
+<!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="/docs/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 id="nav_use_examples"><a href="/docs/examples.html">Examples</a></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 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_package"><a href="/docs/slider_specs/index.html">Creating App Packages</a></li>
+<li id="nav_use_app_configuration"><a href="/docs/configuration/index.html">App Configuration Model</a></li>
+<li id="nav_use_debugging"><a href="/docs/debugging.html">Debugging</a></li>
+<li id="nav_use_troubleshooting"><a href="/docs/troubleshooting.html">Troubleshooting</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.40-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-app-instance-configuration">Apache Slider App Instance Configuration</h1>
+<p>App Instance Configuration is the configuration override provided by the application owner when creating an application instance using Slider. This configuration values override the default configuration available in the App Package.</p>
+<p>Instance configuration is a JSON formatted doc in the following form:</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>
+ <span class="p">},</span>
+ "<span class="k">global</span>"<span class="p">:</span> <span class="p">{</span>
+ <span class="p">},</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<p>An appConfig.json contains the application configuration. The sample below shows configuration for HBase.</p>
+<div class="codehilite"><pre>{
+ "schema" : "http://example.org/specification/v2.0.0",
+ "metadata" : {
+ },
+ "global" : {
+ "config_types": "core-site,hdfs-site,hbase-site",
+
+ "java_home": "/usr/jdk64/jdk1.7.0_45",
+ "package_list": "files/hbase-0.96.1-hadoop2-bin.tar",
+ "create.default.zookeeper.node": "true"
+
+ "site.global.app_user": "yarn",
+ "site.global.app_log_dir": "<span class="cp">${</span><span class="n">AGENT_LOG_ROOT</span><span class="cp">}</span>/app/log",
+ "site.global.app_pid_dir": "<span class="cp">${</span><span class="n">AGENT_WORK_ROOT</span><span class="cp">}</span>/app/run",
+ "site.global.security_enabled": "false",
+
+ "site.hbase-site.hbase.hstore.flush.retries.number": "120",
+ "site.hbase-site.hbase.client.keyvalue.maxsize": "10485760",
+ "site.hbase-site.hbase.hstore.compactionThreshold": "3",
+ "site.hbase-site.hbase.rootdir": "<span class="cp">${</span><span class="n">NN_URI</span><span class="cp">}</span>/apps/hbase/data",
+ "site.hbase-site.hbase.tmp.dir": "<span class="cp">${</span><span class="n">AGENT_WORK_ROOT</span><span class="cp">}</span>/work/app/tmp",
+ "site.hbase-site.hbase.master.info.port": "<span class="cp">${</span><span class="n">HBASE_MASTER</span><span class="o">.</span><span class="n">ALLOCATED_PORT</span><span class="cp">}</span>",
+ "site.hbase-site.hbase.regionserver.port": "0",
+ "site.hbase-site.zookeeper.znode.parent": "<span class="cp">${</span><span class="n">DEF_ZK_PATH</span><span class="cp">}</span>",
+
+ "site.core-site.fs.defaultFS": "<span class="cp">${</span><span class="n">NN_URI</span><span class="cp">}</span>",
+ "site.hdfs-site.dfs.namenode.https-address": "<span class="cp">${</span><span class="n">NN_HOST</span><span class="cp">}</span>:50470",
+ "site.hdfs-site.dfs.namenode.http-address": "<span class="cp">${</span><span class="n">NN_HOST</span><span class="cp">}</span>:50070"
+ }
+}
+</pre></div>
+
+
+<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>
+<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>
+<li>Variables of the form <code>site.global.zz</code> are sent in the same manner as other site variables except these variables are not expected to get translated to a site xml file. Usually, variables needed for template or other filter conditions (such as security_enabled = true/false) can be sent in as "global variable". </li>
+</ul>
+<p><strong>slider variables</strong></p>
+<ul>
+<li>Any config not of the form <code>site.xx.yy</code> are consumed by Slider itself. Some of the manadatory configuration are:</li>
+<li><code>application.def</code>: location of the application definition package (e.g., "/slider/hbase_v096.zip")</li>
+<li><code>config_types</code>: list of config types sent to the containers (e.g. "core-site,hdfs-site,hbase-site")</li>
+<li><code>java_home</code>: java home path (e.g. "/usr/jdk64/jdk1.7.0_45")</li>
+<li><code>package_list</code>: location of the package relative to the root where AppPackage is installed (e.g. "files/hbase-0.96.1-hadoop2-bin.tar.gz"</li>
+</ul>
+<p>OPTIONAL</p>
+<ul>
+<li><code>create.default.zookeeper.node</code>: whether the application needs default ZK node</li>
+<li><code>agent.conf</code>: location of the agent config file (typically, "/slider/agent/conf/agent.ini")</li>
+</ul>
+<p><strong>dynamically allocated ports</strong></p>
+<p>Apps can ask port to be dynamically assigned by Slider or they can leave it as "0". If there is a need for advertising any listening endpoint then the ports can be marked such.</p>
+<p>For example, HBase master info port needs to be advertised so that jmx endpoint can be accessed. This is indicated by using a special value, of the form, ${COMPONENT_NAME.ALLOCATED_PORT}. E.g. "site.hbase-site.hbase.master.info.port": "${HBASE_MASTER.ALLOCATED_PORT}"</p>
+<p><a href="application_definition.md">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>
+<ul>
+<li>"site.global.ganglia_server_host": "gangliaserver.my.org"</li>
+<li>"site.global.ganglia_server_port": "8663"</li>
+<li>"site.global.ganglia_server_id": "HBaseApplicationCluster3"</li>
+</ul>
+<p>All three variable values are user provided. It is also expected that a gmond server is available on host gangliaserver.my.org listening for metrics at port 8663 and is named "HBaseApplicationCluster3". Its the reponsibility of the ganglia server admin to ensure that the server is unique and is only receving metrics from the application instance.</p>
+<h2 id="available-environment-variable">Available environment variable</h2>
+<table>
+ <tr>
+ <td>Property</td>
+ <td>Description</td>
+ </tr>
+ <tr>
+ <td>AGENT_LOG_ROOT</td>
+ <td>The root folder for the log</td>
+ </tr>
+ <tr>
+ <td>AGENT_WORK_ROOT</td>
+ <td>The root working folder</td>
+ </tr>
+ <tr>
+ <td>NN_URI</td>
+ <td>Name node URI given to Slider</td>
+ </tr>
+ <tr>
+ <td>NN_HOST</td>
+ <td>Name node host</td>
+ </tr>
+ <tr>
+ <td><COMPONENT_NAME>.ALLOCATED_PORT</td>
+ <td>Ask Slider to allocate a port</td>
+ </tr>
+ <tr>
+ <td>DEF_ZK_PATH</td>
+ <td>Default ZK path created by Slider if create.default.zookeeper.node is true</td>
+ </tr>
+</table>
+ </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/slider_specs/application_needs.html
==============================================================================
--- websites/staging/slider/trunk/content/docs/slider_specs/application_needs.html (original)
+++ websites/staging/slider/trunk/content/docs/slider_specs/application_needs.html Tue Jul 22 18:17:12 2014
@@ -142,7 +142,7 @@
<div style="text-align: center">
<h1><a href="/index.html">Apache Slider (incubating)</a></h1>
<hr>
-Latest release: <strong>0.30-incubating</strong><br>
+Latest release: <strong>0.40-incubating</strong><br>
<br>
<a id="download-button-sidebar" class="btn btn-success btn-block" href="/downloads/" role="button">Download</a>
</div>
Modified: websites/staging/slider/trunk/content/docs/slider_specs/application_package.html
==============================================================================
--- websites/staging/slider/trunk/content/docs/slider_specs/application_package.html (original)
+++ websites/staging/slider/trunk/content/docs/slider_specs/application_package.html Tue Jul 22 18:17:12 2014
@@ -142,7 +142,7 @@
<div style="text-align: center">
<h1><a href="/index.html">Apache Slider (incubating)</a></h1>
<hr>
-Latest release: <strong>0.30-incubating</strong><br>
+Latest release: <strong>0.40-incubating</strong><br>
<br>
<a id="download-button-sidebar" class="btn btn-success btn-block" href="/downloads/" role="button">Download</a>
</div>