nifi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mcgil...@apache.org
Subject svn commit: r1758505 [7/9] - in /nifi/site/trunk/docs: nifi-docs/ nifi-docs/components/org.apache.nifi.processors.couchbase.GetCouchbaseKey/ nifi-docs/components/org.apache.nifi.processors.couchbase.PutCouchbaseKey/ nifi-docs/components/org.apache.nifi...
Date Tue, 30 Aug 2016 23:27:48 GMT
Modified: nifi/site/trunk/docs/nifi-docs/html/getting-started.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/getting-started.html?rev=1758505&r1=1758504&r2=1758505&view=diff
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/html/getting-started.html (original)
+++ nifi/site/trunk/docs/nifi-docs/html/getting-started.html Tue Aug 30 23:27:48 2016
@@ -1,4 +1,20 @@
-<!DOCTYPE html>
+<!--
+                        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.
+                        -->
+                        <!DOCTYPE html>
 <html lang="en">
 <head>
 <meta charset="UTF-8">
@@ -439,71 +455,71 @@ body.book #toc,body.book #preamble,body.
 <div id="toc" class="toc">
 <div id="toctitle">Table of Contents</div>
 <ul class="sectlevel1">
-<li><a href="#who-is-this-guide-for">Who is This Guide For?</a></li>
-<li><a href="#terminology-used-in-this-guide">Terminology Used in This Guide</a></li>
-<li><a href="#downloading-and-installing-nifi">Downloading and Installing NiFi</a></li>
-<li><a href="#starting-nifi">Starting NiFi</a>
+<li><a href="getting-started.html#who-is-this-guide-for">Who is This Guide For?</a></li>
+<li><a href="getting-started.html#terminology-used-in-this-guide">Terminology Used in This Guide</a></li>
+<li><a href="getting-started.html#downloading-and-installing-nifi">Downloading and Installing NiFi</a></li>
+<li><a href="getting-started.html#starting-nifi">Starting NiFi</a>
 <ul class="sectlevel2">
-<li><a href="#for-windows-users">For Windows Users</a></li>
-<li><a href="#for-linux-mac-os-x-users">For Linux/Mac OS X users</a></li>
-<li><a href="#installing-as-a-service">Installing as a Service</a></li>
+<li><a href="getting-started.html#for-windows-users">For Windows Users</a></li>
+<li><a href="getting-started.html#for-linux-mac-os-x-users">For Linux/Mac OS X users</a></li>
+<li><a href="getting-started.html#installing-as-a-service">Installing as a Service</a></li>
 </ul>
 </li>
-<li><a href="#i-started-nifi-now-what">I Started NiFi. Now What?</a>
+<li><a href="getting-started.html#i-started-nifi-now-what">I Started NiFi. Now What?</a>
 <ul class="sectlevel2">
-<li><a href="#adding-a-processor">Adding a Processor</a></li>
-<li><a href="#configuring-a-processor">Configuring a Processor</a></li>
-<li><a href="#connecting-processors">Connecting Processors</a></li>
-<li><a href="#starting-and-stopping-processors">Starting and Stopping Processors</a></li>
-<li><a href="#getting-more-info-for-a-processor">Getting More Info for a Processor</a></li>
-<li><a href="#other-components">Other Components</a></li>
+<li><a href="getting-started.html#adding-a-processor">Adding a Processor</a></li>
+<li><a href="getting-started.html#configuring-a-processor">Configuring a Processor</a></li>
+<li><a href="getting-started.html#connecting-processors">Connecting Processors</a></li>
+<li><a href="getting-started.html#starting-and-stopping-processors">Starting and Stopping Processors</a></li>
+<li><a href="getting-started.html#getting-more-info-for-a-processor">Getting More Info for a Processor</a></li>
+<li><a href="getting-started.html#other-components">Other Components</a></li>
 </ul>
 </li>
-<li><a href="#what-processors-are-available">What Processors are Available</a>
+<li><a href="getting-started.html#what-processors-are-available">What Processors are Available</a>
 <ul class="sectlevel2">
-<li><a href="#data-transformation">Data Transformation</a></li>
-<li><a href="#routing-and-mediation">Routing and Mediation</a></li>
-<li><a href="#database-access">Database Access</a></li>
-<li><a href="#AttributeExtraction">Attribute Extraction</a></li>
-<li><a href="#system-interaction">System Interaction</a></li>
-<li><a href="#data-ingestion">Data Ingestion</a></li>
-<li><a href="#data-egress-sending-data">Data Egress / Sending Data</a></li>
-<li><a href="#splitting-and-aggregation">Splitting and Aggregation</a></li>
-<li><a href="#http">HTTP</a></li>
-<li><a href="#amazon-web-services">Amazon Web Services</a></li>
+<li><a href="getting-started.html#data-transformation">Data Transformation</a></li>
+<li><a href="getting-started.html#routing-and-mediation">Routing and Mediation</a></li>
+<li><a href="getting-started.html#database-access">Database Access</a></li>
+<li><a href="getting-started.html#AttributeExtraction">Attribute Extraction</a></li>
+<li><a href="getting-started.html#system-interaction">System Interaction</a></li>
+<li><a href="getting-started.html#data-ingestion">Data Ingestion</a></li>
+<li><a href="getting-started.html#data-egress-sending-data">Data Egress / Sending Data</a></li>
+<li><a href="getting-started.html#splitting-and-aggregation">Splitting and Aggregation</a></li>
+<li><a href="getting-started.html#http">HTTP</a></li>
+<li><a href="getting-started.html#amazon-web-services">Amazon Web Services</a></li>
 </ul>
 </li>
-<li><a href="#working-with-attributes">Working With Attributes</a>
+<li><a href="getting-started.html#working-with-attributes">Working With Attributes</a>
 <ul class="sectlevel2">
-<li><a href="#common-attributes">Common Attributes</a></li>
-<li><a href="#extracting-attributes">Extracting Attributes</a></li>
-<li><a href="#adding-user-defined-attributes">Adding User-Defined Attributes</a></li>
-<li><a href="#routing-on-attributes">Routing on Attributes</a></li>
-<li><a href="#ExpressionLanguage">Expression Language / Using Attributes in Property Values</a></li>
+<li><a href="getting-started.html#common-attributes">Common Attributes</a></li>
+<li><a href="getting-started.html#extracting-attributes">Extracting Attributes</a></li>
+<li><a href="getting-started.html#adding-user-defined-attributes">Adding User-Defined Attributes</a></li>
+<li><a href="getting-started.html#routing-on-attributes">Routing on Attributes</a></li>
+<li><a href="getting-started.html#ExpressionLanguage">Expression Language / Using Attributes in Property Values</a></li>
 </ul>
 </li>
-<li><a href="#custom-properties-within-expression-language">Custom Properties Within Expression Language</a></li>
-<li><a href="#working-with-templates">Working With Templates</a></li>
-<li><a href="#monitoring-nifi">Monitoring NiFi</a>
+<li><a href="getting-started.html#custom-properties-within-expression-language">Custom Properties Within Expression Language</a></li>
+<li><a href="getting-started.html#working-with-templates">Working With Templates</a></li>
+<li><a href="getting-started.html#monitoring-nifi">Monitoring NiFi</a>
 <ul class="sectlevel2">
-<li><a href="#status-bar">Status Bar</a></li>
-<li><a href="#component-statistics">Component Statistics</a></li>
-<li><a href="#bulletins">Bulletins</a></li>
+<li><a href="getting-started.html#status-bar">Status Bar</a></li>
+<li><a href="getting-started.html#component-statistics">Component Statistics</a></li>
+<li><a href="getting-started.html#bulletins">Bulletins</a></li>
 </ul>
 </li>
-<li><a href="#data-provenance">Data Provenance</a>
+<li><a href="getting-started.html#data-provenance">Data Provenance</a>
 <ul class="sectlevel2">
-<li><a href="#EventDetails">Event Details</a></li>
-<li><a href="#lineage-graph">Lineage Graph</a></li>
+<li><a href="getting-started.html#EventDetails">Event Details</a></li>
+<li><a href="getting-started.html#lineage-graph">Lineage Graph</a></li>
 </ul>
 </li>
-<li><a href="#where-to-go-for-more-information">Where To Go For More Information</a></li>
+<li><a href="getting-started.html#where-to-go-for-more-information">Where To Go For More Information</a></li>
 </ul>
 </div>
 </div>
 <div id="content">
 <div class="sect1">
-<h2 id="who-is-this-guide-for"><a class="anchor" href="#who-is-this-guide-for"></a>Who is This Guide For?</h2>
+<h2 id="who-is-this-guide-for"><a class="anchor" href="getting-started.html#who-is-this-guide-for"></a>Who is This Guide For?</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>This guide is written for users who have never used, have had limited exposure to, or only accomplished specific tasks within NiFi.
@@ -527,7 +543,7 @@ delve into this level of detail. This le
 </div>
 </div>
 <div class="sect1">
-<h2 id="terminology-used-in-this-guide"><a class="anchor" href="#terminology-used-in-this-guide"></a>Terminology Used in This Guide</h2>
+<h2 id="terminology-used-in-this-guide"><a class="anchor" href="getting-started.html#terminology-used-in-this-guide"></a>Terminology Used in This Guide</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>In order to talk about NiFi, there are a few key terms that readers should be familiar with.
@@ -546,7 +562,7 @@ dataflows.</p>
 </div>
 </div>
 <div class="sect1">
-<h2 id="downloading-and-installing-nifi"><a class="anchor" href="#downloading-and-installing-nifi"></a>Downloading and Installing NiFi</h2>
+<h2 id="downloading-and-installing-nifi"><a class="anchor" href="getting-started.html#downloading-and-installing-nifi"></a>Downloading and Installing NiFi</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>NiFi can be downloaded from the <a href="http://nifi.apache.org/download.html">NiFi Downloads Page</a>. There are two packaging options
@@ -567,14 +583,14 @@ configuration, or the port that NiFi is
 </div>
 </div>
 <div class="sect1">
-<h2 id="starting-nifi"><a class="anchor" href="#starting-nifi"></a>Starting NiFi</h2>
+<h2 id="starting-nifi"><a class="anchor" href="getting-started.html#starting-nifi"></a>Starting NiFi</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Once NiFi has been downloaded and installed as described above, it can be started by using the mechanism
 appropriate for your operating system.</p>
 </div>
 <div class="sect2">
-<h3 id="for-windows-users"><a class="anchor" href="#for-windows-users"></a>For Windows Users</h3>
+<h3 id="for-windows-users"><a class="anchor" href="getting-started.html#for-windows-users"></a>For Windows Users</h3>
 <div class="paragraph">
 <p>For Windows users, navigate to the folder where NiFi was installed. Within this folder is a subfolder
 named <code>bin</code>. Navigate to this subfolder and double-click the <code>run-nifi.bat</code> file.</p>
@@ -585,7 +601,7 @@ was launched and hold the Ctrl key while
 </div>
 </div>
 <div class="sect2">
-<h3 id="for-linux-mac-os-x-users"><a class="anchor" href="#for-linux-mac-os-x-users"></a>For Linux/Mac OS X users</h3>
+<h3 id="for-linux-mac-os-x-users"><a class="anchor" href="getting-started.html#for-linux-mac-os-x-users"></a>For Linux/Mac OS X users</h3>
 <div class="paragraph">
 <p>For Linux and OS X users, use a Terminal window to navigate to the directory where NiFi was installed.
 To run NiFi in the foreground, run <code>bin/nifi.sh run</code>. This will leave the application running until
@@ -598,7 +614,7 @@ NiFi can be shutdown by executing the co
 </div>
 </div>
 <div class="sect2">
-<h3 id="installing-as-a-service"><a class="anchor" href="#installing-as-a-service"></a>Installing as a Service</h3>
+<h3 id="installing-as-a-service"><a class="anchor" href="getting-started.html#installing-as-a-service"></a>Installing as a Service</h3>
 <div class="paragraph">
 <p>Currently, installing NiFi as a service is supported only for Linux and Mac OS X users. To install the application
 as a service, navigate to the installation directory in a Terminal window and execute the command <code>bin/nifi.sh install</code>
@@ -614,7 +630,7 @@ and <code>sudo service nifi stop</code>.
 </div>
 </div>
 <div class="sect1">
-<h2 id="i-started-nifi-now-what"><a class="anchor" href="#i-started-nifi-now-what"></a>I Started NiFi. Now What?</h2>
+<h2 id="i-started-nifi-now-what"><a class="anchor" href="getting-started.html#i-started-nifi-now-what"></a>I Started NiFi. Now What?</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Now that NiFi has been started, we can bring up the User Interface (UI) in order to create and monitor our dataflow.
@@ -625,29 +641,29 @@ editing the <code>nifi.properties</code>
 <p>This will bring up the User Interface, which at this point is a blank canvas for orchestrating a dataflow:</p>
 </div>
 <div class="paragraph">
-<p><span class="image"><img src="./images/new-flow.png" alt="New Flow"></span></p>
+<p><span class="image"><img src="images/new-flow.png" alt="New Flow"></span></p>
 </div>
 <div class="paragraph">
 <p>The UI has multiple tools to create and manage your first dataflow:</p>
 </div>
 <div class="paragraph">
-<p><span class="image"><img src="./images/nifi-toolbar-components.png" alt="Toolbar Components"></span></p>
+<p><span class="image"><img src="images/nifi-toolbar-components.png" alt="Toolbar Components"></span></p>
 </div>
 <div class="paragraph">
 <p>The Global Menu contains the following options:</p>
 </div>
 <div class="paragraph">
-<p><span class="image"><img src="./images/global-menu.png" alt="Global Menu"></span></p>
+<p><span class="image"><img src="images/global-menu.png" alt="Global Menu"></span></p>
 </div>
 <div class="sect2">
-<h3 id="adding-a-processor"><a class="anchor" href="#adding-a-processor"></a>Adding a Processor</h3>
+<h3 id="adding-a-processor"><a class="anchor" href="getting-started.html#adding-a-processor"></a>Adding a Processor</h3>
 <div class="paragraph">
 <p>We can now begin creating our dataflow by adding a Processor to our canvas. To do this, drag the Processor icon
-(<span class="image"><img src="./images/iconProcessor.png" alt="Processor"></span>) from the top-left of the screen into the middle of the canvas (the graph paper-like
+(<span class="image"><img src="images/iconProcessor.png" alt="Processor"></span>) from the top-left of the screen into the middle of the canvas (the graph paper-like
 background) and drop it there. This will give us a dialog that allows us to choose which Processor we want to add:</p>
 </div>
 <div class="paragraph">
-<p><span class="image"><img src="./images/add-processor.png" alt="Add Processor"></span></p>
+<p><span class="image"><img src="images/add-processor.png" alt="Add Processor"></span></p>
 </div>
 <div class="paragraph">
 <p>We have quite a few options to choose from. For the sake of becoming oriented with the system, let&#8217;s say that we
@@ -664,7 +680,7 @@ into NiFi and then removes the local fil
 </div>
 </div>
 <div class="sect2">
-<h3 id="configuring-a-processor"><a class="anchor" href="#configuring-a-processor"></a>Configuring a Processor</h3>
+<h3 id="configuring-a-processor"><a class="anchor" href="getting-started.html#configuring-a-processor"></a>Configuring a Processor</h3>
 <div class="paragraph">
 <p>Now that we have added the GetFile Processor, we can configure it by right-clicking on the Processor and choosing
 the <code>Configure</code> menu item. The provided dialog allows us to configure many different options that can be read about
@@ -676,12 +692,12 @@ properties have been configured. The mos
 to pick up files. If we set the directory name to <code>./data-in</code>, this will cause the Processor to start picking up
 any data in the <code>data-in</code> subdirectory of the NiFi Home directory. We can choose to configure several different
 Properties for this Processor. If unsure what a particular Property does, we can hover over the Help icon (
-<span class="image"><img src="./images/iconInfo.png" alt="Help"></span>
+<span class="image"><img src="images/iconInfo.png" alt="Help"></span>
 )
 next to the Property Name with the mouse in order to read a description of the property. Additionally, the
 tooltip that is displayed when hovering over the Help icon will provide the default value for that property,
 if one exists, information about whether or not the property supports the Expression Language (see the
-<a href="#ExpressionLanguage">Expression Language / Using Attributes in Property Values</a> section below), and previously configured values for that property.</p>
+<a href="getting-started.html#ExpressionLanguage">Expression Language / Using Attributes in Property Values</a> section below), and previously configured values for that property.</p>
 </div>
 <div class="paragraph">
 <p>In order for this property to be valid, create a directory named <code>data-in</code> in the NiFi home directory and then
@@ -689,7 +705,7 @@ click the <code>Ok</code> button to clos
 </div>
 </div>
 <div class="sect2">
-<h3 id="connecting-processors"><a class="anchor" href="#connecting-processors"></a>Connecting Processors</h3>
+<h3 id="connecting-processors"><a class="anchor" href="getting-started.html#connecting-processors"></a>Connecting Processors</h3>
 <div class="paragraph">
 <p>Each Processor has a set of defined "Relationships" that it is able to send data to. When a Processor finishes handling
 a FlowFile, it transfers it to one of these Relationships. This allows a user to configure how to handle FlowFiles based
@@ -702,7 +718,7 @@ the flow.</p>
 <div class="paragraph">
 <p>Now that we have added and configured our GetFile processor and applied the configuration, we can see in the
 top-left corner of the Processor an Alert icon (
-<span class="image"><img src="./images/iconAlert.png" alt="Alert"></span>
+<span class="image"><img src="images/iconAlert.png" alt="Alert"></span>
 ) signaling that the Processor is not in a valid state. Hovering over this icon, we can see that the <code>success</code>
 relationship has not been defined. This simply means that we have not told NiFi what to do with the data that the Processor
 transfers to the <code>success</code> Relationship.</p>
@@ -715,7 +731,7 @@ we will add a LogAttributes Processor.</
 <div class="paragraph">
 <p>We can now send the output of the GetFile Processor to the LogAttribute Processor. Hover over the GetFile Processor
 with the mouse and a Connection Icon (
-<span class="image"><img src="./images/iconConnection.png" alt="Connection"></span>
+<span class="image"><img src="images/iconConnection.png" alt="Connection"></span>
 ) will appear over the middle of the Processor. We can drag this icon from the GetFile Processor to the LogAttribute
 Processor. This gives us a dialog to choose which Relationships we want to include for this connection. Because GetFile
 has only a single Relationship, <code>success</code>, it is automatically selected for us.</p>
@@ -724,7 +740,7 @@ has only a single Relationship, <code>su
 <p>Clicking on the Settings tab provides a handful of options for configuring how this Connection should behave:</p>
 </div>
 <div class="paragraph">
-<p><span class="image"><img src="./images/connection-settings.png" alt="Connection Settings"></span></p>
+<p><span class="image"><img src="images/connection-settings.png" alt="Connection Settings"></span></p>
 </div>
 <div class="paragraph">
 <p>We can give the Connection a name, if we like. Otherwise, the Connection name will be based on the selected Relationships.
@@ -749,7 +765,7 @@ will be used.</p>
 <div class="paragraph">
 <p>For the sake of this discussion, we can simply click <code>Add</code> to add the Connection to our graph. We should now see that the Alert
 icon has changed to a Stopped icon (
-<span class="image"><img src="./images/iconStop.png" alt="Stopped"></span>
+<span class="image"><img src="images/iconStop.png" alt="Stopped"></span>
 ). The LogAttribute Processor, however, is now invalid because its <code>success</code> Relationship has not been connected to
 anything. Let&#8217;s address this by signaling that data that is routed to <code>success</code> by LogAttribute should be "Auto Terminated,"
 meaning that NiFi should consider the FlowFile&#8217;s processing complete and "drop" the data. To do this, we configure the
@@ -758,7 +774,7 @@ to Auto Terminate the data. Clicking <co
 </div>
 </div>
 <div class="sect2">
-<h3 id="starting-and-stopping-processors"><a class="anchor" href="#starting-and-stopping-processors"></a>Starting and Stopping Processors</h3>
+<h3 id="starting-and-stopping-processors"><a class="anchor" href="getting-started.html#starting-and-stopping-processors"></a>Starting and Stopping Processors</h3>
 <div class="paragraph">
 <p>At this point, we have two Processors on our graph, but nothing is happening. In order to start the Processors, we can
 click on each one individually and then right-click and choose the <code>Start</code> menu item. Alternatively, we can select the first
@@ -778,7 +794,7 @@ corner of the Processor, but nothing is
 </div>
 </div>
 <div class="sect2">
-<h3 id="getting-more-info-for-a-processor"><a class="anchor" href="#getting-more-info-for-a-processor"></a>Getting More Info for a Processor</h3>
+<h3 id="getting-more-info-for-a-processor"><a class="anchor" href="getting-started.html#getting-more-info-for-a-processor"></a>Getting More Info for a Processor</h3>
 <div class="paragraph">
 <p>With each Processor having the ability to expose multiple different Properties and Relationships, it can be challenging
 to remember how all of the different pieces work for each Processor. To address this, you are able to right-click
@@ -789,7 +805,7 @@ expected on incoming FlowFiles and which
 </div>
 </div>
 <div class="sect2">
-<h3 id="other-components"><a class="anchor" href="#other-components"></a>Other Components</h3>
+<h3 id="other-components"><a class="anchor" href="getting-started.html#other-components"></a>Other Components</h3>
 <div class="paragraph">
 <p>The toolbar that provides users the ability to drag and drop Processors onto the graph includes several other components
 that can be used to build a dataflow. These components include Input and Output Ports, Funnels, Process Groups, and Remote
@@ -801,7 +817,7 @@ readily available in the <a href="user-g
 </div>
 </div>
 <div class="sect1">
-<h2 id="what-processors-are-available"><a class="anchor" href="#what-processors-are-available"></a>What Processors are Available</h2>
+<h2 id="what-processors-are-available"><a class="anchor" href="getting-started.html#what-processors-are-available"></a>What Processors are Available</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>In order to create an effective dataflow, the users must understand what types of Processors are available to them.
@@ -814,7 +830,7 @@ to name each of the Processors that are
 categorizing them by their functions.</p>
 </div>
 <div class="sect2">
-<h3 id="data-transformation"><a class="anchor" href="#data-transformation"></a>Data Transformation</h3>
+<h3 id="data-transformation"><a class="anchor" href="getting-started.html#data-transformation"></a>Data Transformation</h3>
 <div class="ulist">
 <ul>
 <li>
@@ -839,7 +855,7 @@ categorizing them by their functions.</p
 </div>
 </div>
 <div class="sect2">
-<h3 id="routing-and-mediation"><a class="anchor" href="#routing-and-mediation"></a>Routing and Mediation</h3>
+<h3 id="routing-and-mediation"><a class="anchor" href="getting-started.html#routing-and-mediation"></a>Routing and Mediation</h3>
 <div class="ulist">
 <ul>
 <li>
@@ -879,7 +895,7 @@ is valid according to the user-defined X
 </div>
 </div>
 <div class="sect2">
-<h3 id="database-access"><a class="anchor" href="#database-access"></a>Database Access</h3>
+<h3 id="database-access"><a class="anchor" href="getting-started.html#database-access"></a>Database Access</h3>
 <div class="ulist">
 <ul>
 <li>
@@ -901,7 +917,7 @@ is valid according to the user-defined X
 </div>
 </div>
 <div class="sect2">
-<h3 id="AttributeExtraction"><a class="anchor" href="#AttributeExtraction"></a>Attribute Extraction</h3>
+<h3 id="AttributeExtraction"><a class="anchor" href="getting-started.html#AttributeExtraction"></a>Attribute Extraction</h3>
 <div class="ulist">
 <ul>
 <li>
@@ -940,7 +956,7 @@ as well as deriving Attribute values dyn
 </div>
 </div>
 <div class="sect2">
-<h3 id="system-interaction"><a class="anchor" href="#system-interaction"></a>System Interaction</h3>
+<h3 id="system-interaction"><a class="anchor" href="getting-started.html#system-interaction"></a>System Interaction</h3>
 <div class="ulist">
 <ul>
 <li>
@@ -958,7 +974,7 @@ of the process. The content that is writ
 </div>
 </div>
 <div class="sect2">
-<h3 id="data-ingestion"><a class="anchor" href="#data-ingestion"></a>Data Ingestion</h3>
+<h3 id="data-ingestion"><a class="anchor" href="getting-started.html#data-ingestion"></a>Data Ingestion</h3>
 <div class="ulist">
 <ul>
 <li>
@@ -1024,7 +1040,7 @@ that is received.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="data-egress-sending-data"><a class="anchor" href="#data-egress-sending-data"></a>Data Egress / Sending Data</h3>
+<h3 id="data-egress-sending-data"><a class="anchor" href="getting-started.html#data-egress-sending-data"></a>Data Egress / Sending Data</h3>
 <div class="ulist">
 <ul>
 <li>
@@ -1058,7 +1074,7 @@ new-line can be specified, in order to s
 </div>
 </div>
 <div class="sect2">
-<h3 id="splitting-and-aggregation"><a class="anchor" href="#splitting-and-aggregation"></a>Splitting and Aggregation</h3>
+<h3 id="splitting-and-aggregation"><a class="anchor" href="getting-started.html#splitting-and-aggregation"></a>Splitting and Aggregation</h3>
 <div class="ulist">
 <ul>
 <li>
@@ -1098,7 +1114,7 @@ is not performed on arbitrary byte bound
 </div>
 </div>
 <div class="sect2">
-<h3 id="http"><a class="anchor" href="#http"></a>HTTP</h3>
+<h3 id="http"><a class="anchor" href="getting-started.html#http"></a>HTTP</h3>
 <div class="ulist">
 <ul>
 <li>
@@ -1132,7 +1148,7 @@ based protocol or to add a simple web se
 </div>
 </div>
 <div class="sect2">
-<h3 id="amazon-web-services"><a class="anchor" href="#amazon-web-services"></a>Amazon Web Services</h3>
+<h3 id="amazon-web-services"><a class="anchor" href="getting-started.html#amazon-web-services"></a>Amazon Web Services</h3>
 <div class="ulist">
 <ul>
 <li>
@@ -1161,7 +1177,7 @@ a message from SQS, perform some process
 </div>
 </div>
 <div class="sect1">
-<h2 id="working-with-attributes"><a class="anchor" href="#working-with-attributes"></a>Working With Attributes</h2>
+<h2 id="working-with-attributes"><a class="anchor" href="getting-started.html#working-with-attributes"></a>Working With Attributes</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Each FlowFile is created with several Attributes, and these Attributes will change over the life of
@@ -1182,7 +1198,7 @@ to gain valuable insight as to why the d
 carried along with the content.</p>
 </div>
 <div class="sect2">
-<h3 id="common-attributes"><a class="anchor" href="#common-attributes"></a>Common Attributes</h3>
+<h3 id="common-attributes"><a class="anchor" href="getting-started.html#common-attributes"></a>Common Attributes</h3>
 <div class="paragraph">
 <p>Each FlowFile has a minimum set of Attributes:</p>
 </div>
@@ -1218,17 +1234,17 @@ of milliseconds since midnight, Jan. 1,
 </div>
 </div>
 <div class="sect2">
-<h3 id="extracting-attributes"><a class="anchor" href="#extracting-attributes"></a>Extracting Attributes</h3>
+<h3 id="extracting-attributes"><a class="anchor" href="getting-started.html#extracting-attributes"></a>Extracting Attributes</h3>
 <div class="paragraph">
 <p>NiFi provides several different Processors out of the box for extracting Attributes from FlowFiles. A list of commonly used
-Processors for this purpose can be found above in the <a href="#AttributeExtraction">Attribute Extraction</a> section. This is a very common use case for building
+Processors for this purpose can be found above in the <a href="getting-started.html#AttributeExtraction">Attribute Extraction</a> section. This is a very common use case for building
 custom Processors, as well. Many Processors are written to understand a specific data format and extract pertinent information from
 a FlowFile&#8217;s content, creating Attributes to hold that information, so that decisions can then be made about how to route or
 process the data.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="adding-user-defined-attributes"><a class="anchor" href="#adding-user-defined-attributes"></a>Adding User-Defined Attributes</h3>
+<h3 id="adding-user-defined-attributes"><a class="anchor" href="getting-started.html#adding-user-defined-attributes"></a>Adding User-Defined Attributes</h3>
 <div class="paragraph">
 <p>In addition to having Processors that are able to extract particular pieces of information from FlowFile content into Attributes,
 it is also common for users to want to add their own user-defined Attributes to each FlowFile at a particular place in the flow.
@@ -1242,7 +1258,7 @@ the property that was added. The value o
 <p>The value of the property may contain the Expression Language, as well. This allows Attributes to be modified or added
 based on other Attributes. For example, if we want to prepend the hostname that is processing a file as well as the date to
 a filename, we could do this by adding a property with the name <code>filename</code> and the value <code>${hostname()}-${now():format('yyyy-dd-MM')}-${filename}</code>.
-While this may seem confusing at first, the section below on <a href="#ExpressionLanguage">Expression Language / Using Attributes in Property Values</a> will help to clear up what is going on
+While this may seem confusing at first, the section below on <a href="getting-started.html#ExpressionLanguage">Expression Language / Using Attributes in Property Values</a> will help to clear up what is going on
 here.</p>
 </div>
 <div class="paragraph">
@@ -1255,7 +1271,7 @@ to the FlowFile.</p>
 </div>
 </div>
 <div class="sect2">
-<h3 id="routing-on-attributes"><a class="anchor" href="#routing-on-attributes"></a>Routing on Attributes</h3>
+<h3 id="routing-on-attributes"><a class="anchor" href="getting-started.html#routing-on-attributes"></a>Routing on Attributes</h3>
 <div class="paragraph">
 <p>One of the most powerful features of NiFi is the ability to route FlowFiles based on their Attributes. The primary mechanism
 for doing this is the RouteOnAttribute Processor. This Processor, like UpdateAttribute, is configured by adding user-defined properties.
@@ -1265,7 +1281,7 @@ Processor&#8217;s Configure dialog.</p>
 <div class="paragraph">
 <p>Each FlowFile&#8217;s Attributes will be compared against the configured properties to determine whether or not the FlowFile meets the
 specified criteria. The value of each property is expected to be an Expression Language expression and return a boolean value.
-For more on the Expression Language, see the <a href="#ExpressionLanguage">Expression Language / Using Attributes in Property Values</a> section below.</p>
+For more on the Expression Language, see the <a href="getting-started.html#ExpressionLanguage">Expression Language / Using Attributes in Property Values</a> section below.</p>
 </div>
 <div class="paragraph">
 <p>After evaluating the Expression Language expressions provided against the FlowFile&#8217;s Attributes, the Processor determines how to
@@ -1277,13 +1293,13 @@ to that Relationship. All other FlowFile
 </div>
 </div>
 <div class="sect2">
-<h3 id="ExpressionLanguage"><a class="anchor" href="#ExpressionLanguage"></a>Expression Language / Using Attributes in Property Values</h3>
+<h3 id="ExpressionLanguage"><a class="anchor" href="getting-started.html#ExpressionLanguage"></a>Expression Language / Using Attributes in Property Values</h3>
 <div class="paragraph">
 <p>As we extract Attributes from FlowFiles' contents and add user-defined Attributes, they don&#8217;t do us much good as an operator unless
 we have some mechanism by which we can use them. The NiFi Expression Language allows us to access and manipulate FlowFile Attribute
 values as we configure our flows. Not all Processor properties allow the Expression Language to be used, but many do. In order to
 determine whether or not a property supports the Expression Language, a user can hover over the Help icon (
-<span class="image"><img src="./images/iconInfo.png" alt="Help"></span>
+<span class="image"><img src="images/iconInfo.png" alt="Help"></span>
 ) in the Properties tab of the Processor Configure dialog. This will provide a tooltip that shows a description of the property, the
 default value, if any, and whether or not the property supports the Expression Language.</p>
 </div>
@@ -1323,7 +1339,7 @@ cause a tooltip to show, which explains
 </div>
 </div>
 <div class="sect1">
-<h2 id="custom-properties-within-expression-language"><a class="anchor" href="#custom-properties-within-expression-language"></a>Custom Properties Within Expression Language</h2>
+<h2 id="custom-properties-within-expression-language"><a class="anchor" href="getting-started.html#custom-properties-within-expression-language"></a>Custom Properties Within Expression Language</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>In addition to using FlowFile attributes, you can also define custom properties for Expression Language use. Defining custom properties gives you additional flexibility in processing and configuring dataflows. For example, you can refer to custom properties for connection, server, and service properties. Once you have created custom properties, you can identify their location in the <code>nifi.variable.registry.properties</code> field in the <em>nifi.properties</em> file. After you have updated the <em>nifi.properties</em> file and restarted NiFi, you are able to use custom properties as needed.</p>
@@ -1331,7 +1347,7 @@ cause a tooltip to show, which explains
 </div>
 </div>
 <div class="sect1">
-<h2 id="working-with-templates"><a class="anchor" href="#working-with-templates"></a>Working With Templates</h2>
+<h2 id="working-with-templates"><a class="anchor" href="getting-started.html#working-with-templates"></a>Working With Templates</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>As we use Processors to build more and more complex dataflows in NiFi, we often will find that we string together the same sequence
@@ -1347,7 +1363,7 @@ the Shift key while selecting additional
 </li>
 <li>
 <p>Select the Create Template Icon (
-<span class="image"><img src="./images/iconNewTemplate.png" alt="New Template Icon"></span>
+<span class="image"><img src="images/iconNewTemplate.png" alt="New Template Icon"></span>
 ) from the Operate palette.</p>
 </li>
 <li>
@@ -1361,7 +1377,7 @@ the Shift key while selecting additional
 <div class="paragraph">
 <p>Once we have created a template, we can now use it as a building block in our flow, just as we would a Processor. To do this, we will
 click and drag the Template icon (
-	<span class="image"><img src="./images/iconTemplate.png" alt="Template"></span>
+	<span class="image"><img src="images/iconTemplate.png" alt="Template"></span>
 	) from the Component toolbar onto our canvas. We can then choose the template that we would like to add
 to our canvas and click the <code>Add</code> button.</p>
 </div>
@@ -1373,7 +1389,7 @@ that they can use your template.</p>
 </div>
 <div class="paragraph">
 <p>To import a template into your NiFi instance, select the Upload Template icon (
-	<span class="image"><img src="./images/iconUploadTemplate.png" alt="Upload Template"></span>
+	<span class="image"><img src="images/iconUploadTemplate.png" alt="Upload Template"></span>
 	) from the Operator palette, click the Search Icon and navigate to the file on
 your computer. Then click the <code>Upload</code> button. The template will now show up in your table, and you can drag it onto your canvas as you would
 any other template that you have created.</p>
@@ -1394,7 +1410,7 @@ any other template that you have created
 </div>
 </div>
 <div class="sect1">
-<h2 id="monitoring-nifi"><a class="anchor" href="#monitoring-nifi"></a>Monitoring NiFi</h2>
+<h2 id="monitoring-nifi"><a class="anchor" href="getting-started.html#monitoring-nifi"></a>Monitoring NiFi</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>As data flows through your dataflow in NiFi, it is important to understand how well your system is performing in order to assess if you
@@ -1402,7 +1418,7 @@ will require more resources and in order
 your system.</p>
 </div>
 <div class="sect2">
-<h3 id="status-bar"><a class="anchor" href="#status-bar"></a>Status Bar</h3>
+<h3 id="status-bar"><a class="anchor" href="getting-started.html#status-bar"></a>Status Bar</h3>
 <div class="paragraph">
 <p>Near the top of the NiFi screen under the Component toolbar is a bar that is referred to as the Status Bar. It contains a few important statistics about the current
 health of NiFi. The number of Active Threads can indicate how hard NiFi is currently working, and the Queued stat indicates how many FlowFiles
@@ -1414,7 +1430,7 @@ connected. In this case, the number of a
 </div>
 </div>
 <div class="sect2">
-<h3 id="component-statistics"><a class="anchor" href="#component-statistics"></a>Component Statistics</h3>
+<h3 id="component-statistics"><a class="anchor" href="getting-started.html#component-statistics"></a>Component Statistics</h3>
 <div class="paragraph">
 <p>Each Processor, Process Group, and Remote Process Group on the canvas provides several statistics about how much data has been processed
 by the component. These statistics provide information about how much data has been processed in the past five minutes. This is a rolling
@@ -1436,7 +1452,7 @@ user to select a smaller portion of the
 </div>
 </div>
 <div class="sect2">
-<h3 id="bulletins"><a class="anchor" href="#bulletins"></a>Bulletins</h3>
+<h3 id="bulletins"><a class="anchor" href="getting-started.html#bulletins"></a>Bulletins</h3>
 <div class="paragraph">
 <p>In addition to the statistics provided by each component, a user will want to know if any problems occur. While we could monitor the
 logs for anything interesting, it is much more convenient to have notifications pop up on the screen. If a Processor logs
@@ -1454,7 +1470,7 @@ In the Global Menu is a Bulletin Board o
 </div>
 </div>
 <div class="sect1">
-<h2 id="data-provenance"><a class="anchor" href="#data-provenance"></a>Data Provenance</h2>
+<h2 id="data-provenance"><a class="anchor" href="getting-started.html#data-provenance"></a>Data Provenance</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>NiFi keeps a very granular level of detail about each piece of data that it ingests. As the data is processed through
@@ -1463,7 +1479,7 @@ all stored within NiFi&#8217;s Provenanc
 the Provenance events that we have searched for:</p>
 </div>
 <div class="paragraph">
-<p><span class="image"><img src="./images/provenance-table.png" alt="Provenance Table"></span></p>
+<p><span class="image"><img src="images/provenance-table.png" alt="Provenance Table"></span></p>
 </div>
 <div class="paragraph">
 <p>Initially, this table is populated with the most recent 1,000 Provenance Events that have occurred (though it may take a few
@@ -1474,15 +1490,15 @@ Additionally, the properties file also a
 choose which Attributes will be important to your specific dataflows and make those Attributes searchable.</p>
 </div>
 <div class="sect2">
-<h3 id="EventDetails"><a class="anchor" href="#EventDetails"></a>Event Details</h3>
+<h3 id="EventDetails"><a class="anchor" href="getting-started.html#EventDetails"></a>Event Details</h3>
 <div class="paragraph">
 <p>Once we have performed our search, our table will be populated only with the events that match the search criteria. From here, we
 can choose the Info icon (
-<span class="image"><img src="./images/iconDetails.png" alt="Details Icon"></span>
+<span class="image"><img src="images/iconDetails.png" alt="Details Icon"></span>
 ) on the left-hand side of the table to view the details of that event:</p>
 </div>
 <div class="paragraph">
-<p><span class="image"><img src="./images/event-details.png" alt="Event Details"></span></p>
+<p><span class="image"><img src="images/event-details.png" alt="Event Details"></span></p>
 </div>
 <div class="paragraph">
 <p>From here, we can see exactly when that event occurred, which FlowFile the event affected, which component (Processor, etc.) performed the event,
@@ -1492,7 +1508,7 @@ how long the event took, and the overall
 <p>The next tab provides a listing of all Attributes that existed on the FlowFile at the time that the event occurred:</p>
 </div>
 <div class="paragraph">
-<p><span class="image"><img src="./images/event-attributes.png" alt="Event Attributes"></span></p>
+<p><span class="image"><img src="images/event-attributes.png" alt="Event Attributes"></span></p>
 </div>
 <div class="paragraph">
 <p>From here, we can see all the Attributes that existed on the FlowFile when the event occurred, as well as the previous values for those
@@ -1508,7 +1524,7 @@ to understand <em>why</em> the FlowFile
 <p>Finally, we have the Content tab:</p>
 </div>
 <div class="paragraph">
-<p><span class="image"><img src="./images/event-content.png" alt="Event Content"></span></p>
+<p><span class="image"><img src="images/event-content.png" alt="Event Content"></span></p>
 </div>
 <div class="paragraph">
 <p>This tab provides us information about where in the Content Repository the FlowFile&#8217;s content was stored. If the event modified the content
@@ -1523,20 +1539,20 @@ this iterative development of the flow u
 </div>
 </div>
 <div class="sect2">
-<h3 id="lineage-graph"><a class="anchor" href="#lineage-graph"></a>Lineage Graph</h3>
+<h3 id="lineage-graph"><a class="anchor" href="getting-started.html#lineage-graph"></a>Lineage Graph</h3>
 <div class="paragraph">
 <p>In addition to viewing the details of a Provenance event, we can also view the lineage of the FlowFile involved by clicking on the Lineage Icon (
-<span class="image"><img src="./images/iconLineage.png" alt="Lineage"></span>
+<span class="image"><img src="images/iconLineage.png" alt="Lineage"></span>
 ) from the table view.</p>
 </div>
 <div class="paragraph">
 <p>This provides us with a graphical representation of exactly what happened to that piece of data as it traversed the system:</p>
 </div>
 <div class="paragraph">
-<p><span class="image"><img src="./images/lineage-graph-annotated.png" alt="Lineage Graph"></span></p>
+<p><span class="image"><img src="images/lineage-graph-annotated.png" alt="Lineage Graph"></span></p>
 </div>
 <div class="paragraph">
-<p>From here, we can right-click on any of the events represented and click the <code>View Details</code> menu item to see the <a href="#EventDetails">Event Details</a>.
+<p>From here, we can right-click on any of the events represented and click the <code>View Details</code> menu item to see the <a href="getting-started.html#EventDetails">Event Details</a>.
 This graphical representation shows us exactly which events occurred to the data. There are a few "special" event types to be
 aware of. If we see a JOIN, FORK, or CLONE event, we can right-click and choose to Find Parents or Expand. This allows us to
 see the lineage of parent FlowFiles and children FlowFiles that were created as well.</p>
@@ -1552,7 +1568,7 @@ see where this is occurring is a very po
 </div>
 </div>
 <div class="sect1">
-<h2 id="where-to-go-for-more-information"><a class="anchor" href="#where-to-go-for-more-information"></a>Where To Go For More Information</h2>
+<h2 id="where-to-go-for-more-information"><a class="anchor" href="getting-started.html#where-to-go-for-more-information"></a>Where To Go For More Information</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>The NiFi community has built up a significant amount of documentation on how to use the software. The following guides are available, in
@@ -1608,7 +1624,7 @@ work back to the Apache NiFi community s
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-08-26 11:39:00 -04:00
+Last updated 2016-08-29 08:05:44 -04:00
 </div>
 </div>
 </body>

Modified: nifi/site/trunk/docs/nifi-docs/html/nifi-in-depth.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/nifi-in-depth.html?rev=1758505&r1=1758504&r2=1758505&view=diff
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/html/nifi-in-depth.html (original)
+++ nifi/site/trunk/docs/nifi-docs/html/nifi-in-depth.html Tue Aug 30 23:27:48 2016
@@ -1,4 +1,20 @@
-<!DOCTYPE html>
+<!--
+                        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.
+                        -->
+                        <!DOCTYPE html>
 <html lang="en">
 <head>
 <meta charset="UTF-8">
@@ -439,34 +455,34 @@ body.book #toc,body.book #preamble,body.
 <div id="toc" class="toc">
 <div id="toctitle">Table of Contents</div>
 <ul class="sectlevel1">
-<li><a href="#intro">Intro</a></li>
-<li><a href="#repositories">Repositories</a>
+<li><a href="nifi-in-depth.html#intro">Intro</a></li>
+<li><a href="nifi-in-depth.html#repositories">Repositories</a>
 <ul class="sectlevel2">
-<li><a href="#flowfile-repository">FlowFile Repository</a></li>
-<li><a href="#content-repository">Content Repository</a></li>
-<li><a href="#provenance-repository">Provenance Repository</a></li>
-<li><a href="#general-repository-notes">General Repository Notes</a></li>
+<li><a href="nifi-in-depth.html#flowfile-repository">FlowFile Repository</a></li>
+<li><a href="nifi-in-depth.html#content-repository">Content Repository</a></li>
+<li><a href="nifi-in-depth.html#provenance-repository">Provenance Repository</a></li>
+<li><a href="nifi-in-depth.html#general-repository-notes">General Repository Notes</a></li>
 </ul>
 </li>
-<li><a href="#life-of-a-flowfile">Life of a FlowFile</a>
+<li><a href="nifi-in-depth.html#life-of-a-flowfile">Life of a FlowFile</a>
 <ul class="sectlevel2">
-<li><a href="#webcrawler-template">WebCrawler Template:</a></li>
-<li><a href="#data-ingress">Data Ingress</a></li>
-<li><a href="#pass-by-reference">Pass by Reference</a></li>
-<li><a href="#extended-routing-use-cases">Extended Routing Use-cases:</a></li>
-<li><a href="#funnels">Funnels</a></li>
-<li><a href="#copy-on-write">Copy on Write</a></li>
-<li><a href="#updating-attributes">Updating Attributes</a></li>
-<li><a href="#data-egress">Data Egress</a></li>
+<li><a href="nifi-in-depth.html#webcrawler-template">WebCrawler Template:</a></li>
+<li><a href="nifi-in-depth.html#data-ingress">Data Ingress</a></li>
+<li><a href="nifi-in-depth.html#pass-by-reference">Pass by Reference</a></li>
+<li><a href="nifi-in-depth.html#extended-routing-use-cases">Extended Routing Use-cases:</a></li>
+<li><a href="nifi-in-depth.html#funnels">Funnels</a></li>
+<li><a href="nifi-in-depth.html#copy-on-write">Copy on Write</a></li>
+<li><a href="nifi-in-depth.html#updating-attributes">Updating Attributes</a></li>
+<li><a href="nifi-in-depth.html#data-egress">Data Egress</a></li>
 </ul>
 </li>
-<li><a href="#closing-remarks">Closing Remarks</a></li>
+<li><a href="nifi-in-depth.html#closing-remarks">Closing Remarks</a></li>
 </ul>
 </div>
 </div>
 <div id="content">
 <div class="sect1">
-<h2 id="intro"><a class="anchor" href="#intro"></a>Intro</h2>
+<h2 id="intro"><a class="anchor" href="nifi-in-depth.html#intro"></a>Intro</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>This advanced level document is aimed at providing an in-depth look at the implementation and design decisions of NiFi. It assumes the reader has read enough of the other documentation to know the basics of NiFi.</p>
@@ -480,7 +496,7 @@ body.book #toc,body.book #preamble,body.
 </div>
 </div>
 <div class="sect1">
-<h2 id="repositories"><a class="anchor" href="#repositories"></a>Repositories</h2>
+<h2 id="repositories"><a class="anchor" href="nifi-in-depth.html#repositories"></a>Repositories</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>There are three repositories that are utilized by NiFi. Each exists within the OS/Host&#8217;s file system and provides specific functionality. In order to fully understand FlowFiles and how they are used by the underlying system it&#8217;s important to know about these repositories. All three repositories are directories on local storage that NiFi uses to persist data.</p>
@@ -500,11 +516,11 @@ body.book #toc,body.book #preamble,body.
 </div>
 <div class="imageblock">
 <div class="content">
-<img src="./images/NiFiArchitecture.png" alt="NiFi Architecture Diagram">
+<img src="images/NiFiArchitecture.png" alt="NiFi Architecture Diagram">
 </div>
 </div>
 <div class="sect2">
-<h3 id="flowfile-repository"><a class="anchor" href="#flowfile-repository"></a>FlowFile Repository</h3>
+<h3 id="flowfile-repository"><a class="anchor" href="nifi-in-depth.html#flowfile-repository"></a>FlowFile Repository</h3>
 <div class="paragraph">
 <p>FlowFiles that are actively being processed by the system is held in a hash map in the JVM memory (more about that in "Deeper View: FlowFiles in Memory and on Disk"). This makes it very efficient to process them, but requires a secondary mechanism to provide durability of data across process restarts due to any number of reasons. Reasons such as power loss, kernel panics, system upgrades, and maintenance cycles. The FlowFile Repository is a "Write-Ahead Log" (or data record) of the metadata of each of the FlowFiles that currently exist in the system. This FlowFile metadata includes all the attributes associated with the FlowFile, a pointer to the actual content of the FlowFile (which exists in the Content Repo) and the state of the FlowFile, such as which Connection/Queue the FlowFile belongs in. This Write-Ahead Log provides NiFi the resiliency it needs to handle restarts and unexpected system failures.</p>
 </div>
@@ -518,7 +534,7 @@ body.book #toc,body.book #preamble,body.
 <p>The period between system checkpoints is configurable in the nifi.properties file (documented in the NiFi System Administrator&#8217;s Guide). The default is a two-minute interval.</p>
 </div>
 <div class="sect3">
-<h4 id="effect-of-system-failure-on-transactions"><a class="anchor" href="#effect-of-system-failure-on-transactions"></a>Effect of System Failure on Transactions</h4>
+<h4 id="effect-of-system-failure-on-transactions"><a class="anchor" href="nifi-in-depth.html#effect-of-system-failure-on-transactions"></a>Effect of System Failure on Transactions</h4>
 <div class="paragraph">
 <p>NiFi protects against hardware and system failures by keeping a record of what was happening on each node at that time in their respective FlowFile Repo. As mentioned above, the FlowFile Repo is NiFi&#8217;s Write-Ahead Log. When the node comes back online, it works to restore its state by first checking for the "snapshot" and ".partial" files. The node either accepts the "snapshot" and deletes the ".partial" (if it exits), or renames the ".partial" file to "snapshot" if the "snapshot" file doesn&#8217;t exist.</p>
 </div>
@@ -533,7 +549,7 @@ body.book #toc,body.book #preamble,body.
 </div>
 </div>
 <div class="sect3">
-<h4 id="deeper-view-flowfiles-in-memory-and-on-disk"><a class="anchor" href="#deeper-view-flowfiles-in-memory-and-on-disk"></a>Deeper View: FlowFiles in Memory and on Disk</h4>
+<h4 id="deeper-view-flowfiles-in-memory-and-on-disk"><a class="anchor" href="nifi-in-depth.html#deeper-view-flowfiles-in-memory-and-on-disk"></a>Deeper View: FlowFiles in Memory and on Disk</h4>
 <div class="paragraph">
 <p>The term "FlowFile" is a bit of a misnomer. This would lead one to believe that each FlowFile corresponds to a file on disk, but that is not true. There are two main locations that the FlowFile attributes exist, the Write-Ahead Log that is explained above and a hash map in working memory. This hash map has a reference to all of the FlowFiles actively being used in the Flow. The object referenced by this map is the same one that is used by processors and held in connections queues. Since the FlowFile object is held in memory, all which has to be done for the Processor to get the FlowFile is to ask the ProcessSession to grab it from the queue.</p>
 </div>
@@ -546,7 +562,7 @@ body.book #toc,body.book #preamble,body.
 </div>
 </div>
 <div class="sect2">
-<h3 id="content-repository"><a class="anchor" href="#content-repository"></a>Content Repository</h3>
+<h3 id="content-repository"><a class="anchor" href="nifi-in-depth.html#content-repository"></a>Content Repository</h3>
 <div class="paragraph">
 <p>The Content Repository is simply a place in local storage where the content of all FlowFiles exists and it is typically the largest of the three Repositories. As mentioned in the introductory section, this repository utilizes the immutability and copy-on-write paradigms to maximize speed and thread-safety. The core design decision influencing the Content Repo is to hold the FlowFile&#8217;s content on disk and only read it into JVM memory when it&#8217;s needed. This allows NiFi to handle tiny and massive sized objects without requiring producer and consumer processors to hold the full objects in memory. As a result, actions like splitting, aggregating, and transforming very large objects are quite easy to do without harming memory.</p>
 </div>
@@ -554,7 +570,7 @@ body.book #toc,body.book #preamble,body.
 <p>In the same way the JVM Heap has a garbage collection process to reclaim unreachable objects when space is needed, there exists a dedicated thread in NiFi to analyze the Content repo for un-used content (more info in the " Deeper View: Deletion After Checkpointing" section). After a FlowFile&#8217;s content is identified as no longer in use it will either be deleted or archived. If archiving is enabled in nifi.properties then the FlowFile’s content will exist in the Content Repo either until it is aged off (deleted after a certain amount of time) or deleted due to the Content Repo taking up too much space.  The conditions for archiving and/or deleting are configured in the nifi.properties file ("nifi.content.repository.archive.max.retention.period", "nifi.content.repository.archive.max.usage.percentage") and outlined in the Admin guide. Refer to the "Data Egress" section for more information on the deletion of content.</p>
 </div>
 <div class="sect3">
-<h4 id="deeper-view-content-claim"><a class="anchor" href="#deeper-view-content-claim"></a>Deeper View: Content Claim</h4>
+<h4 id="deeper-view-content-claim"><a class="anchor" href="nifi-in-depth.html#deeper-view-content-claim"></a>Deeper View: Content Claim</h4>
 <div class="paragraph">
 <p>In general, when talking about a FlowFile, the reference to its content can simply be referred to as a "pointer" to the content. Though, the underlying implementation of the FlowFile Content reference has multiple layers of complexity. The Content Repository is made up of a collection of files on disk. These files are binned into Containers and Sections. A Section is a subdirectory of a Container. A Container can be thought of as a “root directory” for the Content Repository. The Content Repository, though, can be made up of many Containers. This is done so that NiFi can take advantage of multiple physical partitions in parallel.” NiFi is then capable of reading from, and writing to, all of these disks in parallel, in order to achieve data rates of hundreds of Megabytes or even Gigabytes per second of disk throughput on a single node. "Resource Claims" are Java objects that point to specific files on disk (this is done by keeping track of the file ID, the section t
 he file is in, and the container the section is a part of).</p>
 </div>
@@ -567,7 +583,7 @@ body.book #toc,body.book #preamble,body.
 </div>
 </div>
 <div class="sect2">
-<h3 id="provenance-repository"><a class="anchor" href="#provenance-repository"></a>Provenance Repository</h3>
+<h3 id="provenance-repository"><a class="anchor" href="nifi-in-depth.html#provenance-repository"></a>Provenance Repository</h3>
 <div class="paragraph">
 <p>The Provenance Repository is where the history of each FlowFile is stored. This history is used to provide the Data Lineage (also known as the Chain of Custody) of each piece of data. Each time that an event occurs for a FlowFile (FlowFile is created, forked, cloned, modified, etc.) a new provenance event is created. This provenance event is a snapshot of the FlowFile as it looked and fit in the flow that existed at that point in time. When a provenance event is created, it copies all the FlowFile&#8217;s attributes and the pointer to the FlowFile&#8217;s content and aggregates that with the FlowFile&#8217;s state (such as its relationship with other provenance events) to one location in the Provenance Repo. This snapshot will not change, with the exception of the data being expired. The Provenance Repository holds all of these provenance events for a period of time after completion, as specified in the nifi.properties file.</p>
 </div>
@@ -584,7 +600,7 @@ body.book #toc,body.book #preamble,body.
 <p>For a look at the design decisions behind the Provenance Repository check out this link: <a href="https://cwiki.apache.org/confluence/display/NIFI/Persistent+Provenance+Repository+Design" class="bare">https://cwiki.apache.org/confluence/display/NIFI/Persistent+Provenance+Repository+Design</a></p>
 </div>
 <div class="sect3">
-<h4 id="deeper-view-provenance-log-files"><a class="anchor" href="#deeper-view-provenance-log-files"></a>Deeper View: Provenance Log Files</h4>
+<h4 id="deeper-view-provenance-log-files"><a class="anchor" href="nifi-in-depth.html#deeper-view-provenance-log-files"></a>Deeper View: Provenance Log Files</h4>
 <div class="paragraph">
 <p>Each provenance event has two maps, one for the attributes before the event and one for the updated attribute values. In general, provenance events don&#8217;t store the updated values of the attributes as they existed when the event was emitted but instead, the attribute values when the session is committed. The events are cached and saved until the session is committed and once the session is committed the events are emitted with the attributes associated with the FlowFile when the session is committed. The exception to this rule is the "SEND" event, in which case the event contains the attributes as they existed when the event was emitted. This is done because if the attributes themselves were also sent, it is important to have an accurate account of exactly what information was sent.</p>
 </div>
@@ -600,15 +616,15 @@ body.book #toc,body.book #preamble,body.
 </div>
 </div>
 <div class="sect2">
-<h3 id="general-repository-notes"><a class="anchor" href="#general-repository-notes"></a>General Repository Notes</h3>
+<h3 id="general-repository-notes"><a class="anchor" href="nifi-in-depth.html#general-repository-notes"></a>General Repository Notes</h3>
 <div class="sect3">
-<h4 id="multiple-physical-storage-points"><a class="anchor" href="#multiple-physical-storage-points"></a>Multiple Physical Storage Points</h4>
+<h4 id="multiple-physical-storage-points"><a class="anchor" href="nifi-in-depth.html#multiple-physical-storage-points"></a>Multiple Physical Storage Points</h4>
 <div class="paragraph">
 <p>For the Provenance and Content repos, there is the option to stripe the information across multiple physical partitions. An admin would do this if they wanted to federate reads and writes across multiple disks. The repo (Content or Provenance) is still one logical store but writes will be striped across multiple volumes/partitions automatically by the system. The directories are specified in the nifi.properties file.</p>
 </div>
 </div>
 <div class="sect3">
-<h4 id="best-practice"><a class="anchor" href="#best-practice"></a>Best Practice</h4>
+<h4 id="best-practice"><a class="anchor" href="nifi-in-depth.html#best-practice"></a>Best Practice</h4>
 <div class="paragraph">
 <p>It is considered a best practice to analyze the contents of a FlowFile as few times as possible and instead extract key information from the contents into the attributes of the FlowFile; then read/write information from the FlowFile attributes. One example of this is the ExtractText processor, which extracts text from the FlowFile Content and puts it as an attribute so other processors can make use of it. This provides far better performance than continually processing the entire content of the FlowFile, as the attributes are kept in-memory and updating the FlowFile repository is much faster than updating the Content repository, given the amount of data stored in each.</p>
 </div>
@@ -617,7 +633,7 @@ body.book #toc,body.book #preamble,body.
 </div>
 </div>
 <div class="sect1">
-<h2 id="life-of-a-flowfile"><a class="anchor" href="#life-of-a-flowfile"></a>Life of a FlowFile</h2>
+<h2 id="life-of-a-flowfile"><a class="anchor" href="nifi-in-depth.html#life-of-a-flowfile"></a>Life of a FlowFile</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>To better understand how the repos interact with one another, the underlying functionality of NiFi, and the life of a FlowFile; this next section will include examples of a FlowFile at different points in a real flow. The flow is a template called "WebCrawler.xml" and is available here: <a href="https://cwiki.apache.org/confluence/display/NIFI/Example+Dataflow+Templates" class="bare">https://cwiki.apache.org/confluence/display/NIFI/Example+Dataflow+Templates</a>.</p>
@@ -635,18 +651,18 @@ body.book #toc,body.book #preamble,body.
 <p>keytool -importkeystore -srckeystore /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/security/cacerts  -destkeystore myTrustStore</p>
 </div>
 <div class="sect2">
-<h3 id="webcrawler-template"><a class="anchor" href="#webcrawler-template"></a>WebCrawler Template:</h3>
+<h3 id="webcrawler-template"><a class="anchor" href="nifi-in-depth.html#webcrawler-template"></a>WebCrawler Template:</h3>
 <div class="paragraph">
 <p>Note that it is not uncommon for bulletins with messages such as "Connection timed out" to appear on the InvokeHttp processor due to the random nature of web crawling.</p>
 </div>
 <div class="imageblock">
 <div class="content">
-<img src="./images/WebCrawler.png" alt="Web Crawler Flow">
+<img src="images/WebCrawler.png" alt="Web Crawler Flow">
 </div>
 </div>
 </div>
 <div class="sect2">
-<h3 id="data-ingress"><a class="anchor" href="#data-ingress"></a>Data Ingress</h3>
+<h3 id="data-ingress"><a class="anchor" href="nifi-in-depth.html#data-ingress"></a>Data Ingress</h3>
 <div class="paragraph">
 <p>A FlowFile is created in the system when a producer processor invokes "ProcessSession.create()" followed by an appropriate call to the ProvenanceReporter. The "ProcessSession.create()" call creates an empty FlowFile with a few core attributes (filename, path and uuid for the standard process session) but without any content or lineage to parents (the create method is overloaded to allow parameters for parent FlowFiles). The producer processor then adds the content and attributes to the FlowFile.</p>
 </div>
@@ -658,12 +674,12 @@ body.book #toc,body.book #preamble,body.
 </div>
 <div class="imageblock">
 <div class="content">
-<img src="./images/DataIngress.png" alt="Data Ingress">
+<img src="images/DataIngress.png" alt="Data Ingress">
 </div>
 </div>
 </div>
 <div class="sect2">
-<h3 id="pass-by-reference"><a class="anchor" href="#pass-by-reference"></a>Pass by Reference</h3>
+<h3 id="pass-by-reference"><a class="anchor" href="nifi-in-depth.html#pass-by-reference"></a>Pass by Reference</h3>
 <div class="paragraph">
 <p>An important aspect of flow-based programming is the idea of resource-constrained relationships between the black boxes. In NiFi these are queues and processors respectively. FlowFiles are routed from one processor to another through queues simply by passing a reference to the FlowFile (similar to the "Claim Check" pattern in EIP).</p>
 </div>
@@ -678,12 +694,12 @@ body.book #toc,body.book #preamble,body.
 </div>
 <div class="imageblock">
 <div class="content">
-<img src="./images/PassByReference.png" alt="Pass By Reference">
+<img src="images/PassByReference.png" alt="Pass By Reference">
 </div>
 </div>
 </div>
 <div class="sect2">
-<h3 id="extended-routing-use-cases"><a class="anchor" href="#extended-routing-use-cases"></a>Extended Routing Use-cases:</h3>
+<h3 id="extended-routing-use-cases"><a class="anchor" href="nifi-in-depth.html#extended-routing-use-cases"></a>Extended Routing Use-cases:</h3>
 <div class="paragraph">
 <p>In addition to routing FlowFiles based on attributes, some processors also route based on content. While it is not as efficient, sometimes it is necessary because you want to split up the content of the FlowFile into multiple FlowFiles.</p>
 </div>
@@ -695,7 +711,7 @@ body.book #toc,body.book #preamble,body.
 </div>
 </div>
 <div class="sect2">
-<h3 id="funnels"><a class="anchor" href="#funnels"></a>Funnels</h3>
+<h3 id="funnels"><a class="anchor" href="nifi-in-depth.html#funnels"></a>Funnels</h3>
 <div class="paragraph">
 <p>The funnel is a component that takes input from one or more connections and routes them to one or more destinations. The typical use-cases of which are described in the User Guide. Regardless of use-case, if there is only one processor downstream from the funnel then there are not any provenance events emitted by the funnel and it appears to be invisible in the Provenance graph.  If there are multiple downstream processors, like the one in WebCrawler, then a clone event occurs. Referring to the graphic below, you can see that a new FlowFile (F¬2) is cloned from the original FlowFile (F1) and, just like the Routing above, the new FlowFile just has a pointer to the same content (the content is not copied).</p>
 </div>
@@ -704,12 +720,12 @@ body.book #toc,body.book #preamble,body.
 </div>
 <div class="imageblock">
 <div class="content">
-<img src="./images/Funnels.png" alt="Funnel">
+<img src="images/Funnels.png" alt="Funnel">
 </div>
 </div>
 </div>
 <div class="sect2">
-<h3 id="copy-on-write"><a class="anchor" href="#copy-on-write"></a>Copy on Write</h3>
+<h3 id="copy-on-write"><a class="anchor" href="nifi-in-depth.html#copy-on-write"></a>Copy on Write</h3>
 <div class="paragraph">
 <p>In the previous example, there was only routing but no changes to the content of the FlowFile. This next example focuses on the CompressContent processor of the template that compresses the bundle of merged FlowFiles containing webpages that were queued to be analyzed.</p>
 </div>
@@ -721,18 +737,18 @@ body.book #toc,body.book #preamble,body.
 </div>
 <div class="imageblock">
 <div class="content">
-<img src="./images/CopyOnWrite.png" alt="Copy On Write">
+<img src="images/CopyOnWrite.png" alt="Copy On Write">
 </div>
 </div>
 <div class="sect3">
-<h4 id="extended-copy-on-write-use-case"><a class="anchor" href="#extended-copy-on-write-use-case"></a>Extended Copy on Write Use-case</h4>
+<h4 id="extended-copy-on-write-use-case"><a class="anchor" href="nifi-in-depth.html#extended-copy-on-write-use-case"></a>Extended Copy on Write Use-case</h4>
 <div class="paragraph">
 <p>A unique case of Copy on Write is the MergeContent processor. Just about every processor only acts on one FlowFile at a time. The MergeContent processor is unique in that it takes in multiple FlowFiles and combines them into one. Currently, MergeContent has multiple different Merge Strategies but all of them require the contents of the input FlowFiles to be copied to a new merged location. After MergeContent finishes, it emits a provenance event of type "JOIN" that establishes that the given parents were joined together to create a new child FlowFile.</p>
 </div>
 </div>
 </div>
 <div class="sect2">
-<h3 id="updating-attributes"><a class="anchor" href="#updating-attributes"></a>Updating Attributes</h3>
+<h3 id="updating-attributes"><a class="anchor" href="nifi-in-depth.html#updating-attributes"></a>Updating Attributes</h3>
 <div class="paragraph">
 <p>Working with a FlowFile&#8217;s attributes is a core aspect of NiFi. It is assumed that attributes are small enough to be entirely read into local memory every time a processor executes on it. So it is important that they are easy to work with. As attributes are the core way of routing and processing a FlowFile it is very common to have processors that just change a FlowFile&#8217;s attributes. One such example is the UpdateAttribute processor. All the UpdateAttribute processor does is change the incoming FlowFile&#8217;s attributes according to the processor&#8217;s properties.</p>
 </div>
@@ -747,23 +763,23 @@ body.book #toc,body.book #preamble,body.
 </div>
 <div class="imageblock">
 <div class="content">
-<img src="./images/UpdatingAttributes.png" alt="Updating Attributes">
+<img src="images/UpdatingAttributes.png" alt="Updating Attributes">
 </div>
 </div>
 <div class="sect3">
-<h4 id="typical-use-case-note"><a class="anchor" href="#typical-use-case-note"></a>Typical Use-case Note</h4>
+<h4 id="typical-use-case-note"><a class="anchor" href="nifi-in-depth.html#typical-use-case-note"></a>Typical Use-case Note</h4>
 <div class="paragraph">
 <p>In addition to adding arbitrary attributes via UpdateAttribute, extracting information from the content of a FlowFile into the attributes is a very common use-case.  One such example in the Web Crawler flow is the ExtractText processor. We cannot use the URL when it is embedded within the content of the FlowFile, so we much extract the URL from the contents of the FlowFile and place it as an attribute. This way we can use the Expression Language to reference this attribute in the URL Property of InvokeHttp.</p>
 </div>
 </div>
 </div>
 <div class="sect2">
-<h3 id="data-egress"><a class="anchor" href="#data-egress"></a>Data Egress</h3>
+<h3 id="data-egress"><a class="anchor" href="nifi-in-depth.html#data-egress"></a>Data Egress</h3>
 <div class="paragraph">
 <p>Eventually data in NiFi will reach a point where it has either been loaded into another system and we can stop processing it, or we filtered the FlowFile out and determined we no longer care about it. Either way, the FlowFile will eventually be "DROPPED".  "DROP" is a provenance event meaning that we are no longer processing the FlowFile in the Flow and it is available for deletion. It remains in the FlowFile Repository until the next repository checkpoint. The Provenance Repository keeps the Provenance events for an amount of time stated in nifi.properties (default is 24 hours). The content in the Content Repo is marked for deletion once the FlowFile leaves NiFi and the background checkpoint processing of the Write-Ahead Log to compact/remove occurs. That is unless another FlowFile references the same content or if archiving is enabled in nifi.properties. If archiving is enabled, the content exists until either the max percentage of disk is reached or max retention period is rea
 ched (also set in nifi.properties).</p>
 </div>
 <div class="sect3">
-<h4 id="deeper-view-deletion-after-checkpointing"><a class="anchor" href="#deeper-view-deletion-after-checkpointing"></a>Deeper View: Deletion After Checkpointing</h4>
+<h4 id="deeper-view-deletion-after-checkpointing"><a class="anchor" href="nifi-in-depth.html#deeper-view-deletion-after-checkpointing"></a>Deeper View: Deletion After Checkpointing</h4>
 <div class="paragraph">
 <p>Note: This section relies heavily on information from the "Deeper View: Content Claim" section above.</p>
 </div>
@@ -775,7 +791,7 @@ body.book #toc,body.book #preamble,body.
 </div>
 </div>
 <div class="sect3">
-<h4 id="associating-disparate-data"><a class="anchor" href="#associating-disparate-data"></a>Associating Disparate Data</h4>
+<h4 id="associating-disparate-data"><a class="anchor" href="nifi-in-depth.html#associating-disparate-data"></a>Associating Disparate Data</h4>
 <div class="paragraph">
 <p>One of the features of the Provenance Repository is that it allows efficient access to events that occur sequentially. A NiFi Reporting Task could then be used to iterate over these events and send them to an external service. If other systems are also sending similar types of events to this external system, it may be necessary to associate a NiFi FlowFile with another piece of information. For instance, if GetSFTP is used to retrieve data, NiFi refers to that FlowFile using its own, unique UUID. However, if the system that placed the file there referred to the file by filename, NiFi should have a mechanism to indicate that these are the same piece of data. This is accomplished by calling the ProvenanceReporter.associate() method and providing both the UUID of the FlowFile and the alternate name (the filename, in this example). Since the determination that two pieces of data are the same may be flow-dependent, it is often necessary for the DataFlow Manager to make this associatio
 n. A simple way of doing this is to use the UpdateAttribute processor and configure it to set the  "alternate.identifier" attribute. This automatically emits the "associate" event, using whatever value is added as the “alternate.identifier” attribute.</p>
 </div>
@@ -784,7 +800,7 @@ body.book #toc,body.book #preamble,body.
 </div>
 </div>
 <div class="sect1">
-<h2 id="closing-remarks"><a class="anchor" href="#closing-remarks"></a>Closing Remarks</h2>
+<h2 id="closing-remarks"><a class="anchor" href="nifi-in-depth.html#closing-remarks"></a>Closing Remarks</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Utilizing the copy-on-write, pass-by-reference, and immutability concepts in conjunction with the three repositories, NiFi is a fast, efficient, and robust enterprise dataflow platform. This document has covered specific implementations of pluggable interfaces. These include the Write-Ahead Log based implementation of the FlowFile Repository, the File based Provenance Repository, and the File based Content Repository. These implementations are the NiFi defaults but are pluggable so that, if needed, users can write their own to fulfill certain use-cases.</p>
@@ -797,7 +813,7 @@ body.book #toc,body.book #preamble,body.
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-08-26 11:39:00 -04:00
+Last updated 2016-08-29 08:05:45 -04:00
 </div>
 </div>
 </body>

Modified: nifi/site/trunk/docs/nifi-docs/html/overview.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/overview.html?rev=1758505&r1=1758504&r2=1758505&view=diff
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/html/overview.html (original)
+++ nifi/site/trunk/docs/nifi-docs/html/overview.html Tue Aug 30 23:27:48 2016
@@ -1,4 +1,20 @@
-<!DOCTYPE html>
+<!--
+                        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.
+                        -->
+                        <!DOCTYPE html>
 <html lang="en">
 <head>
 <meta charset="UTF-8">
@@ -439,18 +455,18 @@ body.book #toc,body.book #preamble,body.
 <div id="toc" class="toc">
 <div id="toctitle">Table of Contents</div>
 <ul class="sectlevel1">
-<li><a href="#what-is-apache-nifi">What is Apache NiFi?</a></li>
-<li><a href="#the-core-concepts-of-nifi">The core concepts of NiFi</a></li>
-<li><a href="#nifi-architecture">NiFi Architecture</a></li>
-<li><a href="#performance-expectations-and-characteristics-of-nifi">Performance Expectations and Characteristics of NiFi</a></li>
-<li><a href="#high-level-overview-of-key-nifi-features">High Level Overview of Key NiFi Features</a></li>
-<li><a href="#references">References</a></li>
+<li><a href="overview.html#what-is-apache-nifi">What is Apache NiFi?</a></li>
+<li><a href="overview.html#the-core-concepts-of-nifi">The core concepts of NiFi</a></li>
+<li><a href="overview.html#nifi-architecture">NiFi Architecture</a></li>
+<li><a href="overview.html#performance-expectations-and-characteristics-of-nifi">Performance Expectations and Characteristics of NiFi</a></li>
+<li><a href="overview.html#high-level-overview-of-key-nifi-features">High Level Overview of Key NiFi Features</a></li>
+<li><a href="overview.html#references">References</a></li>
 </ul>
 </div>
 </div>
 <div id="content">
 <div class="sect1">
-<h2 id="what-is-apache-nifi"><a class="anchor" href="#what-is-apache-nifi"></a>What is Apache NiFi?</h2>
+<h2 id="what-is-apache-nifi"><a class="anchor" href="overview.html#what-is-apache-nifi"></a>What is Apache NiFi?</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>Put simply NiFi was built to automate the flow of data between systems.  While
@@ -460,7 +476,7 @@ problem space has been around ever since
 where some of the systems created data and some of the systems consumed data.
 The problems and solution patterns that emerged have been discussed and
 articulated extensively.  A comprehensive and readily consumed form is found in
-the <em>Enterprise Integration Patterns</em> <a href="#eip">[eip]</a>.</p>
+the <em>Enterprise Integration Patterns</em> <a href="overview.html#eip">[eip]</a>.</p>
 </div>
 <div class="paragraph">
 <p>Some of the high-level challenges of dataflow include:</p>
@@ -502,8 +518,8 @@ the <em>Enterprise Integration Patterns<
 architecture.  Now though there are a number of active and rapidly evolving
 movements making dataflow a lot more interesting and a lot more vital to the
 success of a given enterprise.  These include things like; Service Oriented
-Architecture <a href="#soa">[soa]</a>, the rise of the API <a href="#api">[api]</a><a href="#api2">[api2]</a>, Internet of Things <a href="#iot">[iot]</a>,
-and Big Data <a href="#bigdata">[bigdata]</a>.  In addition, the level of rigor necessary for
+Architecture <a href="overview.html#soa">[soa]</a>, the rise of the API <a href="overview.html#api">[api]</a><a href="overview.html#api2">[api2]</a>, Internet of Things <a href="overview.html#iot">[iot]</a>,
+and Big Data <a href="overview.html#bigdata">[bigdata]</a>.  In addition, the level of rigor necessary for
 compliance, privacy, and security is constantly on the rise.  Even still with
 all of these new concepts coming about, the patterns and needs of dataflow are
 still largely the same.  The primary differences then are the scope of
@@ -514,11 +530,11 @@ modern dataflow challenges.</p>
 </div>
 </div>
 <div class="sect1">
-<h2 id="the-core-concepts-of-nifi"><a class="anchor" href="#the-core-concepts-of-nifi"></a>The core concepts of NiFi</h2>
+<h2 id="the-core-concepts-of-nifi"><a class="anchor" href="overview.html#the-core-concepts-of-nifi"></a>The core concepts of NiFi</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>NiFi&#8217;s fundamental design concepts closely relate to the main ideas of Flow Based
-Programming <a href="#fbp">[fbp]</a>.  Here are some of
+Programming <a href="overview.html#fbp">[fbp]</a>.  Here are some of
 the main NiFi concepts and how they map to FBP:</p>
 </div>
 <table class="tableblock frame-all grid-rows spread">
@@ -545,7 +561,7 @@ content of zero or more bytes.</p></td>
 <tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock">FlowFile Processor</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">Black Box</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Processors actually perform the work.  In <a href="#eip">[eip]</a> terms a processor is
+<td class="tableblock halign-left valign-top"><p class="tableblock">Processors actually perform the work.  In <a href="overview.html#eip">[eip]</a> terms a processor is
 doing some combination of data routing, transformation, or mediation between
 systems.  Processors have access to attributes of a given FlowFile and its
 content stream.  Processors can operate on zero or more FlowFiles in a given unit of work
@@ -578,7 +594,7 @@ composition of other components.</p></td
 </tbody>
 </table>
 <div class="paragraph">
-<p>This design model, also similar to <a href="#seda">[seda]</a>, provides many beneficial consequences that help NiFi
+<p>This design model, also similar to <a href="overview.html#seda">[seda]</a>, provides many beneficial consequences that help NiFi
 to be a very effective platform for building powerful and scalable dataflows.
 A few of these benefits include:</p>
 </div>
@@ -610,11 +626,11 @@ A few of these benefits include:</p>
 </div>
 </div>
 <div class="sect1">
-<h2 id="nifi-architecture"><a class="anchor" href="#nifi-architecture"></a>NiFi Architecture</h2>
+<h2 id="nifi-architecture"><a class="anchor" href="overview.html#nifi-architecture"></a>NiFi Architecture</h2>
 <div class="sectionbody">
 <div class="imageblock">
 <div class="content">
-<img src="./images/zero-master-node.png" alt="NiFi Architecture Diagram">
+<img src="images/zero-master-node.png" alt="NiFi Architecture Diagram">
 </div>
 </div>
 <div class="paragraph">
@@ -654,7 +670,7 @@ components of NiFi on the JVM are as fol
 </div>
 <div class="imageblock">
 <div class="content">
-<img src="./images/zero-master-cluster.png" alt="NiFi Cluster Architecture Diagram">
+<img src="images/zero-master-cluster.png" alt="NiFi Cluster Architecture Diagram">
 </div>
 </div>
 <div class="paragraph">
@@ -663,7 +679,7 @@ components of NiFi on the JVM are as fol
 </div>
 </div>
 <div class="sect1">
-<h2 id="performance-expectations-and-characteristics-of-nifi"><a class="anchor" href="#performance-expectations-and-characteristics-of-nifi"></a>Performance Expectations and Characteristics of NiFi</h2>
+<h2 id="performance-expectations-and-characteristics-of-nifi"><a class="anchor" href="overview.html#performance-expectations-and-characteristics-of-nifi"></a>Performance Expectations and Characteristics of NiFi</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>NiFi is designed to fully leverage the capabilities of the underlying host system
@@ -714,7 +730,7 @@ how well the application runs over time.
 </div>
 </div>
 <div class="sect1">
-<h2 id="high-level-overview-of-key-nifi-features"><a class="anchor" href="#high-level-overview-of-key-nifi-features"></a>High Level Overview of Key NiFi Features</h2>
+<h2 id="high-level-overview-of-key-nifi-features"><a class="anchor" href="overview.html#high-level-overview-of-key-nifi-features"></a>High Level Overview of Key NiFi Features</h2>
 <div class="sectionbody">
 <div class="paragraph">
 <p>This sections provides a 20,000 foot view of NiFi&#8217;s cornerstone fundamentals, so that you can understand the Apache NiFi big picture, and some of its the most interesting features. The key features categories include flow management, ease of use, security, extensible architecture, and flexible scaling model.</p>
@@ -865,7 +881,7 @@ about loading, and to exchange data on s
 </div>
 </div>
 <div class="sect1">
-<h2 id="references"><a class="anchor" href="#references"></a>References</h2>
+<h2 id="references"><a class="anchor" href="overview.html#references"></a>References</h2>
 <div class="sectionbody">
 <div class="ulist bibliography">
 <ul class="bibliography">
@@ -900,7 +916,7 @@ about loading, and to exchange data on s
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-08-26 11:39:00 -04:00
+Last updated 2016-08-29 08:05:45 -04:00
 </div>
 </div>
 </body>



Mime
View raw message