You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@livy.apache.org by js...@apache.org on 2017/09/04 00:44:21 UTC

incubator-livy-website git commit: [LIVY-384][DOCS] Include local build of Docs

Repository: incubator-livy-website
Updated Branches:
  refs/heads/master 315b22db2 -> 5a044aefa


[LIVY-384][DOCS] Include local build of Docs

[LIVY-384](https://issues.cloudera.org/browse/LIVY-384)

Included a copy of the 0.4.0-incubating build of the Livy Docs in the website. The process for updating the Docs can be found in the Docs README in the main repo.

Paired with apache/incubator-livy#26

Author: Alex Bozarth <aj...@us.ibm.com>

Closes #7 from ajbozarth/docs.


Project: http://git-wip-us.apache.org/repos/asf/incubator-livy-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-livy-website/commit/5a044aef
Tree: http://git-wip-us.apache.org/repos/asf/incubator-livy-website/tree/5a044aef
Diff: http://git-wip-us.apache.org/repos/asf/incubator-livy-website/diff/5a044aef

Branch: refs/heads/master
Commit: 5a044aefa4de8b31a1d94f65afdd3eaaef70911d
Parents: 315b22d
Author: Alex Bozarth <aj...@us.ibm.com>
Authored: Mon Sep 4 08:44:17 2017 +0800
Committer: jerryshao <ss...@hortonworks.com>
Committed: Mon Sep 4 08:44:17 2017 +0800

----------------------------------------------------------------------
 site/_data/navigation.yml                       |   4 +-
 site/assets/themes/apache/css/style.css         |   5 +
 site/docs/0.4.0-incubating/index.html           | 169 ++++
 .../docs/0.4.0-incubating/programmatic-api.html | 253 ++++++
 site/docs/0.4.0-incubating/rest-api.html        | 880 +++++++++++++++++++
 site/docs/latest                                |   1 +
 6 files changed, 1310 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-livy-website/blob/5a044aef/site/_data/navigation.yml
----------------------------------------------------------------------
diff --git a/site/_data/navigation.yml b/site/_data/navigation.yml
index cbac78a..446f114 100644
--- a/site/_data/navigation.yml
+++ b/site/_data/navigation.yml
@@ -21,9 +21,9 @@ topnav:
 - title: Documentation
   subcategories:
     - title: REST API
-      url: https://github.com/apache/incubator-livy/blob/master/docs/rest-api.md#rest-api
+      url: /docs/latest/rest-api.html
     - title: Programmatic API
-      url: https://github.com/apache/incubator-livy/blob/master/docs/programmatic-api.md#using-the-programmatic-api
+      url: /docs/latest/programmatic-api.html
     - title: Examples
       url: /examples
 

http://git-wip-us.apache.org/repos/asf/incubator-livy-website/blob/5a044aef/site/assets/themes/apache/css/style.css
----------------------------------------------------------------------
diff --git a/site/assets/themes/apache/css/style.css b/site/assets/themes/apache/css/style.css
index b18a7aa..a0af144 100644
--- a/site/assets/themes/apache/css/style.css
+++ b/site/assets/themes/apache/css/style.css
@@ -15,6 +15,11 @@ body {
   padding-bottom: 10px;
 }
 
+.navbar-brand .version {
+  font-size: 12px;
+  font-weight: bold;
+}
+
 .navbar {
  background-color:#339999;
  border-bottom:0px;

http://git-wip-us.apache.org/repos/asf/incubator-livy-website/blob/5a044aef/site/docs/0.4.0-incubating/index.html
----------------------------------------------------------------------
diff --git a/site/docs/0.4.0-incubating/index.html b/site/docs/0.4.0-incubating/index.html
new file mode 100644
index 0000000..53b2a13
--- /dev/null
+++ b/site/docs/0.4.0-incubating/index.html
@@ -0,0 +1,169 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>Livy Docs</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <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="/">
+              <img src="/assets/themes/apache/img/logo.png" width="50">
+              Apache Livy
+            <span class="version">0.4.0-incubating</span>
+          </a>
+        </div>
+
+          <nav class="navbar-collapse collapse" role="navigation">
+              <ul class="nav navbar-nav navbar-right">
+                  
+                  <li id="documentation">
+                      
+                      <a href="#" data-toggle="dropdown" class="dropdown-toggle">Documentation<b class="caret"></b></a>
+                      <ul class="dropdown-menu dropdown-left">
+                          
+                          
+                          <li><a href="rest-api.html" target="_self">REST API</a></li>
+                          
+                          
+                          <li><a href="programmatic-api.html" target="_self">Programmatic API</a></li>
+                          
+                      </ul>
+                      
+                  </li>
+                  
+                  <li id="apache">
+                      
+                      <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+                      <ul class="dropdown-menu dropdown-left">
+                          
+                          
+                          <li><a href="http://www.apache.org/foundation/how-it-works.html" target="_blank">Apache Software Foundation</a></li>
+                          
+                          
+                          <li><a href="http://www.apache.org/licenses/" target="_blank">Apache License</a></li>
+                          
+                          
+                          <li><a href="http://www.apache.org/foundation/sponsorship" target="_blank">Sponsorship</a></li>
+                          
+                          
+                          <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
+                          
+                      </ul>
+                      
+                  </li>
+                  
+              </ul>
+          </nav><!--/.navbar-collapse -->
+
+      </div>
+    </div>
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit Livy Docs">
+  <h1> <small>Documentation</small></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h1 id="apache-livy-documentation">Apache Livy Documentation</h1>
+
+<h3 id="rest-api"><a href="rest-api.html">REST API</a></h3>
+
+<h3 id="programmatic-api"><a href="programmatic-api.html">Programmatic API</a></h3>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2017 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache Livy is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"
+                                                               height="30%" width="30%"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2017 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+

http://git-wip-us.apache.org/repos/asf/incubator-livy-website/blob/5a044aef/site/docs/0.4.0-incubating/programmatic-api.html
----------------------------------------------------------------------
diff --git a/site/docs/0.4.0-incubating/programmatic-api.html b/site/docs/0.4.0-incubating/programmatic-api.html
new file mode 100644
index 0000000..a193a90
--- /dev/null
+++ b/site/docs/0.4.0-incubating/programmatic-api.html
@@ -0,0 +1,253 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>Livy Docs - Programmatic API</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <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="/">
+              <img src="/assets/themes/apache/img/logo.png" width="50">
+              Apache Livy
+            <span class="version">0.4.0-incubating</span>
+          </a>
+        </div>
+
+          <nav class="navbar-collapse collapse" role="navigation">
+              <ul class="nav navbar-nav navbar-right">
+                  
+                  <li id="documentation">
+                      
+                      <a href="#" data-toggle="dropdown" class="dropdown-toggle">Documentation<b class="caret"></b></a>
+                      <ul class="dropdown-menu dropdown-left">
+                          
+                          
+                          <li><a href="rest-api.html" target="_self">REST API</a></li>
+                          
+                          
+                          <li><a href="programmatic-api.html" target="_self">Programmatic API</a></li>
+                          
+                      </ul>
+                      
+                  </li>
+                  
+                  <li id="apache">
+                      
+                      <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+                      <ul class="dropdown-menu dropdown-left">
+                          
+                          
+                          <li><a href="http://www.apache.org/foundation/how-it-works.html" target="_blank">Apache Software Foundation</a></li>
+                          
+                          
+                          <li><a href="http://www.apache.org/licenses/" target="_blank">Apache License</a></li>
+                          
+                          
+                          <li><a href="http://www.apache.org/foundation/sponsorship" target="_blank">Sponsorship</a></li>
+                          
+                          
+                          <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
+                          
+                      </ul>
+                      
+                  </li>
+                  
+              </ul>
+          </nav><!--/.navbar-collapse -->
+
+      </div>
+    </div>
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit Livy Docs - Programmatic API">
+  <h1> <small>Programmatic API</small></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="using-the-programmatic-api">Using the Programmatic API</h2>
+
+<p>Livy provides a programmatic Java/Scala and Python API that allows applications to run code inside
+Spark without having to maintain a local Spark context. Here shows how to use the Java API.</p>
+
+<p>Add the Livy client dependency to your application’s POM:</p>
+
+<div class="language-xml highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;dependency&gt;</span>
+  <span class="nt">&lt;groupId&gt;</span>org.apache.livy<span class="nt">&lt;/groupId&gt;</span>
+  <span class="nt">&lt;artifactId&gt;</span>livy-client-http<span class="nt">&lt;/artifactId&gt;</span>
+  <span class="nt">&lt;version&gt;</span>0.4.0-incubating<span class="nt">&lt;/version&gt;</span>
+<span class="nt">&lt;/dependency&gt;</span>
+</code></pre>
+</div>
+
+<p>Note: Until Livy’s first Apache release you will have to
+install the livy artifacts locally using <code class="highlighter-rouge">mvn install</code>.</p>
+
+<p>To be able to compile code that uses Spark APIs, also add the correspondent Spark dependencies.</p>
+
+<p>To run Spark jobs within your applications, extend <code class="highlighter-rouge">org.apache.livy.Job</code> and implement
+the functionality you need. Here’s an example job that calculates an approximate value for Pi:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">java.util.*</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">org.apache.spark.api.java.*</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">org.apache.spark.api.java.function.*</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">org.apache.livy.*</span><span class="o">;</span>
+
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">PiJob</span> <span class="kd">implements</span> <span class="n">Job</span><span class="o">&lt;</span><span class="n">Double</span><span class="o">&gt;,</span> <span class="n">Function</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">,</span> <span class="n">Integer</span><span class="o">&gt;,</span>
+  <span class="n">Function2</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">,</span> <span class="n">Integer</span><span class="o">,</span> <span class="n">Integer</span><span class="o">&gt;</span> <span class="o">{</span>
+
+  <span class="kd">private</span> <span class="kd">final</span> <span class="kt">int</span> <span class="n">samples</span><span class="o">;</span>
+
+  <span class="kd">public</span> <span class="nf">PiJob</span><span class="o">(</span><span class="kt">int</span> <span class="n">samples</span><span class="o">)</span> <span class="o">{</span>
+    <span class="k">this</span><span class="o">.</span><span class="na">samples</span> <span class="o">=</span> <span class="n">samples</span><span class="o">;</span>
+  <span class="o">}</span>
+
+  <span class="nd">@Override</span>
+  <span class="kd">public</span> <span class="n">Double</span> <span class="nf">call</span><span class="o">(</span><span class="n">JobContext</span> <span class="n">ctx</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
+    <span class="n">List</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">&gt;</span> <span class="n">sampleList</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">&gt;();</span>
+    <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">samples</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
+      <span class="n">sampleList</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="o">);</span>
+    <span class="o">}</span>
+
+    <span class="k">return</span> <span class="mf">4.0d</span> <span class="o">*</span> <span class="n">ctx</span><span class="o">.</span><span class="na">sc</span><span class="o">().</span><span class="na">parallelize</span><span class="o">(</span><span class="n">sampleList</span><span class="o">).</span><span class="na">map</span><span class="o">(</span><span class="k">this</span><span class="o">).</span><span class="na">reduce</span><span class="o">(</span><span class="k">this</span><span class="o">)</span> <span class="o">/</span> <span class="n">samples</span><span class="o">;</span>
+  <span class="o">}</span>
+
+  <span class="nd">@Override</span>
+  <span class="kd">public</span> <span class="n">Integer</span> <span class="nf">call</span><span class="o">(</span><span class="n">Integer</span> <span class="n">v1</span><span class="o">)</span> <span class="o">{</span>
+    <span class="kt">double</span> <span class="n">x</span> <span class="o">=</span> <span class="n">Math</span><span class="o">.</span><span class="na">random</span><span class="o">();</span>
+    <span class="kt">double</span> <span class="n">y</span> <span class="o">=</span> <span class="n">Math</span><span class="o">.</span><span class="na">random</span><span class="o">();</span>
+    <span class="k">return</span> <span class="o">(</span><span class="n">x</span><span class="o">*</span><span class="n">x</span> <span class="o">+</span> <span class="n">y</span><span class="o">*</span><span class="n">y</span> <span class="o">&lt;</span> <span class="mi">1</span><span class="o">)</span> <span class="o">?</span> <span class="mi">1</span> <span class="o">:</span> <span class="mi">0</span><span class="o">;</span>
+  <span class="o">}</span>
+
+  <span class="nd">@Override</span>
+  <span class="kd">public</span> <span class="n">Integer</span> <span class="nf">call</span><span class="o">(</span><span class="n">Integer</span> <span class="n">v1</span><span class="o">,</span> <span class="n">Integer</span> <span class="n">v2</span><span class="o">)</span> <span class="o">{</span>
+    <span class="k">return</span> <span class="n">v1</span> <span class="o">+</span> <span class="n">v2</span><span class="o">;</span>
+  <span class="o">}</span>
+
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<p>To submit this code using Livy, create a LivyClient instance and upload your application code to
+the Spark context. Here’s an example of code that submits the above job and prints the computed
+value:</p>
+
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">LivyClient</span> <span class="n">client</span> <span class="o">=</span> <span class="k">new</span> <span class="n">LivyClientBuilder</span><span class="o">()</span>
+  <span class="o">.</span><span class="na">setURI</span><span class="o">(</span><span class="k">new</span> <span class="n">URI</span><span class="o">(</span><span class="n">livyUrl</span><span class="o">))</span>
+  <span class="o">.</span><span class="na">build</span><span class="o">();</span>
+
+<span class="k">try</span> <span class="o">{</span>
+  <span class="n">System</span><span class="o">.</span><span class="na">err</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"Uploading %s to the Spark context...\n"</span><span class="o">,</span> <span class="n">piJar</span><span class="o">);</span>
+  <span class="n">client</span><span class="o">.</span><span class="na">uploadJar</span><span class="o">(</span><span class="k">new</span> <span class="n">File</span><span class="o">(</span><span class="n">piJar</span><span class="o">)).</span><span class="na">get</span><span class="o">();</span>
+
+  <span class="n">System</span><span class="o">.</span><span class="na">err</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"Running PiJob with %d samples...\n"</span><span class="o">,</span> <span class="n">samples</span><span class="o">);</span>
+  <span class="kt">double</span> <span class="n">pi</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">submit</span><span class="o">(</span><span class="k">new</span> <span class="n">PiJob</span><span class="o">(</span><span class="n">samples</span><span class="o">)).</span><span class="na">get</span><span class="o">();</span>
+
+  <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"Pi is roughly: "</span> <span class="o">+</span> <span class="n">pi</span><span class="o">);</span>
+<span class="o">}</span> <span class="k">finally</span> <span class="o">{</span>
+  <span class="n">client</span><span class="o">.</span><span class="na">stop</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
+<span class="o">}</span>
+</code></pre>
+</div>
+
+<p>To learn about all the functionality available to applications, read the javadoc documentation for
+the classes under the <code class="highlighter-rouge">api</code> module.</p>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2017 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache Livy is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"
+                                                               height="30%" width="30%"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2017 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+

http://git-wip-us.apache.org/repos/asf/incubator-livy-website/blob/5a044aef/site/docs/0.4.0-incubating/rest-api.html
----------------------------------------------------------------------
diff --git a/site/docs/0.4.0-incubating/rest-api.html b/site/docs/0.4.0-incubating/rest-api.html
new file mode 100644
index 0000000..43f2dfa
--- /dev/null
+++ b/site/docs/0.4.0-incubating/rest-api.html
@@ -0,0 +1,880 @@
+
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>Livy Docs - REST API</title>
+    
+    <meta name="author" content="">
+
+    <!-- Enable responsive viewport -->
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="/assets/themes/apache/bootstrap/css/bootstrap.css" rel="stylesheet">
+    <link href="/assets/themes/apache/css/style.css?body=1" rel="stylesheet" type="text/css">
+    <link href="/assets/themes/apache/css/syntax.css" rel="stylesheet"  type="text/css" media="screen" />
+    <!-- Le fav and touch icons -->
+    <!-- Update these with your own images
+    <link rel="shortcut icon" href="images/favicon.ico">
+    <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+  -->
+
+  </head>
+
+  <body>
+
+        <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
+      <div class="container">
+        <div class="navbar-header">
+          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+            <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="/">
+              <img src="/assets/themes/apache/img/logo.png" width="50">
+              Apache Livy
+            <span class="version">0.4.0-incubating</span>
+          </a>
+        </div>
+
+          <nav class="navbar-collapse collapse" role="navigation">
+              <ul class="nav navbar-nav navbar-right">
+                  
+                  <li id="documentation">
+                      
+                      <a href="#" data-toggle="dropdown" class="dropdown-toggle">Documentation<b class="caret"></b></a>
+                      <ul class="dropdown-menu dropdown-left">
+                          
+                          
+                          <li><a href="rest-api.html" target="_self">REST API</a></li>
+                          
+                          
+                          <li><a href="programmatic-api.html" target="_self">Programmatic API</a></li>
+                          
+                      </ul>
+                      
+                  </li>
+                  
+                  <li id="apache">
+                      
+                      <a href="#" data-toggle="dropdown" class="dropdown-toggle">Apache<b class="caret"></b></a>
+                      <ul class="dropdown-menu dropdown-left">
+                          
+                          
+                          <li><a href="http://www.apache.org/foundation/how-it-works.html" target="_blank">Apache Software Foundation</a></li>
+                          
+                          
+                          <li><a href="http://www.apache.org/licenses/" target="_blank">Apache License</a></li>
+                          
+                          
+                          <li><a href="http://www.apache.org/foundation/sponsorship" target="_blank">Sponsorship</a></li>
+                          
+                          
+                          <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
+                          
+                      </ul>
+                      
+                  </li>
+                  
+              </ul>
+          </nav><!--/.navbar-collapse -->
+
+      </div>
+    </div>
+
+
+    <div class="container">
+      
+
+<!--<div class="hero-unit Livy Docs - REST API">
+  <h1> <small>REST API</small></h1>
+</div>
+-->
+
+<div class="row">
+  <div class="col-md-12">
+    <!--
+
+-->
+
+<h2 id="rest-api">REST API</h2>
+
+<h3 id="get-sessions">GET /sessions</h3>
+
+<p>Returns all the active interactive sessions.</p>
+
+<h4 id="request-parameters">Request Parameters</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>from</td>
+    <td>The start index to fetch sessions</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>size</td>
+    <td>Number of sessions to fetch</td>
+    <td>int</td>
+  </tr>
+</table>
+
+<h4 id="response-body">Response Body</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>from</td>
+    <td>The start index to fetch sessions</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>size</td>
+    <td>Number of sessions to fetch</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>sessions</td>
+    <td><a href="#session">Session</a> list</td>
+    <td>list</td>
+  </tr>
+</table>
+
+<h3 id="post-sessions">POST /sessions</h3>
+
+<p>Creates a new interactive Scala, Python, or R shell in the cluster.</p>
+
+<h4 id="request-body">Request Body</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>kind</td>
+    <td>The session kind (required)</td>
+    <td><a href="#session-kind">session kind</a></td>
+  </tr>
+  <tr>
+    <td>proxyUser</td>
+    <td>User to impersonate when starting the session</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>jars</td>
+    <td>jars to be used in this session</td>
+    <td>List of string</td>
+  </tr>
+  <tr>
+    <td>pyFiles</td>
+    <td>Python files to be used in this session</td>
+    <td>List of string</td>
+  </tr>
+  <tr>
+    <td>files</td>
+    <td>files to be used in this session</td>
+    <td>List of string</td>
+  </tr>
+  <tr>
+    <td>driverMemory</td>
+    <td>Amount of memory to use for the driver process</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>driverCores</td>
+    <td>Number of cores to use for the driver process</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>executorMemory</td>
+    <td>Amount of memory to use per executor process</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>executorCores</td>
+    <td>Number of cores to use for each executor</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>numExecutors</td>
+    <td>Number of executors to launch for this session</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>archives</td>
+    <td>Archives to be used in this session</td>
+    <td>List of string</td>
+  </tr>
+  <tr>
+    <td>queue</td>
+    <td>The name of the YARN queue to which submitted</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>name</td>
+    <td>The name of this session</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>conf</td>
+    <td>Spark configuration properties</td>
+    <td>Map of key=val</td>
+  </tr>
+  <tr>
+    <td>heartbeatTimeoutInSecond</td>
+    <td>Timeout in second to which session be orphaned</td>
+    <td>int</td>
+  </tr>
+</table>
+
+<h4 id="response-body-1">Response Body</h4>
+
+<p>The created <a href="#session">Session</a>.</p>
+
+<h3 id="get-sessionssessionid">GET /sessions/{sessionId}</h3>
+
+<p>Returns the session information.</p>
+
+<h4 id="response-body-2">Response Body</h4>
+
+<p>The <a href="#session">Session</a>.</p>
+
+<h3 id="get-sessionssessionidstate">GET /sessions/{sessionId}/state</h3>
+
+<p>Returns the state of session</p>
+
+<h4 id="response">Response</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>id</td>
+    <td>Session id</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>state</td>
+    <td>The current state of session</td>
+    <td>string</td>
+  </tr>
+</table>
+
+<h3 id="delete-sessionssessionid">DELETE /sessions/{sessionId}</h3>
+
+<p>Kills the <a href="#session">Session</a> job.</p>
+
+<h3 id="get-sessionssessionidlog">GET /sessions/{sessionId}/log</h3>
+
+<p>Gets the log lines from this session.</p>
+
+<h4 id="request-parameters-1">Request Parameters</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>from</td>
+    <td>Offset</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>size</td>
+    <td>Max number of log lines to return</td>
+    <td>int</td>
+  </tr>
+</table>
+
+<h4 id="response-body-3">Response Body</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>id</td>
+    <td>The session id</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>from</td>
+    <td>Offset from start of log</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>size</td>
+    <td>Max number of log lines</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>log</td>
+    <td>The log lines</td>
+    <td>list of strings</td>
+  </tr>
+</table>
+
+<h3 id="get-sessionssessionidstatements">GET /sessions/{sessionId}/statements</h3>
+
+<p>Returns all the statements in a session.</p>
+
+<h4 id="response-body-4">Response Body</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>statements</td>
+    <td><a href="#statement">statement</a> list</td>
+    <td>list</td>
+  </tr>
+</table>
+
+<h3 id="post-sessionssessionidstatements">POST /sessions/{sessionId}/statements</h3>
+
+<p>Runs a statement in a session.</p>
+
+<h4 id="request-body-1">Request Body</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>code</td>
+    <td>The code to execute</td>
+    <td>string</td>
+  </tr>
+</table>
+
+<h4 id="response-body-5">Response Body</h4>
+
+<p>The <a href="#statement">statement</a> object.</p>
+
+<h3 id="get-sessionssessionidstatementsstatementid">GET /sessions/{sessionId}/statements/{statementId}</h3>
+
+<p>Returns a specified statement in a session.</p>
+
+<h4 id="response-body-6">Response Body</h4>
+
+<p>The <a href="#statement">statement</a> object.</p>
+
+<h3 id="post-sessionssessionidstatementsstatementidcancel">POST /sessions/{sessionId}/statements/{statementId}/cancel</h3>
+
+<p>Cancel the specified statement in this session.</p>
+
+<h4 id="response-body-7">Response Body</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>msg</td>
+    <td>is always "cancelled"</td>
+    <td>string</td>
+  </tr>
+</table>
+
+<h3 id="get-batches">GET /batches</h3>
+
+<p>Returns all the active batch sessions.</p>
+
+<h4 id="request-parameters-2">Request Parameters</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>from</td>
+    <td>The start index to fetch sessions</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>size</td>
+    <td>Number of sessions to fetch</td>
+    <td>int</td>
+  </tr>
+</table>
+
+<h4 id="response-body-8">Response Body</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>from</td>
+    <td>The start index of fetched sessions</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>total</td>
+    <td>Number of sessions fetched</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>sessions</td>
+    <td><a href="#batch">Batch</a> list</td>
+    <td>list</td>
+  </tr>
+</table>
+
+<h3 id="post-batches">POST /batches</h3>
+
+<h4 id="request-body-2">Request Body</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>file</td>
+    <td>File containing the application to execute</td>
+    <td>path (required)</td>
+  </tr>
+  <tr>
+    <td>proxyUser</td>
+    <td>User to impersonate when running the job</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>className</td>
+    <td>Application Java/Spark main class</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>args</td>
+    <td>Command line arguments for the application</td>
+    <td>list of strings</td>
+  </tr>
+  <tr>
+    <td>jars</td>
+    <td>jars to be used in this session</td>
+    <td>list of strings</td>
+  </tr>
+  <tr>
+    <td>pyFiles</td>
+    <td>Python files to be used in this session</td>
+    <td>list of strings</td>
+  </tr>
+  <tr>
+    <td>files</td>
+    <td>files to be used in this session</td>
+    <td>list of strings</td>
+  </tr>
+  <tr>
+    <td>driverMemory</td>
+    <td>Amount of memory to use for the driver process</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>driverCores</td>
+    <td>Number of cores to use for the driver process</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>executorMemory</td>
+    <td>Amount of memory to use per executor process</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>executorCores</td>
+    <td>Number of cores to use for each executor</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>numExecutors</td>
+    <td>Number of executors to launch for this session</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>archives</td>
+    <td>Archives to be used in this session</td>
+    <td>List of string</td>
+  </tr>
+  <tr>
+    <td>queue</td>
+    <td>The name of the YARN queue to which submitted</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>name</td>
+    <td>The name of this session</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>conf</td>
+    <td>Spark configuration properties</td>
+    <td>Map of key=val</td>
+  </tr>
+</table>
+
+<h4 id="response-body-9">Response Body</h4>
+
+<p>The created <a href="#batch">Batch</a> object.</p>
+
+<h3 id="get-batchesbatchid">GET /batches/{batchId}</h3>
+
+<p>Returns the batch session information.</p>
+
+<h4 id="response-body-10">Response Body</h4>
+
+<p>The <a href="#batch">Batch</a>.</p>
+
+<h3 id="get-batchesbatchidstate">GET /batches/{batchId}/state</h3>
+
+<p>Returns the state of batch session</p>
+
+<h4 id="response-1">Response</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>id</td>
+    <td>Batch session id</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>state</td>
+    <td>The current state of batch session</td>
+    <td>string</td>
+  </tr>
+</table>
+
+<h3 id="delete-batchesbatchid">DELETE /batches/{batchId}</h3>
+
+<p>Kills the <a href="#batch">Batch</a> job.</p>
+
+<h3 id="get-batchesbatchidlog">GET /batches/{batchId}/log</h3>
+
+<p>Gets the log lines from this batch.</p>
+
+<h4 id="request-parameters-3">Request Parameters</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>from</td>
+    <td>Offset</td>
+    <td>Offset</td>
+  </tr>
+  <tr>
+    <td>size</td>
+    <td>Max number of log lines to return</td>
+    <td>Offset</td>
+  </tr>
+</table>
+
+<h4 id="response-body-11">Response Body</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>id</td>
+    <td>The batch id</td>
+    <td>id</td>
+  </tr>
+  <tr>
+    <td>from</td>
+    <td>Offset from start of log</td>
+    <td>id</td>
+  </tr>
+  <tr>
+    <td>size</td>
+    <td>Number of log lines</td>
+    <td>id</td>
+  </tr>
+  <tr>
+    <td>log</td>
+    <td>The log lines</td>
+    <td>list of strings</td>
+  </tr>
+</table>
+
+<h2 id="rest-objects">REST Objects</h2>
+
+<h3 id="session">Session</h3>
+
+<p>A session represents an interactive shell.</p>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>id</td>
+    <td>The session id</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>appId</td>
+    <td>The application id of this session</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>owner</td>
+    <td>Remote user who submitted this session</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>proxyUser</td>
+    <td>User to impersonate when running</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>kind</td>
+    <td>Session kind (spark, pyspark, or sparkr)</td>
+    <td><a href="#session-kind">session kind</a></td>
+  </tr>
+  <tr>
+    <td>log</td>
+    <td>The log lines</td>
+    <td>list of strings</td>
+  </tr>
+  <tr>
+    <td>state</td>
+    <td>The session state</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>appInfo</td>
+    <td>The detailed application info</td>
+    <td>Map of key=val</td>
+  </tr>
+</table>
+
+<h4 id="session-state">Session State</h4>
+
+<table class="table">
+  <tr><th>Value</th><th>Description</th></tr>
+  <tr>
+    <td>not_started</td>
+    <td>Session has not been started</td>
+  </tr>
+  <tr>
+    <td>starting</td>
+    <td>Session is starting</td>
+  </tr>
+  <tr>
+    <td>idle</td>
+    <td>Session is waiting for input</td>
+  </tr>
+  <tr>
+    <td>busy</td>
+    <td>Session is executing a statement</td>
+  </tr>
+  <tr>
+    <td>shutting_down</td>
+    <td>Session is shutting down</td>
+  </tr>
+  <tr>
+    <td>error</td>
+    <td>Session errored out</td>
+  </tr>
+  <tr>
+    <td>dead</td>
+    <td>Session has exited</td>
+  </tr>
+  <tr>
+    <td>success</td>
+    <td>Session is successfully stopped</td>
+  </tr>
+</table>
+
+<h4 id="session-kind">Session Kind</h4>
+
+<table class="table">
+  <tr><th>Value</th><th>Description</th></tr>
+  <tr>
+    <td>spark</td>
+    <td>Interactive Scala Spark session</td>
+  </tr>
+  <tr>
+    <td><a href="#pyspark">pyspark</a></td>
+    <td>Interactive Python 2 Spark session</td>
+  </tr>
+  <tr>
+    <td><a href="#pyspark3">pyspark3</a></td>
+    <td>Interactive Python 3 Spark session</td>
+  </tr>
+  <tr>
+    <td>sparkr</td>
+    <td>Interactive R Spark session</td>
+  </tr>
+</table>
+
+<h4 id="pyspark">pyspark</h4>
+<p>To change the Python executable the session uses, Livy reads the path from environment variable
+<code class="highlighter-rouge">PYSPARK_PYTHON</code> (Same as pyspark).</p>
+
+<p>Like pyspark, if Livy is running in <code class="highlighter-rouge">local</code> mode, just set the environment variable.
+If the session is running in <code class="highlighter-rouge">yarn-cluster</code> mode, please set
+<code class="highlighter-rouge">spark.yarn.appMasterEnv.PYSPARK_PYTHON</code> in SparkConf so the environment variable is passed to
+the driver.</p>
+
+<h4 id="pyspark3">pyspark3</h4>
+<p>To change the Python executable the session uses, Livy reads the path from environment variable
+<code class="highlighter-rouge">PYSPARK3_PYTHON</code>.</p>
+
+<p>Like pyspark, if Livy is running in <code class="highlighter-rouge">local</code> mode, just set the environment variable.
+If the session is running in <code class="highlighter-rouge">yarn-cluster</code> mode, please set
+<code class="highlighter-rouge">spark.yarn.appMasterEnv.PYSPARK3_PYTHON</code> in SparkConf so the environment variable is passed to
+the driver.</p>
+
+<h3 id="statement">Statement</h3>
+
+<p>A statement represents the result of an execution statement.</p>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>id</td>
+    <td>The statement id</td>
+    <td>integer</td>
+  </tr>
+  <tr>
+    <td>code</td>
+    <td>The execution code</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>state</td>
+    <td>The execution state</td>
+    <td>statement state</td>
+  </tr>
+  <tr>
+    <td>output</td>
+    <td>The execution output</td>
+    <td>statement output</td>
+  </tr>
+</table>
+
+<h4 id="statement-state">Statement State</h4>
+
+<table class="table">
+  <tr><th>Value</th><th>Description</th></tr>
+  <tr>
+    <td>waiting</td>
+    <td>Statement is enqueued but execution hasn't started</td>
+  </tr>
+  <tr>
+    <td>running</td>
+    <td>Statement is currently running</td>
+  </tr>
+  <tr>
+    <td>available</td>
+    <td>Statement has a response ready</td>
+  </tr>
+  <tr>
+    <td>error</td>
+    <td>Statement failed</td>
+  </tr>
+  <tr>
+    <td>cancelling</td>
+    <td>Statement is being cancelling</td>
+  </tr>
+  <tr>
+    <td>cancelled</td>
+    <td>Statement is cancelled</td>
+  </tr>
+</table>
+
+<h4 id="statement-output">Statement Output</h4>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>status</td>
+    <td>Execution status</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>execution_count</td>
+    <td>A monotonically increasing number</td>
+    <td>integer</td>
+  </tr>
+  <tr>
+    <td>data</td>
+    <td>Statement output</td>
+    <td>An object mapping a mime type to the result. If the mime type is
+    ``application/json``, the value is a JSON value.</td>
+  </tr>
+</table>
+
+<h3 id="batch">Batch</h3>
+
+<table class="table">
+  <tr><th>Name</th><th>Description</th><th>Type</th></tr>
+  <tr>
+    <td>id</td>
+    <td>The session id</td>
+    <td>int</td>
+  </tr>
+  <tr>
+    <td>appId</td>
+    <td>The application id of this session</td>
+    <td>string</td>
+  </tr>
+  <tr>
+    <td>appInfo</td>
+    <td>The detailed application info</td>
+    <td>Map of key=val</td>
+  </tr>
+  <tr>
+    <td>log</td>
+    <td>The log lines</td>
+    <td>list of strings</td>
+  </tr>
+  <tr>
+    <td>state</td>
+    <td>The batch state</td>
+    <td>string</td>
+  </tr>
+</table>
+
+  </div>
+</div>
+
+
+      <hr>
+      <footer>
+        <!-- <p>&copy; 2017 </p>-->
+        <footer class="site-footer">
+    <div class="wrapper">
+        <div class="footer-col-wrapper">
+            
+            Apache Livy is an effort undergoing <a href="https://incubator.apache.org/index.html">Incubation</a>
+            at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly
+            accepted projects until a further review indicates that the infrastructure, communications, and decision
+            making process have stabilized in a manner consistent with other successful ASF projects. While incubation
+            status is not necessarily a reflection of the completeness or stability of the code, it does indicate that
+            the project has yet to be fully endorsed by the ASF.
+            <hr>
+            
+            <div style="text-align:center;">
+                
+                <div style="margin-top: 20px; margin-bottom: 20px;">
+                    <a href="http://incubator.apache.org"><img src="/assets/themes/apache/img/egg-logo.png"
+                                                               alt="Apache Incubator"
+                                                               height="30%" width="30%"/></a>
+                </div>
+                
+                <div>
+                    Copyright &copy; 2017 <a href="http://www.apache.org">The Apache Software Foundation</a>.
+                    Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
+                    2.0</a>.
+                    <br>
+                    
+                    Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache
+                    Software Foundation.
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+
+      </footer>
+    </div>
+
+    <script src="/assets/themes/apache/jquery/jquery-2.1.1.min.js"></script>
+
+    <script src="/assets/themes/apache/bootstrap/js/bootstrap.min.js"></script>
+
+
+  </body>
+</html>
+

http://git-wip-us.apache.org/repos/asf/incubator-livy-website/blob/5a044aef/site/docs/latest
----------------------------------------------------------------------
diff --git a/site/docs/latest b/site/docs/latest
new file mode 120000
index 0000000..7857867
--- /dev/null
+++ b/site/docs/latest
@@ -0,0 +1 @@
+0.4.0-incubating/
\ No newline at end of file