http://git-wip-us.apache.org/repos/asf/falcon/blob/82d0e6fc/content/0.4-incubating/css/print.css
----------------------------------------------------------------------
diff --git a/content/0.4-incubating/css/print.css 
b/content/0.4-incubating/css/print.css
new file mode 100644
index 0000000..1cd02d9
--- /dev/null
+++ b/content/0.4-incubating/css/print.css
@@ -0,0 +1,23 @@
+/*
+ * 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.
+ */
+
+/* $Id: print.css 1201871 2011-11-14 20:18:24Z simonetripodi $ */
+
+#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, 
#leftColumn, #navColumn {display: none !important;}
+#bodyColumn, body.docs div.docs {margin: 0 !important;border: none !important}

http://git-wip-us.apache.org/repos/asf/falcon/blob/82d0e6fc/content/0.4-incubating/css/site.css
----------------------------------------------------------------------
diff --git a/content/0.4-incubating/css/site.css 
b/content/0.4-incubating/css/site.css
new file mode 100644
index 0000000..055e7e2
--- /dev/null
+++ b/content/0.4-incubating/css/site.css
@@ -0,0 +1 @@
+/* You can override this file with your own styles */
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/falcon/blob/82d0e6fc/content/0.4-incubating/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/content/0.4-incubating/dependency-convergence.html 
b/content/0.4-incubating/dependency-convergence.html
new file mode 100644
index 0000000..e7d1d28
--- /dev/null
+++ b/content/0.4-incubating/dependency-convergence.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2016-03-11
+ | Rendered using Apache Maven Fluido Skin 1.3.0
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20160311" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Falcon - Reactor Dependency Convergence</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" 
src="./js/apache-maven-fluido-1.3.0.min.js"></script>
+
+    
+            </head>
+        <body class="topBarDisabled">
+          
+                        
+                    
+    
+        <div class="container">
+          <div id="banner">
+        <div class="pull-left">
+                                    <a 
href="http://falcon.incubator.apache.org/index.html"; id="bannerLeft">
+                                                                               
                 <img src="images/falcon-logo.png"  alt="Falcon" width="200px" 
height="45px"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a 
href="http://incubator.apache.org"; id="bannerRight">
+                                                                               
                 <img src="images/apache-incubator-logo.png"  alt="Apache 
Incubator"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="index.html" title="Home">
+        Home</a>
+        </li>
+      <li class="divider ">/</li>
+        <li class="">Reactor Dependency Convergence</li>
+        
+                
+                    
+      
+                                              
+    <li class="pull-right">              <a 
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12314429&version=12324424";
 class="externalLink" title="Released: 2014-02-02">
+        Released: 2014-02-02</a>
+  </li>
+
+        <li class="divider pull-right">|</li>
+      
+    <li class="pull-right">              <a 
href="http://archive.apache.org/dist/incubator/falcon/"; class="externalLink" 
title="0.4-incubating">
+        0.4-incubating</a>
+  </li>
+
+                        </ul>
+      </div>
+
+      
+                
+        <div id="bodyColumn" >
+                                  
+            <div class="section">
+<h2>Reactor Dependency Convergence<a 
name="Reactor_Dependency_Convergence"></a></h2>
+<table border="0" class="table table-striped"><caption>
+  <b>Legend:</b>
+</caption>
+<tr class="a">
+<td><img alt="error" src="images/icon_error_sml.gif" /></td>
+<td>At least one dependency has a differing version of the dependency or has 
SNAPSHOT dependencies.</td></tr></table><br />
+<table border="0" class="table table-striped"><caption>
+  <b>Statistics:</b>
+</caption>
+<tr class="b">
+<th>Number of modules:</th>
+<td>11</td></tr>
+<tr class="a">
+<th>Number of dependencies (NOD):</th>
+<td>0</td></tr>
+<tr class="b">
+<th>Number of unique artifacts (NOA):</th>
+<td>0</td></tr>
+<tr class="a">
+<th>Number of version-conflicting artifacts (NOC):</th>
+<td>0</td></tr>
+<tr class="b">
+<th>Number of SNAPSHOT artifacts (NOS):</th>
+<td>0</td></tr>
+<tr class="a">
+<th>Convergence (NOD/NOA):</th>
+<td><img alt="error" src="images/icon_error_sml.gif" />&#160;<b>0 
%</b></td></tr>
+<tr class="b">
+<th>Ready for release (100 % convergence and no SNAPSHOTS):</th>
+<td><img alt="error" src="images/icon_error_sml.gif" />&#160;<b>Error</b><br 
/>You do not have 100 % convergence.</td></tr></table></div>
+<div class="section">
+<h3>Dependencies used in modules<a 
name="Dependencies_used_in_modules"></a></h3></div>
+                  </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container">
+              <div class="row span12">Copyright &copy;                    
2013-2016
+                        <a href="http://www.apache.org";>Apache Software 
Foundation</a>.
+            All Rights Reserved.      
+                    
+      </div>
+
+                          
+                <p id="poweredBy" class="pull-right">
+                          <a href="http://maven.apache.org/"; title="Built by 
Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" 
src="./images/logos/maven-feather.png" />
+      </a>
+              </p>
+        
+                </div>
+    </footer>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/falcon/blob/82d0e6fc/content/0.4-incubating/dependency-info.html
----------------------------------------------------------------------
diff --git a/content/0.4-incubating/dependency-info.html 
b/content/0.4-incubating/dependency-info.html
new file mode 100644
index 0000000..7d11c2a
--- /dev/null
+++ b/content/0.4-incubating/dependency-info.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2016-03-11
+ | Rendered using Apache Maven Fluido Skin 1.3.0
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20160311" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Falcon - Dependency Information</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" 
src="./js/apache-maven-fluido-1.3.0.min.js"></script>
+
+    
+            </head>
+        <body class="topBarDisabled">
+          
+                        
+                    
+    
+        <div class="container">
+          <div id="banner">
+        <div class="pull-left">
+                                    <a 
href="http://falcon.incubator.apache.org/index.html"; id="bannerLeft">
+                                                                               
                 <img src="images/falcon-logo.png"  alt="Falcon" width="200px" 
height="45px"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a 
href="http://incubator.apache.org"; id="bannerRight">
+                                                                               
                 <img src="images/apache-incubator-logo.png"  alt="Apache 
Incubator"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="index.html" title="Home">
+        Home</a>
+        </li>
+      <li class="divider ">/</li>
+        <li class="">Dependency Information</li>
+        
+                
+                    
+      
+                                              
+    <li class="pull-right">              <a 
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12314429&version=12324424";
 class="externalLink" title="Released: 2014-02-02">
+        Released: 2014-02-02</a>
+  </li>
+
+        <li class="divider pull-right">|</li>
+      
+    <li class="pull-right">              <a 
href="http://archive.apache.org/dist/incubator/falcon/"; class="externalLink" 
title="0.4-incubating">
+        0.4-incubating</a>
+  </li>
+
+                        </ul>
+      </div>
+
+      
+                
+        <div id="bodyColumn" >
+                                  
+            <div class="section">
+<h2>Dependency Information<a name="Dependency_Information"></a></h2><a 
name="Dependency_Information"></a>
+<div class="section">
+<h3>Apache Maven<a name="Apache_Maven"></a></h3><a name="Apache_Maven"></a>
+<div class="source">
+<pre>&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.falcon&lt;/groupId&gt;
+  &lt;artifactId&gt;falcon-website-0.4-incubating&lt;/artifactId&gt;
+  &lt;version&gt;0.4-incubating&lt;/version&gt;
+  &lt;type&gt;pom&lt;/type&gt;
+&lt;/dependency&gt;</pre></div></div>
+<div class="section">
+<h3>Apache Buildr<a name="Apache_Buildr"></a></h3><a name="Apache_Buildr"></a>
+<div class="source">
+<pre>'org.apache.falcon:falcon-website-0.4-incubating:pom:0.4-incubating'</pre></div></div>
+<div class="section">
+<h3>Apache Ivy<a name="Apache_Ivy"></a></h3><a name="Apache_Ivy"></a>
+<div class="source">
+<pre>&lt;dependency org=&quot;org.apache.falcon&quot; 
name=&quot;falcon-website-0.4-incubating&quot; 
rev=&quot;0.4-incubating&quot;&gt;
+  &lt;artifact name=&quot;falcon-website-0.4-incubating&quot; 
type=&quot;pom&quot; /&gt;
+&lt;/dependency&gt;</pre></div></div>
+<div class="section">
+<h3>Groovy Grape<a name="Groovy_Grape"></a></h3><a name="Groovy_Grape"></a>
+<div class="source">
+<pre>@Grapes(
+@Grab(group='org.apache.falcon', module='falcon-website-0.4-incubating', 
version='0.4-incubating')
+)</pre></div></div>
+<div class="section">
+<h3>Grails<a name="Grails"></a></h3><a name="Grails"></a>
+<div class="source">
+<pre>compile 
'org.apache.falcon:falcon-website-0.4-incubating:0.4-incubating'</pre></div></div>
+<div class="section">
+<h3>Leiningen<a name="Leiningen"></a></h3><a name="Leiningen"></a>
+<div class="source">
+<pre>[org.apache.falcon/falcon-website-0.4-incubating 
&quot;0.4-incubating&quot;]</pre></div></div>
+<div class="section">
+<h3>SBT<a name="SBT"></a></h3><a name="SBT"></a>
+<div class="source">
+<pre>libraryDependencies += &quot;org.apache.falcon&quot; % 
&quot;falcon-website-0.4-incubating&quot; % 
&quot;0.4-incubating&quot;</pre></div></div></div>
+                  </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container">
+              <div class="row span12">Copyright &copy;                    
2013-2016
+                        <a href="http://www.apache.org";>Apache Software 
Foundation</a>.
+            All Rights Reserved.      
+                    
+      </div>
+
+                          
+                <p id="poweredBy" class="pull-right">
+                          <a href="http://maven.apache.org/"; title="Built by 
Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" 
src="./images/logos/maven-feather.png" />
+      </a>
+              </p>
+        
+                </div>
+    </footer>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/falcon/blob/82d0e6fc/content/0.4-incubating/distribution-management.html
----------------------------------------------------------------------
diff --git a/content/0.4-incubating/distribution-management.html 
b/content/0.4-incubating/distribution-management.html
new file mode 100644
index 0000000..caefad5
--- /dev/null
+++ b/content/0.4-incubating/distribution-management.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2016-03-11
+ | Rendered using Apache Maven Fluido Skin 1.3.0
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20160311" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Falcon - Project Distribution Management</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" 
src="./js/apache-maven-fluido-1.3.0.min.js"></script>
+
+    
+            </head>
+        <body class="topBarDisabled">
+          
+                        
+                    
+    
+        <div class="container">
+          <div id="banner">
+        <div class="pull-left">
+                                    <a 
href="http://falcon.incubator.apache.org/index.html"; id="bannerLeft">
+                                                                               
                 <img src="images/falcon-logo.png"  alt="Falcon" width="200px" 
height="45px"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a 
href="http://incubator.apache.org"; id="bannerRight">
+                                                                               
                 <img src="images/apache-incubator-logo.png"  alt="Apache 
Incubator"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="index.html" title="Home">
+        Home</a>
+        </li>
+      <li class="divider ">/</li>
+        <li class="">Project Distribution Management</li>
+        
+                
+                    
+      
+                                              
+    <li class="pull-right">              <a 
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12314429&version=12324424";
 class="externalLink" title="Released: 2014-02-02">
+        Released: 2014-02-02</a>
+  </li>
+
+        <li class="divider pull-right">|</li>
+      
+    <li class="pull-right">              <a 
href="http://archive.apache.org/dist/incubator/falcon/"; class="externalLink" 
title="0.4-incubating">
+        0.4-incubating</a>
+  </li>
+
+                        </ul>
+      </div>
+
+      
+                
+        <div id="bodyColumn" >
+                                  
+            <div class="section">
+<h2>Overview<a name="Overview"></a></h2><a name="Overview"></a>
+<p>The following is the distribution management information used by this 
project.</p>
+<div class="section">
+<h3>Site - apache-falcon-website<a 
name="Site_-_apache-falcon-website"></a></h3><a 
name="Site_-_apache-falcon-website"></a>
+<p>scpexe://people.apache.org/www/falcon.apache.org/falcon-website-releases/falcon-website-0.4-incubating</p></div></div>
+                  </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container">
+              <div class="row span12">Copyright &copy;                    
2013-2016
+                        <a href="http://www.apache.org";>Apache Software 
Foundation</a>.
+            All Rights Reserved.      
+                    
+      </div>
+
+                          
+                <p id="poweredBy" class="pull-right">
+                          <a href="http://maven.apache.org/"; title="Built by 
Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" 
src="./images/logos/maven-feather.png" />
+      </a>
+              </p>
+        
+                </div>
+    </footer>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/falcon/blob/82d0e6fc/content/0.4-incubating/docs/EntitySpecification.html
----------------------------------------------------------------------
diff --git a/content/0.4-incubating/docs/EntitySpecification.html 
b/content/0.4-incubating/docs/EntitySpecification.html
new file mode 100644
index 0000000..78ef8b5
--- /dev/null
+++ b/content/0.4-incubating/docs/EntitySpecification.html
@@ -0,0 +1,789 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2016-03-11
+ | Rendered using Apache Maven Fluido Skin 1.3.0
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20160311" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Falcon - Contents</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.0.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+
+      
+    <script type="text/javascript" 
src="../js/apache-maven-fluido-1.3.0.min.js"></script>
+
+    
+            </head>
+        <body class="topBarDisabled">
+          
+                        
+                    
+    
+        <div class="container">
+          <div id="banner">
+        <div class="pull-left">
+                                    <a 
href="http://falcon.incubator.apache.org/index.html"; id="bannerLeft">
+                                                                               
                 <img src="../images/falcon-logo.png"  alt="Falcon" 
width="200px" height="45px"/>
+                </a>
+                      </div>
+        <div class="pull-right">                  <a 
href="http://incubator.apache.org"; id="bannerRight">
+                                                                               
                 <img src="../images/apache-incubator-logo.png"  alt="Apache 
Incubator"/>
+                </a>
+      </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                              <li class="">
+                    <a href="../index.html" title="Home">
+        Home</a>
+        </li>
+      <li class="divider ">/</li>
+        <li class="">Contents</li>
+        
+                
+                    
+      
+                                              
+    <li class="pull-right">              <a 
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12314429&version=12324424";
 class="externalLink" title="Released: 2014-02-02">
+        Released: 2014-02-02</a>
+  </li>
+
+        <li class="divider pull-right">|</li>
+      
+    <li class="pull-right">              <a 
href="http://archive.apache.org/dist/incubator/falcon/"; class="externalLink" 
title="0.4-incubating">
+        0.4-incubating</a>
+  </li>
+
+                        </ul>
+      </div>
+
+      
+                
+        <div id="bodyColumn" >
+                                  
+            <div class="section">
+<h3>Contents<a name="Contents"></a></h3>
+<p></p>
+<ul>
+<li><a href="#Cluster_Specification">Cluster Specification</a></li>
+<li><a href="#Feed_Specification">Feed Specification</a></li>
+<li><a href="#Process_Specification">Process Specification</a></li></ul></div>
+<div class="section">
+<h3>Cluster Specification<a name="Cluster_Specification"></a></h3>
+<p>The <a class="externalLink" 
href="https://git-wip-us.apache.org/repos/asf?p=falcon.git;a=blob_plain;f=client/src/main/resources/cluster-0.1.xsd;hb=refs/heads/branch-0.4";>Cluster
 XSD specification</a> is available here:</p>
+<p>A cluster contains different interfaces which are used by Falcon like 
readonly, write, workflow and messaging. A cluster is referenced by feeds and 
processes which are on-boarded to Falcon by its name.</p>
+<p>Following are the tags defined in a cluster.xml:</p>
+<div class="source">
+<pre>
+&lt;cluster colo=&quot;gs&quot; description=&quot;&quot; name=&quot;corp&quot; 
xmlns=&quot;uri:falcon:cluster:0.1&quot;
+ xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;
+
+</pre></div>
+<p>The colo specifies the colo to which this cluster belongs to and name is 
the name of the cluster which has to  be unique.</p>
+<p>A cluster has varies interfaces as described below:</p>
+<div class="source">
+<pre>
+    &lt;interface type=&quot;readonly&quot; 
endpoint=&quot;hftp://localhost:50010&quot; version=&quot;0.20.2&quot; /&gt;
+
+</pre></div>
+<p>A readonly interface specifies the endpoint for Hadoop's HFTP protocol,  
this would be used in the context of feed replication.</p>
+<div class="source">
+<pre>
+&lt;interface type=&quot;write&quot; 
endpoint=&quot;hdfs://localhost:8020&quot; version=&quot;0.20.2&quot; /&gt;
+
+</pre></div>
+<p>A write interface specifies the interface to write to hdfs, it's endpoint 
is the value of fs.default.name. Falcon uses this interface to write system 
data to hdfs and feeds referencing this cluster are written to hdfs using the 
same write interface.</p>
+<div class="source">
+<pre>
+&lt;interface type=&quot;execute&quot; endpoint=&quot;localhost:8021&quot; 
version=&quot;0.20.2&quot; /&gt;
+
+</pre></div>
+<p>An execute interface specifies the interface for job tracker, it's endpoint 
is the value of mapred.job.tracker.  Falcon uses this interface to submit the 
processes as jobs on <a href="./JobTracker.html">JobTracker</a> defined 
here.</p>
+<div class="source">
+<pre>
+&lt;interface type=&quot;workflow&quot; 
endpoint=&quot;http://localhost:11000/oozie/&quot; version=&quot;3.1&quot; /&gt;
+
+</pre></div>
+<p>A workflow interface specifies the interface for workflow engine, example 
of its endpoint is the value for OOZIE_URL. Falcon uses this interface to 
schedule the processes referencing this cluster on workflow engine defined 
here.</p>
+<div class="source">
+<pre>
+&lt;interface type=&quot;registry&quot; 
endpoint=&quot;thrift://localhost:9083&quot; version=&quot;0.11.0&quot; /&gt;
+
+</pre></div>
+<p>A registry interface specifies the interface for metadata catalog, such as 
Hive Metastore (or HCatalog). Falcon uses this interface to 
register/de-register partitions for a given database and table. Also, uses this 
information to schedule data availability events based on partitions in the 
workflow engine. Although Hive metastore supports both RPC and HTTP, Falcon 
comes with an implementation for RPC over thrift.</p>
+<div class="source">
+<pre>
+&lt;interface type=&quot;messaging&quot; 
endpoint=&quot;tcp://localhost:61616?daemon=true&quot; 
version=&quot;5.4.6&quot; /&gt;
+
+</pre></div>
+<p>A messaging interface specifies the interface for sending feed availability 
messages, it's endpoint is broker url with tcp address.</p>
+<p>A cluster has a list of locations defined:</p>
+<div class="source">
+<pre>
+&lt;location name=&quot;staging&quot; 
path=&quot;/projects/falcon/staging&quot; /&gt;
+
+</pre></div>
+<p>Location has the name and the path, name is the type of locations like 
staging, temp and working. and path is the hdfs path for each location. Falcon 
would use the location to do intermediate processing of entities in hdfs and 
hence Falcon should have read/write/execute permission on these locations.</p>
+<p>A cluster has a list of properties: A key-value pair, which are propagated 
to the workflow engine.</p>
+<div class="source">
+<pre>
+&lt;property name=&quot;brokerImplClass&quot; 
value=&quot;org.apache.activemq.ActiveMQConnectionFactory&quot; /&gt;
+
+</pre></div>
+<p>Ideally JMS impl class name of messaging engine (brokerImplClass)  should 
be defined here.</p></div>
+<div class="section">
+<h3>Feed Specification<a name="Feed_Specification"></a></h3>
+<p>The <a class="externalLink" 
href="https://git-wip-us.apache.org/repos/asf?p=falcon.git;a=blob_plain;f=client/src/main/resources/feed-0.1.xsd;hb=refs/heads/branch-0.4";>Feed
 XSD specification</a> is available here.</p>
+<p>A Feed defines various attributes of feed like feed location, frequency, 
late-arrival handling and retention policies. A feed can be scheduled on a 
cluster, once a feed is scheduled its retention and replication process are 
triggered in a given cluster.</p>
+<div class="source">
+<pre>
+&lt;feed description=&quot;clicks log&quot; name=&quot;clicks&quot; 
xmlns=&quot;uri:falcon:feed:0.1&quot;
+xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;
+
+</pre></div>
+<p>A feed should have a unique name and this name is referenced by processes 
as input or output feed.</p></div>
+<div class="section">
+<h4>Storage<a name="Storage"></a></h4>
+<p>Falcon introduces a new abstraction to encapsulate the storage for a given 
feed which can either be expressed as a path on the file system, File System 
Storage or a table in a catalog such as Hive, Catalog Storage.</p>
+<div class="source">
+<pre>
+    &lt;xs:choice minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot;&gt;
+        &lt;xs:element type=&quot;locations&quot; 
name=&quot;locations&quot;/&gt;
+        &lt;xs:element type=&quot;catalog-table&quot; 
name=&quot;table&quot;/&gt;
+    &lt;/xs:choice&gt;
+
+</pre></div>
+<p>Feed should contain one of the two storage options. Locations on File 
System or Table in a Catalog.</p></div>
+<div class="section">
+<h5>File System Storage<a name="File_System_Storage"></a></h5>
+<div class="source">
+<pre>
+        &lt;clusters&gt;
+        &lt;cluster name=&quot;test-cluster&quot;&gt;
+            &lt;validity start=&quot;2012-07-20T03:00Z&quot; 
end=&quot;2099-07-16T00:00Z&quot;/&gt;
+            &lt;retention limit=&quot;days(10)&quot; 
action=&quot;delete&quot;/&gt;
+            &lt;locations&gt;
+                &lt;location type=&quot;data&quot; 
path=&quot;/hdfsDataLocation/${YEAR}/${MONTH}/${DAY}/${HOUR}/${MINUTE}&quot;/&gt;
+                &lt;location type=&quot;stats&quot; 
path=&quot;/projects/falcon/clicksStats&quot; /&gt;
+                &lt;location type=&quot;meta&quot; 
path=&quot;/projects/falcon/clicksMetaData&quot; /&gt;
+            &lt;/locations&gt;
+        &lt;/cluster&gt;
+..... more clusters &lt;/clusters&gt;
+
+</pre></div>
+<p>Feed references a cluster by it's name, before submitting a feed all the 
referenced cluster should be submitted to Falcon. type: specifies whether the 
referenced cluster should be treated as a source or target for a feed. A feed 
can have multiple source and target clusters. If the type of cluster is not 
specified then the cluster is not considered for replication. Validity of a 
feed on cluster specifies duration for which this feed is valid on this 
cluster. Retention specifies how long the feed is retained on this cluster and 
the action to be taken on the feed after the expiry of retention period. The 
retention limit is specified by expression frequency(times), ex: if feed should 
be retained for at least 6 hours then retention's limit=&quot;hours(6)&quot;. 
The field partitionExp contains partition tags. Number of partition tags has to 
be equal to number of partitions specified in feed schema. A partition tag can 
be a wildcard(*), a static string or an expression. Atleast one of t
 he strings has to be an expression. Location specifies where the feed is 
available on this cluster. This is an optional parameter and path can be same 
or different from the global locations tag value ( it is mentioned outside the 
clusters tag ) . This tag provides the user to flexibility to have feed at 
different locations on different clusters. If this attribute is missing then 
the default global location is picked from the feed definition. Also the 
individual location tags data, stats, meta are optional.</p>
+<div class="source">
+<pre>
+ &lt;location type=&quot;data&quot; path=&quot;/projects/falcon/clicks&quot; 
/&gt;
+ &lt;location type=&quot;stats&quot; 
path=&quot;/projects/falcon/clicksStats&quot; /&gt;
+ &lt;location type=&quot;meta&quot; 
path=&quot;/projects/falcon/clicksMetaData&quot; /&gt;
+
+</pre></div>
+<p>A location tag specifies the type of location like data, meta, stats and 
the corresponding paths for them. A feed should at least define the location 
for type data, which specifies the HDFS path pattern where the feed is 
generated periodically. ex: type=&quot;data&quot; 
path=&quot;/projects/TrafficHourly/${YEAR}-${MONTH}-${DAY}/traffic&quot; The 
granularity of date pattern in the path should be atleast that of a frequency 
of a feed. Other location type which are supported are stats and meta paths, if 
a process references a feed then the meta and stats paths are available as a 
property in a process.</p></div>
+<div class="section">
+<h5>Catalog Storage (Table)<a name="Catalog_Storage_Table"></a></h5>
+<p>A table tag specifies the table URI in the catalog registry as:</p>
+<div class="source">
+<pre>
+catalog:$database-name:$table-name#partition-key=partition-value);partition-key=partition-value);*
+
+</pre></div>
+<p>This is modeled as a URI (similar to an ISBN URI). It does not have any 
reference to Hive or HCatalog. Its quite generic so it can be tied to other 
implementations of a catalog registry. The catalog implementation specified in 
the startup config provides implementation for the catalog URI.</p>
+<p>Top-level partition has to be a dated pattern and the granularity of date 
pattern should be at least that of a frequency of a feed.</p>
+<div class="source">
+<pre>
+    &lt;xs:complexType name=&quot;catalog-table&quot;&gt;
+        &lt;xs:annotation&gt;
+            &lt;xs:documentation&gt;
+                catalog specifies the uri of a Hive table along with the 
partition spec.
+                
uri=&quot;catalog:$database:$table#(partition-key=partition-value);+&quot;
+                Example: catalog:logs-db:clicks#ds=${YEAR}-${MONTH}-${DAY}
+            &lt;/xs:documentation&gt;
+        &lt;/xs:annotation&gt;
+        &lt;xs:attribute type=&quot;xs:string&quot; name=&quot;uri&quot; 
use=&quot;required&quot;/&gt;
+    &lt;/xs:complexType&gt;
+
+</pre></div>
+<p>Examples:</p>
+<div class="source">
+<pre>
+&lt;table 
uri=&quot;catalog:default:clicks#ds=${YEAR}-${MONTH}-${DAY}-${HOUR};region=${region}&quot;
 /&gt;
+&lt;table 
uri=&quot;catalog:src_demo_db:customer_raw#ds=${YEAR}-${MONTH}-${DAY}-${HOUR}&quot;
 /&gt;
+&lt;table 
uri=&quot;catalog:tgt_demo_db:customer_bcp#ds=${YEAR}-${MONTH}-${DAY}-${HOUR}&quot;
 /&gt;
+
+</pre></div></div>
+<div class="section">
+<h4>Partitions<a name="Partitions"></a></h4>
+<div class="source">
+<pre>
+   &lt;partitions&gt;
+        &lt;partition name=&quot;country&quot; /&gt;
+        &lt;partition name=&quot;cluster&quot; /&gt;
+    &lt;/partitions&gt;
+
+</pre></div>
+<p>A feed can define multiple partitions, if a referenced cluster defines 
partitions then the number of partitions in feed has to be equal to or more 
than the cluster partitions.</p>
+<p><b>Note:</b> This will only apply for <a 
href="./FileSystem.html">FileSystem</a> storage but not Table storage as 
partitions are defined and maintained in Hive (Hcatalog) registry.</p></div>
+<div class="section">
+<h4>Groups<a name="Groups"></a></h4>
+<div class="source">
+<pre>
+    &lt;groups&gt;online,bi&lt;/groups&gt;
+
+</pre></div>
+<p>A feed specifies a list of comma separated groups, a group is a logical 
grouping of feeds and a group is said to be available if all the feeds 
belonging to a group are available. The frequency of all the feed which belong 
to the same group must be same.</p></div>
+<div class="section">
+<h4>Availability Flags<a name="Availability_Flags"></a></h4>
+<div class="source">
+<pre>
+    &lt;availabilityFlag&gt;_SUCCESS&lt;/availabilityFlag&gt;
+
+</pre></div>
+<p>An availabilityFlag specifies the name of a file which when present/created 
in a feeds data directory,  the feed is termed as available. ex: _SUCCESS, if 
this element is ignored then Falcon would consider the presence of feed's data 
directory as feed availability.</p></div>
+<div class="section">
+<h4>Frequency<a name="Frequency"></a></h4>
+<div class="source">
+<pre>
+    &lt;frequency&gt;minutes(20)&lt;/frequency&gt;
+
+</pre></div>
+<p>A feed has a frequency which specifies the frequency by which this feed is 
generated.  ex: it can be generated every hour, every 5 minutes, daily, weekly 
etc. valid frequency type for a feed are minutes, hours, days, months. The 
values can be negative, zero or positive.</p></div>
+<div class="section">
+<h4>Late Arrival<a name="Late_Arrival"></a></h4>
+<div class="source">
+<pre>
+    &lt;late-arrival cut-off=&quot;hours(6)&quot; /&gt;
+
+</pre></div>
+<p>A late-arrival specifies the cut-off period till which the feed is expected 
to arrive late and should be honored be processes referring to it as input feed 
by rerunning the instances in case the data arrives late with in a cut-off 
period. The cut-off period is specified by expression frequency(times), ex: if 
the feed can arrive late upto 8 hours then late-arrival's 
cut-off=&quot;hours(8)&quot;</p>
+<p><b>Note:</b> This will only apply for <a 
href="./FileSystem.html">FileSystem</a> storage but not Table storage until a 
future time.</p></div>
+<div class="section">
+<h5>Custom Properties<a name="Custom_Properties"></a></h5>
+<div class="source">
+<pre>
+    &lt;properties&gt;
+        &lt;property name=&quot;tmpFeedPath&quot; 
value=&quot;tmpFeedPathValue&quot; /&gt;
+        &lt;property name=&quot;field2&quot; value=&quot;value2&quot; /&gt;
+        &lt;property name=&quot;queueName&quot; 
value=&quot;hadoopQueue&quot;/&gt;
+        &lt;property name=&quot;jobPriority&quot; 
value=&quot;VERY_HIGH&quot;/&gt;
+        &lt;property name=&quot;timeout&quot; value=&quot;hours(1)&quot;/&gt;
+        &lt;property name=&quot;parallel&quot; value=&quot;3&quot;/&gt;
+    &lt;/properties&gt;
+
+</pre></div>
+<p>A key-value pair, which are propagated to the workflow engine. 
&quot;queueName&quot; and &quot;jobPriority&quot; are special properties 
available to user to specify the hadoop job queue and priority, the same value 
is used by Falcons launcher job. &quot;timeout&quot; and &quot;parallel&quot; 
are other special properties which decides replication instance's timeout value 
while waiting for the feed instance and parallel decides the concurrent 
replication instances that can run at any given time.</p></div>
+<div class="section">
+<h3>Process Specification<a name="Process_Specification"></a></h3>
+<p>The <a class="externalLink" 
href="https://git-wip-us.apache.org/repos/asf?p=falcon.git;a=blob_plain;f=client/src/main/resources/process-0.1.xsd;hb=refs/heads/branch-0.4";>Process
 XSD specification</a> is available here.</p>
+<p>A process defines configuration for a workflow. A workflow is a directed 
acyclic graph(DAG) which defines the job for the workflow engine. A process 
definition defines  the configurations required to run the workflow job. For 
example, process defines the frequency at which the workflow should run, the 
clusters on which the workflow should run, the inputs and outputs for the 
workflow, how the workflow failures should be handled, how the late inputs 
should be handled and so on.</p>
+<p>The different details of process are:</p></div>
+<div class="section">
+<h5>Name<a name="Name"></a></h5>
+<p>Each process is identified with a unique name. Syntax:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+&lt;/process&gt;
+
+</pre></div></div>
+<div class="section">
+<h5>Cluster<a name="Cluster"></a></h5>
+<p>The cluster on which the workflow should run. A process should contain one 
or more clusters. Cluster definition for the cluster name gives the end points 
for workflow execution, name node, job tracker, messaging and so on. Each 
cluster inturn has validity mentioned, which tell the times between which the 
job should run on that specified cluster.  Syntax:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+   &lt;clusters&gt;
+        &lt;cluster name=&quot;test-cluster1&quot;&gt;
+            &lt;validity start=&quot;2012-12-21T08:15Z&quot; 
end=&quot;2100-01-01T00:00Z&quot;/&gt;
+        &lt;/cluster&gt;
+        &lt;cluster name=&quot;test-cluster2&quot;&gt;
+            &lt;validity start=&quot;2012-12-21T08:15Z&quot; 
end=&quot;2100-01-01T00:00Z&quot;/&gt;
+        &lt;/cluster&gt;
+       ....
+       ....
+    &lt;/clusters&gt;
+
+...
+&lt;/process&gt;
+
+</pre></div></div>
+<div class="section">
+<h5>Parallel<a name="Parallel"></a></h5>
+<p>Parallel defines how many instances of the workflow can run concurrently. 
It should be a positive interger &gt; 0. For example, concurrency of 1 ensures 
that only one instance of the workflow can run at a time. The next instance 
will start only after the running instance completes. Syntax:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+   &lt;concurrency&gt;[concurrency]&lt;/concurrency&gt;
+...
+&lt;/process&gt;
+
+</pre></div></div>
+<div class="section">
+<h5>Order<a name="Order"></a></h5>
+<p>Order defines the order in which the ready instances are picked up. The 
possible values are FIFO(First In First Out), LIFO(Last In First Out), and 
ONLYLAST(Last Only). Syntax:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+   &lt;order&gt;[order]&lt;/order&gt;
+...
+&lt;/process&gt;
+
+</pre></div></div>
+<div class="section">
+<h5>Timeout<a name="Timeout"></a></h5>
+<p>A optional Timeout specifies the maximum time an instance waits for a 
dataset before being killed by the workflow engine, a time out is specified 
like frequency. If timeout is not specified, falcon computes a default timeout 
for a process based on its frequency, which is six times of the frequency of 
process or 30 minutes if computed timeout is less than 30 minutes.</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+   &lt;timeout&gt;[timeunit]([frequency])&lt;/timeout&gt;
+...
+&lt;/process&gt;
+
+</pre></div></div>
+<div class="section">
+<h5>Frequency<a name="Frequency"></a></h5>
+<p>Frequency defines how frequently the workflow job should run. For example, 
hours(1) defines the frequency as hourly, days(7) defines weekly frequency. The 
values for timeunit can be minutes/hours/days/months and the frequency number 
should be a positive integer &gt; 0.  Syntax:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+   &lt;frequency&gt;[timeunit]([frequency])&lt;/order&gt;
+...
+&lt;/process&gt;
+
+</pre></div></div>
+<div class="section">
+<h5>Validity<a name="Validity"></a></h5>
+<p>Validity defines how long the workflow should run. It has 3 components - 
start time, end time and timezone. Start time and end time are timestamps 
defined in yyyy-MM-dd'T'HH:mm'Z' format and should always be in UTC. Timezone 
is used to compute the next instances starting from start time. The workflow 
will start at start time and end before end time specified on a given cluster. 
So, there will not be a workflow instance at end time. Syntax:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+   &lt;validity start=[start time] end=[end time] timezone=[timezone]/&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>Examples:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;sample-process&quot;&gt;
+...
+    &lt;frequency&gt;days(1)&lt;/frequency&gt;
+    &lt;validity start=&quot;2012-01-01T00:40Z&quot; 
end=&quot;2012-04-01T00:00&quot; timezone=&quot;UTC&quot;/&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>The daily workflow will start on Jan 1st 2012 at 00:40 UTC, it will run at 
40th minute of every hour and the last instance will be at March 31st 2012 at 
23:40 UTC.</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;sample-process&quot;&gt;
+...
+    &lt;frequency&gt;hours(1)&lt;/frequency&gt;
+    &lt;validity start=&quot;2012-03-11T08:40Z&quot; 
end=&quot;2012-03-12T08:00&quot; timezone=&quot;PST8PDT&quot;/&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>The hourly workflow will start on March 11th 2012 at 00:40 PST, the next 
instances will be at 01:40 PST, 03:40 PDT, 04:40 PDT and so on till 23:40 PDT. 
So, there will be just 23 instances of the workflow for March 11th 2012 because 
of DST switch.</p></div>
+<div class="section">
+<h5>Inputs<a name="Inputs"></a></h5>
+<p>Inputs define the input data for the workflow. The workflow job will start 
executing only after the schedule time and when all the inputs are available. 
There can be 0 or more inputs and each of the input maps to a feed. The path 
and frequency of input data is picked up from feed definition. Each input 
should also define start and end instances in terms of <a 
href="./FalconDocumentation.html">EL expressions</a> and can optionally specify 
specific partition of input that the workflow requires. The components in 
partition should be subset of partitions defined in the feed.</p>
+<p>For each input, Falcon will create a property with the input name that 
contains the comma separated list of input paths. This property can be used in 
workflow actions like pig scripts and so on.</p>
+<p>Syntax:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+    &lt;inputs&gt;
+        &lt;input name=[input name] feed=[feed name] start=[start el] end=[end 
el] partition=[partition]/&gt;
+        ...
+    &lt;/inputs&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>Example:</p>
+<div class="source">
+<pre>
+&lt;feed name=&quot;feed1&quot;&gt;
+...
+    &lt;partition name=&quot;isFraud&quot;/&gt;
+    &lt;partition name=&quot;country&quot;/&gt;
+    &lt;frequency&gt;hours(1)&lt;/frequency&gt;
+    &lt;locations&gt;
+        &lt;location type=&quot;data&quot; 
path=&quot;/projects/bootcamp/feed1/${YEAR}-${MONTH}-${DAY}-${HOUR}&quot;/&gt;
+        ...
+    &lt;/locations&gt;
+...
+&lt;/feed&gt;
+&lt;process name=&quot;sample-process&quot;&gt;
+...
+    &lt;inputs&gt;
+        &lt;input name=&quot;input1&quot; feed=&quot;feed1&quot; 
start=&quot;today(0,0)&quot; end=&quot;today(1,0)&quot; 
partition=&quot;*/US&quot;/&gt;
+        ...
+    &lt;/inputs&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>The input for the workflow is a hourly feed and takes 0th and 1st hour data 
of today(the day when the workflow runs). If the workflow is running for 
2012-03-01T06:40Z, the inputs are /projects/bootcamp/feed1/2012-03-01-00/*/US 
and /projects/bootcamp/feed1/2012-03-01-01/*/US. The property for this input is 
input1=/projects/bootcamp/feed1/2012-03-01-00/*/US,/projects/bootcamp/feed1/2012-03-01-01/*/US</p>
+<p>Also, feeds with Hive table storage can be used as inputs to a process. 
Several parameters from inputs are passed as params to the user workflow or pig 
script.</p>
+<div class="source">
+<pre>
+    ${wf:conf('falcon_input_database')} - database name associated with the 
feed for a given input
+    ${wf:conf('falcon_input_table')} - table name associated with the feed for 
a given input
+    ${wf:conf('falcon_input_catalog_url')} - Hive metastore URI for this input 
feed
+    ${wf:conf('falcon_input_partition_filter_pig')} - value of 
${coord:dataInPartitionFilter('$input', 'pig')}
+    ${wf:conf('falcon_input_partition_filter_hive')} - value of 
${coord:dataInPartitionFilter('$input', 'hive')}
+    ${wf:conf('falcon_input_partition_filter_java')} - value of 
${coord:dataInPartitionFilter('$input', 'java')}
+
+</pre></div>
+<p><b>NOTE:</b> input is the name of the input configured in the process, 
which is input.getName().</p>
+<div class="source">
+<pre>&lt;input name=&quot;input&quot; feed=&quot;clicks-raw-table&quot; 
start=&quot;yesterday(0,0)&quot; end=&quot;yesterday(20,0)&quot;/&gt;
+</pre></div>
+<p>Example workflow configuration:</p>
+<div class="source">
+<pre>
+&lt;configuration&gt;
+  &lt;property&gt;
+    &lt;name&gt;falcon_input_database&lt;/name&gt;
+    &lt;value&gt;falcon_db&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;falcon_input_table&lt;/name&gt;
+    &lt;value&gt;input_table&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;falcon_input_catalog_url&lt;/name&gt;
+    &lt;value&gt;thrift://localhost:29083&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;falcon_input_storage_type&lt;/name&gt;
+    &lt;value&gt;TABLE&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;feedInstancePaths&lt;/name&gt;
+    
&lt;value&gt;hcat://localhost:29083/falcon_db/output_table/ds=2012-04-21-00&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;falcon_input_partition_filter_java&lt;/name&gt;
+    &lt;value&gt;(ds='2012-04-21-00')&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;falcon_input_partition_filter_hive&lt;/name&gt;
+    &lt;value&gt;(ds='2012-04-21-00')&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;falcon_input_partition_filter_pig&lt;/name&gt;
+    &lt;value&gt;(ds=='2012-04-21-00')&lt;/value&gt;
+  &lt;/property&gt;
+  ...
+&lt;/configuration&gt;
+
+</pre></div></div>
+<div class="section">
+<h5>Optional Inputs<a name="Optional_Inputs"></a></h5>
+<p>User can mention one or more inputs as optional inputs. In such cases the 
job does not wait on those inputs which are mentioned as optional. If they are 
present it considers them otherwise continue with the compulsory ones. 
Example:</p>
+<div class="source">
+<pre>
+&lt;feed name=&quot;feed1&quot;&gt;
+...
+    &lt;partition name=&quot;isFraud&quot;/&gt;
+    &lt;partition name=&quot;country&quot;/&gt;
+    &lt;frequency&gt;hours(1)&lt;/frequency&gt;
+    &lt;locations&gt;
+        &lt;location type=&quot;data&quot; 
path=&quot;/projects/bootcamp/feed1/${YEAR}-${MONTH}-${DAY}-${HOUR}&quot;/&gt;
+        ...
+    &lt;/locations&gt;
+...
+&lt;/feed&gt;
+&lt;process name=&quot;sample-process&quot;&gt;
+...
+    &lt;inputs&gt;
+        &lt;input name=&quot;input1&quot; feed=&quot;feed1&quot; 
start=&quot;today(0,0)&quot; end=&quot;today(1,0)&quot; 
partition=&quot;*/US&quot;/&gt;
+        &lt;input name=&quot;input2&quot; feed=&quot;feed2&quot; 
start=&quot;today(0,0)&quot; end=&quot;today(1,0)&quot; 
partition=&quot;*/UK&quot; optional=&quot;true&quot; /&gt;
+        ...
+    &lt;/inputs&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p><b>Note:</b> This is only supported for <a 
href="./FileSystem.html">FileSystem</a> storage but not Table storage at this 
point.</p></div>
+<div class="section">
+<h5>Outputs<a name="Outputs"></a></h5>
+<p>Outputs define the output data that is generated by the workflow. A process 
can define 0 or more outputs. Each output is mapped to a feed and the output 
path is picked up from feed definition. The output instance that should be 
generated is specified in terms of <a href="./FalconDocumentation.html">EL 
expression</a>.</p>
+<p>For each output, Falcon creates a property with output name that contains 
the path of output data. This can be used in workflows to store in the path. 
Syntax:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+    &lt;outputs&gt;
+        &lt;output name=[input name] feed=[feed name] instance=[instance 
el]/&gt;
+        ...
+    &lt;/outputs&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>Example:</p>
+<div class="source">
+<pre>
+&lt;feed name=&quot;feed2&quot;&gt;
+...
+    &lt;frequency&gt;days(1)&lt;/frequency&gt;
+    &lt;locations&gt;
+        &lt;location type=&quot;data&quot; 
path=&quot;/projects/bootcamp/feed2/${YEAR}-${MONTH}-${DAY}&quot;/&gt;
+        ...
+    &lt;/locations&gt;
+...
+&lt;/feed&gt;
+&lt;process name=&quot;sample-process&quot;&gt;
+...
+    &lt;outputs&gt;
+        &lt;output name=&quot;output1&quot; feed=&quot;feed2&quot; 
instance=&quot;today(0,0)&quot;/&gt;
+        ...
+    &lt;/outputs&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>The output of the workflow is feed instance for today. If the workflow is 
running for 2012-03-01T06:40Z, the workflow generates output 
/projects/bootcamp/feed2/2012-03-01. The property for this output that is 
available for workflow is: output1=/projects/bootcamp/feed2/2012-03-01</p>
+<p>Also, feeds with Hive table storage can be used as outputs to a process. 
Several parameters from outputs are passed as params to the user workflow or 
pig script.</p>
+<div class="source">
+<pre>
+    ${wf:conf('falcon_output_database')} - database name associated with the 
feed for a given output
+    ${wf:conf('falcon_output_table')} - table name associated with the feed 
for a given output
+    ${wf:conf('falcon_output_catalog_url')} - Hive metastore URI for the given 
output feed
+    ${wf:conf('falcon_output_dataout_partitions')} - value of 
${coord:dataOutPartitions('$output')}
+
+</pre></div>
+<p><b>NOTE:</b> output is the name of the output configured in the process, 
which is output.getName().</p>
+<div class="source">
+<pre>&lt;output name=&quot;output&quot; feed=&quot;clicks-summary-table&quot; 
instance=&quot;today(0,0)&quot;/&gt;
+</pre></div>
+<p>Example workflow configuration:</p>
+<div class="source">
+<pre>
+&lt;configuration&gt;
+  &lt;property&gt;
+    &lt;name&gt;falcon_output_database&lt;/name&gt;
+    &lt;value&gt;falcon_db&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;falcon_output_table&lt;/name&gt;
+    &lt;value&gt;output_table&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;falcon_output_catalog_url&lt;/name&gt;
+    &lt;value&gt;thrift://localhost:29083&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;falcon_output_storage_type&lt;/name&gt;
+    &lt;value&gt;TABLE&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;feedInstancePaths&lt;/name&gt;
+    
&lt;value&gt;hcat://localhost:29083/falcon_db/output_table/ds=2012-04-21-00&lt;/value&gt;
+  &lt;/property&gt;
+  &lt;property&gt;
+    &lt;name&gt;falcon_output_dataout_partitions&lt;/name&gt;
+    &lt;value&gt;'ds=2012-04-21-00'&lt;/value&gt;
+  &lt;/property&gt;
+  ....
+&lt;/configuration&gt;
+
+</pre></div></div>
+<div class="section">
+<h5>Properties<a name="Properties"></a></h5>
+<p>The properties are key value pairs that are passed to the workflow. These 
properties are optional and can be used in workflow to parameterize the 
workflow. Synatx:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+    &lt;properties&gt;
+        &lt;propery name=[key] value=[value]/&gt;
+        ...
+    &lt;/properties&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>queueName and jobPriority are special properites, which when present are 
used by the Falcon's launcher job, the same property is also availalble in 
workflow which can be used to propogate to pig or M/R job.</p>
+<div class="source">
+<pre>
+        &lt;property name=&quot;queueName&quot; 
value=&quot;hadoopQueue&quot;/&gt;
+        &lt;property name=&quot;jobPriority&quot; 
value=&quot;VERY_HIGH&quot;/&gt;
+
+</pre></div></div>
+<div class="section">
+<h5>Workflow<a name="Workflow"></a></h5>
+<p>The workflow defines the workflow engine that should be used and the path 
to the workflow on hdfs. The workflow definition on hdfs contains the actual 
job that should run and it should confirm to the workflow specification of the 
engine specified. The libraries required by the workflow should be in lib 
folder inside the workflow path.</p>
+<p>The properties defined in the cluster and cluster properties(nameNode and 
jobTracker) will also be available for the workflow.</p>
+<p>There are 2 engines supported today.</p></div>
+<div class="section">
+<h6>Oozie<a name="Oozie"></a></h6>
+<p>As part of oozie workflow engine support, users can embed a oozie workflow. 
Refer to oozie <a class="externalLink" 
href="http://incubator.apache.org/oozie/overview.html";>workflow overview</a> 
and <a class="externalLink" 
href="http://incubator.apache.org/oozie/docs/3.1.3/docs/WorkflowFunctionalSpec.html";>workflow
 specification</a> for details.</p>
+<p>Syntax:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+    &lt;workflow engine=[workflow engine] path=[workflow path]/&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>Example:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;sample-process&quot;&gt;
+...
+    &lt;workflow engine=&quot;oozie&quot; 
path=&quot;/projects/bootcamp/workflow&quot;/&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>This defines the workflow engine to be oozie and the workflow xml is 
defined at /projects/bootcamp/workflow/workflow.xml. The libraries are at 
/projects/bootcamp/workflow/lib.</p></div>
+<div class="section">
+<h6>Pig<a name="Pig"></a></h6>
+<p>Falcon also adds the Pig engine which enables users to embed a Pig script 
as a process.</p>
+<p>Example:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;sample-process&quot;&gt;
+...
+    &lt;workflow engine=&quot;pig&quot; 
path=&quot;/projects/bootcamp/pig.script&quot;/&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>This defines the workflow engine to be pig and the pig script is defined at 
/projects/bootcamp/pig.script.</p>
+<p>Feeds with Hive table storage will send one more parameter apart from the 
general ones:</p>
+<div class="source">
+<pre>$input_filter
+</pre></div></div>
+<div class="section">
+<h6>Hive<a name="Hive"></a></h6>
+<p>Falcon also adds the Hive engine as part of Hive Integration which enables 
users to embed a Hive script as a process. This would enable users to create 
materialized queries in a declarative way.</p>
+<p>Example:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;sample-process&quot;&gt;
+...
+    &lt;workflow engine=&quot;hive&quot; 
path=&quot;/projects/bootcamp/hive-script.hql&quot;/&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>This defines the workflow engine to be hive and the hive script is defined 
at /projects/bootcamp/hive-script.hql.</p>
+<p>Feeds with Hive table storage will send one more parameter apart from the 
general ones:</p>
+<div class="source">
+<pre>$input_filter
+</pre></div></div>
+<div class="section">
+<h5>Retry<a name="Retry"></a></h5>
+<p>Retry policy defines how the workflow failures should be handled. Two retry 
policies are defined: backoff and exp-backoff(exponential backoff). Depending 
on the delay and number of attempts, the workflow is re-tried after specific 
intervals. Syntax:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+    &lt;retry policy=[retry policy] delay=[retry delay] attempts=[retry 
attempts]/&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>Examples:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;sample-process&quot;&gt;
+...
+    &lt;retry policy=&quot;backoff&quot; delay=&quot;minutes(10)&quot; 
attempts=&quot;3&quot;/&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>The workflow is re-tried after 10 mins, 20 mins and 30 mins. With 
exponential backoff, the workflow will be re-tried after 10 mins, 20 mins and 
40 mins.</p></div>
+<div class="section">
+<h5>Late data<a name="Late_data"></a></h5>
+<p>Late data handling defines how the late data should be handled. Each feed 
is defined with a late cut-off value which specifies the time till which late 
data is valid. For example, late cut-off of hours(6) means that data for nth 
hour can get delayed by upto 6 hours. Late data specification in process 
defines how this late data is handled.</p>
+<p>Late data policy defines how frequently check is done to detect late data. 
The policies supported are: backoff, exp-backoff(exponention backoff) and 
final(at feed's late cut-off). The policy along with delay defines the interval 
at which late data check is done.</p>
+<p>Late input specification for each input defines the workflow that should 
run when late data is detected for that input.</p>
+<p>Syntax:</p>
+<div class="source">
+<pre>
+&lt;process name=&quot;[process name]&quot;&gt;
+...
+    &lt;late-process policy=[late handling policy] delay=[delay]&gt;
+        &lt;late-input input=[input name] workflow-path=[workflow path]/&gt;
+        ...
+    &lt;/late-process&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>Example:</p>
+<div class="source">
+<pre>
+&lt;feed name=&quot;feed1&quot;&gt;
+...
+    &lt;frequency&gt;hours(1)&lt;/frequency&gt;
+    &lt;late-arrival cut-off=&quot;hours(6)&quot;/&gt;
+...
+&lt;/feed&gt;
+&lt;process name=&quot;sample-process&quot;&gt;
+...
+    &lt;inputs&gt;
+        &lt;input name=&quot;input1&quot; feed=&quot;feed1&quot; 
start=&quot;today(0,0)&quot; end=&quot;today(1,0)&quot;/&gt;
+        ...
+    &lt;/inputs&gt;
+    &lt;late-process policy=&quot;final&quot;&gt;
+        &lt;late-input input=&quot;input1&quot; 
workflow-path=&quot;/projects/bootcamp/workflow/lateinput1&quot; /&gt;
+        ...
+    &lt;/late-process&gt;
+...
+&lt;/process&gt;
+
+</pre></div>
+<p>This late handling specifies that late data detection should run at feed's 
late cut-off which is 6 hours in this case. If there is late data, Falcon 
should run the workflow specified at 
/projects/bootcamp/workflow/lateinput1/workflow.xml</p>
+<p><b>Note:</b> This is only supported for <a 
href="./FileSystem.html">FileSystem</a> storage but not Table storage at this 
point.</p></div>
+                  </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container">
+              <div class="row span12">Copyright &copy;                    
2013-2016
+                        <a href="http://www.apache.org";>Apache Software 
Foundation</a>.
+            All Rights Reserved.      
+                    
+      </div>
+
+                          
+                <p id="poweredBy" class="pull-right">
+                          <a href="http://maven.apache.org/"; title="Built by 
Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" 
src="../images/logos/maven-feather.png" />
+      </a>
+              </p>
+        
+                </div>
+    </footer>
+  </body>
+</html>

Reply via email to