You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by xi...@apache.org on 2018/01/04 00:47:40 UTC

svn commit: r1820027 [10/10] - in /samza/site: ./ learn/documentation/0.14/ learn/documentation/0.14/api/ learn/documentation/0.14/api/javadocs/ learn/documentation/0.14/api/javadocs/org/apache/samza/ learn/documentation/0.14/api/javadocs/org/apache/sa...

Modified: samza/site/startup/download/index.html
URL: http://svn.apache.org/viewvc/samza/site/startup/download/index.html?rev=1820027&r1=1820026&r2=1820027&view=diff
==============================================================================
--- samza/site/startup/download/index.html (original)
+++ samza/site/startup/download/index.html Thu Jan  4 00:47:37 2018
@@ -145,7 +145,7 @@
 
 <p>Samza is released as a source artifact, and also through Maven.</p>
 
-<p>If you just want to play around with Samza for the first time, go to <a href="/startup/hello-samza/latest">Hello Samza</a>.</p>
+<p>If you just want to play around with Samza for the first time, go to <a href="/startup/hello-samza/0.14">Hello Samza</a>.</p>
 
 <h3 id="jdk-notice">JDK Notice</h3>
 
@@ -249,7 +249,7 @@
   <span class="nt">&lt;version&gt;</span>0.8.1<span class="nt">&lt;/version&gt;</span>
 <span class="nt">&lt;/dependency&gt;</span></code></pre></div>
 
-<p><a href="/startup/hello-samza/latest">Hello Samza</a> is a working Maven project that illustrates how to build projects that have Samza jobs in them.</p>
+<p><a href="/startup/hello-samza/0.14">Hello Samza</a> is a working Maven project that illustrates how to build projects that have Samza jobs in them.</p>
 
 <h4 id="repositories">Repositories</h4>
 

Modified: samza/site/startup/hello-samza/0.14/index.html
URL: http://svn.apache.org/viewvc/samza/site/startup/hello-samza/0.14/index.html?rev=1820027&r1=1820026&r2=1820027&view=diff
==============================================================================
--- samza/site/startup/hello-samza/0.14/index.html (original)
+++ samza/site/startup/hello-samza/0.14/index.html Thu Jan  4 00:47:37 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="/startup/hello-samza/0.14/index.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/startup/hello-samza/latest/index.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -59,18 +59,18 @@
           <div class="menu">
             <h1><i class="fa fa-rocket"></i> Getting Started</h1>
             <ul>
-              <li><a href="/startup/hello-samza/latest">Hello Samza</a></li>
+              <li><a href="/startup/hello-samza/0.14">Hello Samza</a></li>
               <li><a href="/startup/download">Download</a></li>
               <li><a href="/startup/preview">Feature Preview</a></li>
             </ul>
 
             <h1><i class="fa fa-book"></i> Learn</h1>
             <ul>
-              <li><a href="/learn/documentation/latest">Documentation</a></li>
-              <li><a href="/learn/documentation/latest/jobs/configuration-table.html">Configuration</a></li>
-              <li><a href="/learn/documentation/latest/container/metrics-table.html">Metrics</a></li>
-              <li><a href="/learn/documentation/latest/api/javadocs/">Javadocs</a></li>
-              <li><a href="/learn/tutorials/latest">Tutorials</a></li>
+              <li><a href="/learn/documentation/0.14">Documentation</a></li>
+              <li><a href="/learn/documentation/0.14/jobs/configuration-table.html">Configuration</a></li>
+              <li><a href="/learn/documentation/0.14/container/metrics-table.html">Metrics</a></li>
+              <li><a href="/learn/documentation/0.14/api/javadocs/">Javadocs</a></li>
+              <li><a href="/learn/tutorials/0.14">Tutorials</a></li>
               <li><a href="https://cwiki.apache.org/confluence/display/SAMZA/FAQ">FAQ</a></li>
               <li><a href="https://cwiki.apache.org/confluence/display/SAMZA/Apache+Samza">Wiki</a></li>
               <li><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=51812876">Papers &amp; Talks</a></li>
@@ -154,8 +154,7 @@
 <p>Check out the hello-samza project:</p>
 
 <div class="highlight"><pre><code class="bash">git clone https://git.apache.org/samza-hello-samza.git hello-samza
-<span class="nb">cd </span>hello-samza
-git checkout latest</code></pre></div>
+<span class="nb">cd </span>hello-samza</code></pre></div>
 
 <p>This project contains everything you&rsquo;ll need to run your first Samza jobs.</p>
 
@@ -183,7 +182,7 @@ git checkout latest</code></pre></div>
 
 <div class="highlight"><pre><code class="bash">mvn clean package
 mkdir -p deploy/samza
-tar -xvf ./target/hello-samza-0.14.0-SNAPSHOT-dist.tar.gz -C deploy/samza</code></pre></div>
+tar -xvf ./target/hello-samza-0.14.0-dist.tar.gz -C deploy/samza</code></pre></div>
 
 <h3 id="run-a-samza-job">Run a Samza Job</h3>
 
@@ -197,7 +196,7 @@ tar -xvf ./target/hello-samza-0.14.0-SNA
 
 <p>Pretty neat, right? Now, check out the YARN UI again (<a href="http://localhost:8088">http://localhost:8088</a>). This time around, you&rsquo;ll see your Samza job is running!</p>
 
-<p>If you can not see any output from Kafka consumer, you may have connection problem. Check <a href="../../../learn/tutorials/latest/run-hello-samza-without-internet.html">here</a>.</p>
+<p>If you can not see any output from Kafka consumer, you may have connection problem. Check <a href="../../../learn/tutorials/0.14/run-hello-samza-without-internet.html">here</a>.</p>
 
 <h3 id="generate-wikipedia-statistics">Generate Wikipedia Statistics</h3>
 
@@ -233,7 +232,7 @@ deploy/samza/bin/run-app.sh --config-fac
 
 <div class="highlight"><pre><code class="bash">bin/grid stop all</code></pre></div>
 
-<p>Congratulations! You&rsquo;ve now setup a local grid that includes YARN, Kafka, and ZooKeeper, and run a Samza job on it. Next up, check out the <a href="/learn/documentation/latest/introduction/background.html">Background</a> and <a href="/learn/documentation/latest/api/overview.html">API Overview</a> pages.</p>
+<p>Congratulations! You&rsquo;ve now setup a local grid that includes YARN, Kafka, and ZooKeeper, and run a Samza job on it. Next up, check out the <a href="/learn/documentation/0.14/introduction/background.html">Background</a> and <a href="/learn/documentation/0.14/api/overview.html">API Overview</a> pages.</p>
 
 
           </div>
@@ -251,7 +250,7 @@ deploy/samza/bin/run-app.sh --config-fac
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/startup/hello-samza/0.14/index.html" ) ) {
+        if ( $.fn.urlExists( "/startup/hello-samza/latest/index.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });

Modified: samza/site/startup/preview/index.html
URL: http://svn.apache.org/viewvc/samza/site/startup/preview/index.html?rev=1820027&r1=1820026&r2=1820027&view=diff
==============================================================================
--- samza/site/startup/preview/index.html (original)
+++ samza/site/startup/preview/index.html Thu Jan  4 00:47:37 2018
@@ -164,9 +164,9 @@
 <p>Want to skip all the details and get some hands on experience? There are three tutorials to help you get acquainted with running Samza applications in both YARN and embedded modes and programming with the high level API:</p>
 
 <ul>
-<li><a href="/learn/tutorials/latest/hello-samza-high-level-yarn.html">Yarn Deployment</a> - run a pre-existing Wikipedia application on YARN and observe the output.</li>
-<li><a href="/learn/tutorials/latest/hello-samza-high-level-code.html">High Level API Code Walkthrough</a> - walk through building the Wikipedia application, step by step.</li>
-<li><a href="/learn/tutorials/latest/hello-samza-high-level-zk.html">ZooKeeper Deployment</a> - run a pre-existing Wikipedia application with ZooKeeper coordination and observe the output.</li>
+<li><a href="/learn/tutorials/0.14/hello-samza-high-level-yarn.html">Yarn Deployment</a> - run a pre-existing Wikipedia application on YARN and observe the output.</li>
+<li><a href="/learn/tutorials/0.14/hello-samza-high-level-code.html">High Level API Code Walkthrough</a> - walk through building the Wikipedia application, step by step.</li>
+<li><a href="/learn/tutorials/0.14/hello-samza-high-level-zk.html">ZooKeeper Deployment</a> - run a pre-existing Wikipedia application with ZooKeeper coordination and observe the output.</li>
 </ul>
 
 <hr>
@@ -181,19 +181,19 @@
 
 <p>The Samza architecture has been overhauled with distinct layers to handle each stage of application development. The following diagram shows an overview of Apache Samza architecture with the high level API.</p>
 
-<p><img src="/img/latest/learn/documentation/introduction/layered-arch.png" alt="Architecture diagram" style="max-width: 100%; height: auto;" onclick="window.open(this.src)"></p>
+<p><img src="/img/0.14/learn/documentation/introduction/layered-arch.png" alt="Architecture diagram" style="max-width: 100%; height: auto;" onclick="window.open(this.src)"></p>
 
 <p>There are four layers in the architecture. The following sections describe each of the layers.</p>
 
 <h4 id="i.-high-level-api">I. High Level API</h4>
 
-<p>The high level API provides the libraries to define your application logic. The <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/application/StreamApplication.html">StreamApplication</a> is the central abstraction which your application must implement. You start by declaring your inputs as instances of <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/MessageStream.html">MessageStream</a>. Then you can apply operators on each MessageStream like map, filter, window, and join to define the whole end-to-end data processing in a single program.</p>
+<p>The high level API provides the libraries to define your application logic. The <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/application/StreamApplication.html">StreamApplication</a> is the central abstraction which your application must implement. You start by declaring your inputs as instances of <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/operators/MessageStream.html">MessageStream</a>. Then you can apply operators on each MessageStream like map, filter, window, and join to define the whole end-to-end data processing in a single program.</p>
 
 <p>For a deeper dive into the high level API, see <a href="#high-level-api">high level API section</a> below.</p>
 
 <h4 id="ii.-applicationrunner">II. ApplicationRunner</h4>
 
-<p>Samza uses an <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/runtime/ApplicationRunner.html">ApplicationRunner</a> to run a stream application. The ApplicationRunner generates the configs (such as input/output streams), creates intermediate streams, and starts the execution. There are two types of ApplicationRunner:</p>
+<p>Samza uses an <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/runtime/ApplicationRunner.html">ApplicationRunner</a> to run a stream application. The ApplicationRunner generates the configs (such as input/output streams), creates intermediate streams, and starts the execution. There are two types of ApplicationRunner:</p>
 
 <p><strong>RemoteApplicationRunner</strong> - submits the application to a remote cluster. This runner is invoked via the <em>run-app.sh</em> script. To use RemoteApplicationRunner, set the following configurations</p>
 
@@ -201,7 +201,7 @@
 <span class="na">app.class</span><span class="o">=</span><span class="s">com.company.job.YourStreamApplication</span>
 <span class="na">job.factory.class</span><span class="o">=</span><span class="s">org.apache.samza.job.yarn.YarnJobFactory</span></code></pre></div>
 
-<p>Then use <em>run-app.sh</em> to run the application in the remote cluster. The script will invoke the RemoteApplicationRunner, which will launch one or more jobs using the factory specified with <em>job.factory.class</em>. Follow the <a href="/learn/tutorials/latest/hello-samza-high-level-yarn.html">yarn deployment tutorial</a> to try it out.</p>
+<p>Then use <em>run-app.sh</em> to run the application in the remote cluster. The script will invoke the RemoteApplicationRunner, which will launch one or more jobs using the factory specified with <em>job.factory.class</em>. Follow the <a href="/learn/tutorials/0.14/hello-samza-high-level-yarn.html">yarn deployment tutorial</a> to try it out.</p>
 
 <p><strong>LocalApplicationRunner</strong> - runs the application in the JVM process of the runner. For example, to launch your application on multiple machines using ZooKeeper for coordination, you can run multiple instances of LocalApplicationRunner on various machines. After the applications load they will start cordinatinating their actions through ZooKeeper. Here is an example to run the StreamApplication in your program using the LocalApplicationRunner:</p>
 
@@ -217,7 +217,7 @@
 <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">&quot;Application completed with status &quot;</span> <span class="o">+</span> <span class="n">localRunner</span><span class="o">.</span><span class="na">status</span><span class="o">(</span><span class="n">app</span><span class="o">));</span>
 <span class="o">}</span></code></pre></div>
 
-<p>Follow the <a href="/learn/tutorials/latest/hello-samza-high-level-zk.html">ZooKeeper deployment tutorial</a> to try it out.</p>
+<p>Follow the <a href="/learn/tutorials/0.14/hello-samza-high-level-zk.html">ZooKeeper deployment tutorial</a> to try it out.</p>
 
 <h5 id="execution-plan">Execution Plan</h5>
 
@@ -230,7 +230,7 @@
 
 <p>To view the plan, open the <em>bin/plan.html</em> file in a browser. Here&rsquo;s a sample plan visualization:</p>
 
-<p><img src="/img/latest/learn/documentation/introduction/execution-plan.png" alt="Execution plan" style="max-width: 100%; height: auto;" onclick="window.open(this.src)"/></p>
+<p><img src="/img/0.14/learn/documentation/introduction/execution-plan.png" alt="Execution plan" style="max-width: 100%; height: auto;" onclick="window.open(this.src)"/></p>
 
 <h4 id="iii.-execution-models">III. Execution Models</h4>
 
@@ -249,7 +249,7 @@
 
 <h4 id="iv.-processor">IV. Processor</h4>
 
-<p>The lowest execution unit of a Samza application is the processor. It reads the configs generated from the <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/runtime/ApplicationRunner.html">ApplicationRunner</a> and processes the input stream partitions assigned by the JobCoordinator. It can access local state using a <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/storage/kv/KeyValueStore.html">KeyValueStore</a> implementation (e.g. RocksDB or in-memory) and remote state (e.g. REST service) using multithreading.</p>
+<p>The lowest execution unit of a Samza application is the processor. It reads the configs generated from the <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/runtime/ApplicationRunner.html">ApplicationRunner</a> and processes the input stream partitions assigned by the JobCoordinator. It can access local state using a <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/storage/kv/KeyValueStore.html">KeyValueStore</a> implementation (e.g. RocksDB or in-memory) and remote state (e.g. REST service) using multithreading.</p>
 
 <hr>
 
@@ -272,7 +272,7 @@
 
 <h3 id="streamapplication">StreamApplication</h3>
 
-<p>When writing your stream processing application using the Samza high-level API, you should implement a <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/application/StreamApplication.html">StreamApplication</a> and define your processing logic in the init method.</p>
+<p>When writing your stream processing application using the Samza high-level API, you should implement a <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/application/StreamApplication.html">StreamApplication</a> and define your processing logic in the init method.</p>
 
 <div class="highlight"><pre><code class="java"><span class="kd">public</span> <span class="kt">void</span> <span class="nf">init</span><span class="o">(</span><span class="n">StreamGraph</span> <span class="n">graph</span><span class="o">,</span> <span class="n">Config</span> <span class="n">config</span><span class="o">)</span> <span class="o">{</span> <span class="err">…</span> <span class="o">}</span></code></pre></div>
 
@@ -344,11 +344,11 @@
 
 <h2 id="operators">Operators</h2>
 
-<p>The high level API supports common operators like map, flatmap, filter, merge, joins, and windowing on streams. Most of these operators accept corresponding Functions and these functions are <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/functions/InitableFunction.html">Initable</a>.</p>
+<p>The high level API supports common operators like map, flatmap, filter, merge, joins, and windowing on streams. Most of these operators accept corresponding Functions and these functions are <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/operators/functions/InitableFunction.html">Initable</a>.</p>
 
 <h3 id="map">Map</h3>
 
-<p>Applies the provided 1:1 <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/functions/MapFunction.html">MapFunction</a> to each element in the MessageStream and returns the transformed MessageStream. The MapFunction takes in a single message and returns a single message (potentially of a different type).</p>
+<p>Applies the provided 1:1 <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/operators/functions/MapFunction.html">MapFunction</a> to each element in the MessageStream and returns the transformed MessageStream. The MapFunction takes in a single message and returns a single message (potentially of a different type).</p>
 
 <div class="highlight"><pre><code class="java"><span class="n">MessageStream</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">&gt;</span> <span class="n">numbers</span> <span class="o">=</span> <span class="o">...</span>
 <span class="n">MessageStream</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">&gt;</span> <span class="n">tripled</span><span class="o">=</span> <span class="n">numbers</span><span class="o">.</span><span class="na">map</span><span class="o">(</span><span class="n">m</span> <span class="o">-&gt;</span> <span class="n">m</span> <span class="o">*</span> <span class="mi">3</span><span class="o">)</span>
@@ -356,7 +356,7 @@
 
 <h3 id="flatmap">Flatmap</h3>
 
-<p>Applies the provided 1:n <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/functions/FlatMapFunction.html">FlatMapFunction</a> to each element in the MessageStream and returns the transformed MessageStream. The FlatMapFunction takes in a single message and returns zero or more messages.</p>
+<p>Applies the provided 1:n <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/operators/functions/FlatMapFunction.html">FlatMapFunction</a> to each element in the MessageStream and returns the transformed MessageStream. The FlatMapFunction takes in a single message and returns zero or more messages.</p>
 
 <div class="highlight"><pre><code class="java"><span class="n">MessageStream</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="n">sentence</span> <span class="o">=</span> <span class="o">...</span>
 <span class="c1">// Parse the sentence into its individual words splitting by space</span>
@@ -365,7 +365,7 @@
 
 <h3 id="filter">Filter</h3>
 
-<p>Applies the provided <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/functions/FilterFunction.html">FilterFunction</a> to the MessageStream and returns the filtered MessageStream. The FilterFunction is a predicate that specifies whether a message should be retained in the filtered stream. Messages for which the FilterFunction returns false are filtered out.</p>
+<p>Applies the provided <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/operators/functions/FilterFunction.html">FilterFunction</a> to the MessageStream and returns the filtered MessageStream. The FilterFunction is a predicate that specifies whether a message should be retained in the filtered stream. Messages for which the FilterFunction returns false are filtered out.</p>
 
 <div class="highlight"><pre><code class="java"><span class="n">MessageStream</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="n">words</span> <span class="o">=</span> <span class="o">...</span>
 <span class="c1">// Extract only the long words</span>
@@ -398,9 +398,9 @@
 
 <p>The merge transform preserves the order of each MessageStream, so if message <code>m1</code> appears before <code>m2</code> in any provided stream, then, <code>m1</code> also appears before <code>m2</code> in the merged stream.</p>
 
-<p>As an alternative to the <code>merge</code> instance method, you also can use the <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/MessageStream.html#mergeAll-java.util.Collection-">MessageStream#mergeAll</a> static method to merge MessageStreams without operating on an initial stream.</p>
+<p>As an alternative to the <code>merge</code> instance method, you also can use the <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/operators/MessageStream.html#mergeAll-java.util.Collection-">MessageStream#mergeAll</a> static method to merge MessageStreams without operating on an initial stream.</p>
 
-<h3 id="sendto-(stream)">SendTo (stream)</h3>
+<h3 id="sendto">SendTo</h3>
 
 <p>Sends all messages from this MessageStream to the provided OutputStream. You can specify the key and the value to be used for the outgoing message.</p>
 
@@ -412,18 +412,9 @@
                                                    <span class="n">KVSerde</span><span class="o">.</span><span class="na">of</span><span class="o">(</span><span class="k">new</span> <span class="n">StringSerde</span><span class="o">(),</span> <span class="k">new</span> <span class="n">StringSerde</span><span class="o">()));</span>
 <span class="n">keyedPageViews</span><span class="o">.</span><span class="na">sendTo</span><span class="o">(</span><span class="n">userRegions</span><span class="o">);</span></code></pre></div>
 
-<h3 id="sendto-(table)">SendTo (table)</h3>
-
-<p>Sends all messages from this MessageStream to the provided table, the expected message type is KV.</p>
-
-<div class="highlight"><pre><code class="java"><span class="c1">// Write a new message with memberId as the key and profile as the value to a table.</span>
-  <span class="n">streamGraph</span><span class="o">.</span><span class="na">getInputStream</span><span class="o">(</span><span class="s">&quot;Profile&quot;</span><span class="o">,</span> <span class="k">new</span> <span class="n">NoOpSerde</span><span class="o">&lt;</span><span class="n">Profile</span><span class="o">&gt;())</span>
-      <span class="o">.</span><span class="na">map</span><span class="o">(</span><span class="n">m</span> <span class="o">-&gt;</span> <span class="n">KV</span><span class="o">.</span><span class="na">of</span><span class="o">(</span><span class="n">m</span><span class="o">.</span><span class="na">getMemberId</span><span class="o">(),</span> <span class="n">m</span><span class="o">))</span>
-      <span class="o">.</span><span class="na">sendTo</span><span class="o">(</span><span class="n">table</span><span class="o">);</span></code></pre></div>
-
 <h3 id="sink">Sink</h3>
 
-<p>Allows sending messages from this MessageStream to an output system using the provided <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/functions/SinkFunction.html">SinkFunction</a>.</p>
+<p>Allows sending messages from this MessageStream to an output system using the provided <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/operators/functions/SinkFunction.html">SinkFunction</a>.</p>
 
 <p>This offers more control than sendTo since the SinkFunction has access to the <code>MessageCollector</code> and the <code>TaskCoordinator</code>. For instance, you can choose to manually commit offsets, or shut-down the job using the TaskCoordinator APIs. This operator can also be used to send messages to non-Samza systems (e.g. remote databases, REST services, etc.)</p>
 
@@ -435,9 +426,9 @@
                          <span class="err">“</span><span class="n">TransformedPageViewEvent</span><span class="err">”</span><span class="o">),</span> <span class="n">msg</span><span class="o">));</span>
 <span class="o">}</span> <span class="o">)</span></code></pre></div>
 
-<h3 id="join-(stream-stream)">Join (stream-stream)</h3>
+<h3 id="join">Join</h3>
 
-<p>The stream-stream Join operator joins messages from two MessageStreams using the provided pairwise <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/functions/JoinFunction.html">JoinFunction</a>. Messages are joined when the keys extracted from messages from the first stream match keys extracted from messages in the second stream. Messages in each stream are retained for the provided ttl duration and join results are emitted as matches are found.</p>
+<p>The Join operator joins messages from two MessageStreams using the provided pairwise <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/operators/functions/JoinFunction.html">JoinFunction</a>. Messages are joined when the keys extracted from messages from the first stream match keys extracted from messages in the second stream. Messages in each stream are retained for the provided ttl duration and join results are emitted as matches are found.</p>
 
 <div class="highlight"><pre><code class="java"><span class="c1">// Joins a stream of OrderRecord with a stream of ShipmentRecord by orderId with a TTL of 20 minutes.</span>
 <span class="c1">// Results are produced to a new stream of FulfilledOrderRecord.</span>
@@ -468,44 +459,15 @@
    <span class="o">}</span>
  <span class="o">}</span></code></pre></div>
 
-<h3 id="join-(stream-table)">Join (stream-table)</h3>
-
-<p>The stream-table Join operator joins messages from a MessageStream using the provided <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/functions/StreamTableJoinFunction.html">StreamTableJoinFunction</a>. Messages from the input stream are joined with record in table using key extracted from input messages. The join function is invoked with both the message and the record. If a record is not found in the table, a null value is provided; the join function can choose to return null (inner join) or an output message (left outer join). For join to function properly, it is important to ensure the input stream and table are partitioned using the same key as this impacts the physical placement of data. </p>
-
-<div class="highlight"><pre><code class="java"><span class="n">streamGraph</span><span class="o">.</span><span class="na">getInputStream</span><span class="o">(</span><span class="s">&quot;PageView&quot;</span><span class="o">,</span> <span class="k">new</span> <span class="n">NoOpSerde</span><span class="o">&lt;</span><span class="n">PageView</span><span class="o">&gt;())</span>
-      <span class="o">.</span><span class="na">partitionBy</span><span class="o">(</span><span class="nl">PageView:</span><span class="o">:</span><span class="n">getMemberId</span><span class="o">,</span> <span class="n">v</span> <span class="o">-&gt;</span> <span class="n">v</span><span class="o">,</span> <span class="s">&quot;p1&quot;</span><span class="o">)</span>
-      <span class="o">.</span><span class="na">join</span><span class="o">(</span><span class="n">table</span><span class="o">,</span> <span class="k">new</span> <span class="n">PageViewToProfileJoinFunction</span><span class="o">())</span>
-      <span class="o">...</span></code></pre></div>
-
-<div class="highlight"><pre><code class="java"><span class="lineno"> 1</span> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">PageViewToProfileJoinFunction</span> <span class="kd">implements</span> <span class="n">StreamTableJoinFunction</span>
-<span class="lineno"> 2</span>     <span class="o">&lt;</span><span class="n">Integer</span><span class="o">,</span> <span class="n">KV</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">,</span> <span class="n">PageView</span><span class="o">&gt;,</span> <span class="n">KV</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">,</span> <span class="n">Profile</span><span class="o">&gt;,</span> <span class="n">EnrichedPageView</span><span class="o">&gt;</span> <span class="o">{</span>
-<span class="lineno"> 3</span>   <span class="nd">@Override</span>
-<span class="lineno"> 4</span>   <span class="kd">public</span> <span class="n">EnrichedPageView</span> <span class="nf">apply</span><span class="o">(</span><span class="n">KV</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">,</span> <span class="n">PageView</span><span class="o">&gt;</span> <span class="n">m</span><span class="o">,</span> <span class="n">KV</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">,</span> <span class="n">Profile</span><span class="o">&gt;</span> <span class="n">r</span><span class="o">)</span> <span class="o">{</span>
-<span class="lineno"> 5</span>     <span class="k">return</span> <span class="n">r</span> <span class="o">!=</span> <span class="kc">null</span> <span class="o">?</span> 
-<span class="lineno"> 6</span>         <span class="k">new</span> <span class="nf">EnrichedPageView</span><span class="o">(...)</span>
-<span class="lineno"> 7</span>       <span class="o">:</span> <span class="kc">null</span><span class="o">;</span>
-<span class="lineno"> 8</span>   <span class="o">}</span>
-<span class="lineno"> 9</span> 
-<span class="lineno">10</span>   <span class="nd">@Override</span>
-<span class="lineno">11</span>   <span class="kd">public</span> <span class="n">Integer</span> <span class="nf">getMessageKey</span><span class="o">(</span><span class="n">KV</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">,</span> <span class="n">PageView</span><span class="o">&gt;</span> <span class="n">message</span><span class="o">)</span> <span class="o">{</span>
-<span class="lineno">12</span>     <span class="k">return</span> <span class="n">message</span><span class="o">.</span><span class="na">getKey</span><span class="o">();</span>
-<span class="lineno">13</span>   <span class="o">}</span>
-<span class="lineno">14</span> 
-<span class="lineno">15</span>   <span class="nd">@Override</span>
-<span class="lineno">16</span>   <span class="kd">public</span> <span class="n">Integer</span> <span class="nf">getRecordKey</span><span class="o">(</span><span class="n">KV</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">,</span> <span class="n">Profile</span><span class="o">&gt;</span> <span class="n">record</span><span class="o">)</span> <span class="o">{</span>
-<span class="lineno">17</span>     <span class="k">return</span> <span class="n">record</span><span class="o">.</span><span class="na">getKey</span><span class="o">();</span>
-<span class="lineno">18</span>   <span class="o">}</span>
-<span class="lineno">19</span> <span class="o">}</span></code></pre></div>
-
 <h3 id="window">Window</h3>
 
 <h4 id="windowing-concepts">Windowing Concepts</h4>
 
 <p><strong>Windows, Triggers, and WindowPanes</strong>: The window operator groups incoming messages in the MessageStream into finite windows. Each emitted result contains one or more messages in the window and is called a WindowPane.</p>
 
-<p>A window can have one or more associated triggers which determine when results from the window are emitted. Triggers can be either <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/windows/Window.html#setEarlyTrigger-org.apache.samza.operators.triggers.Trigger-">early triggers</a> that allow emitting results speculatively before all data for the window has arrived, or late triggers that allow handling late messages for the window.</p>
+<p>A window can have one or more associated triggers which determine when results from the window are emitted. Triggers can be either <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/operators/windows/Window.html#setEarlyTrigger-org.apache.samza.operators.triggers.Trigger-">early triggers</a> that allow emitting results speculatively before all data for the window has arrived, or late triggers that allow handling late messages for the window.</p>
 
-<p><strong>Aggregator Function</strong>: By default, the emitted WindowPane will contain all the messages for the window. Instead of retaining all messages, you typically define a more compact data structure for the WindowPane and update it incrementally as new messages arrive, e.g. for keeping a count of messages in the window. To do this, you can provide an aggregating <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/functions/FoldLeftFunction.html">FoldLeftFunction</a> which is invoked for each incoming message added to the window and defines how to update the WindowPane for that message.</p>
+<p><strong>Aggregator Function</strong>: By default, the emitted WindowPane will contain all the messages for the window. Instead of retaining all messages, you typically define a more compact data structure for the WindowPane and update it incrementally as new messages arrive, e.g. for keeping a count of messages in the window. To do this, you can provide an aggregating <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/operators/functions/FoldLeftFunction.html">FoldLeftFunction</a> which is invoked for each incoming message added to the window and defines how to update the WindowPane for that message.</p>
 
 <p><strong>Accumulation Mode</strong>: A window’s accumulation mode determines how results emitted from a window relate to previously emitted results for the same window. This is particularly useful when the window is configured with early or late triggers. The accumulation mode can either be discarding or accumulating.</p>
 
@@ -559,26 +521,6 @@
      <span class="n">integers</span><span class="o">.</span><span class="na">window</span><span class="o">(</span><span class="n">Windows</span><span class="o">.</span><span class="na">tumblingWindow</span><span class="o">(</span><span class="n">Duration</span><span class="o">.</span><span class="na">ofSeconds</span><span class="o">(</span><span class="mi">3</span><span class="o">),</span> <span class="n">initialValue</span><span class="o">,</span> <span class="n">aggregateFunction</span><span class="o">,</span>
          <span class="k">new</span> <span class="nf">IntegerSerde</span><span class="o">()))</span></code></pre></div>
 
-<h3 id="table">Table</h3>
-
-<p>A Table represents a dataset that can be accessed by keys, and is one of the building blocks of the Samza high level API; the main motivation behind it is to support stream-table joins. The current K/V store is leveraged to provide backing store for local tables. More variations such as direct access and composite tables will be supported in the future. The usage of a table typically follows three steps:</p>
-
-<ol>
-<li>Create a table</li>
-<li>Populate the table using the sendTo() operator</li>
-<li>Join a stream with the table using the join() operator</li>
-</ol>
-
-<div class="highlight"><pre><code class="java"><span class="lineno">1</span> <span class="kd">final</span> <span class="n">StreamApplication</span> <span class="n">app</span> <span class="o">=</span> <span class="o">(</span><span class="n">streamGraph</span><span class="o">,</span> <span class="n">cfg</span><span class="o">)</span> <span class="o">-&gt;</span> <span class="o">{</span>
-<span class="lineno">2</span>   <span class="n">Table</span><span class="o">&lt;</span><span class="n">KV</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">,</span> <span class="n">Profile</span><span class="o">&gt;&gt;</span> <span class="n">table</span> <span class="o">=</span> <span class="n">streamGraph</span><span class="o">.</span><span class="na">getTable</span><span class="o">(</span><span class="k">new</span> <span class="n">InMemoryTableDescriptor</span><span class="o">(</span><span class="s">&quot;t1&quot;</span><span class="o">)</span>
-<span class="lineno">3</span>       <span class="o">.</span><span class="na">withSerde</span><span class="o">(</span><span class="n">KVSerde</span><span class="o">.</span><span class="na">of</span><span class="o">(</span><span class="k">new</span> <span class="n">IntegerSerde</span><span class="o">(),</span> <span class="k">new</span> <span class="n">ProfileJsonSerde</span><span class="o">())));</span>
-<span class="lineno">4</span>   <span class="o">...</span>
-<span class="lineno">5</span> <span class="o">};</span></code></pre></div>
-
-<p>Example above creates a TableDescriptor object, which contains all information about a table. The currently supported table types are <a href="https://github.com/apache/samza/blob/master/samza-kv-inmemory/src/main/java/org/apache/samza/storage/kv/inmemory/InMemoryTableDescriptor.java">InMemoryTableDescriptor</a> and <a href="https://github.com/apache/samza/blob/master/samza-kv-rocksdb/src/main/java/org/apache/samza/storage/kv/rocksdb/RocksDbTableDescriptor.java">RocksDbTableDescriptor</a>. Notice the type of records in a table is KV, and <a href="https://samza.apache.org/learn/documentation/latest/container/serialization.html">Serdes</a> for both key and value of records needs to be defined (line 4). Additional parameters can be added based on individual table types. </p>
-
-<p>More details about step 2 and 3 can be found at operator section.</p>
-
 <hr>
 
 <h2 id="flexible-deployment-model">Flexible Deployment Model</h2>
@@ -603,7 +545,7 @@
 
 <h4 id="external-partition-management">External Partition Management</h4>
 
-<p>With external partition management, Samza doesn’t manage the partitioning by itself. Instead it uses a <code>PassthroughJobCoordinator</code> which honors whatever partition mapping is provided by the <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/container/grouper/stream/SystemStreamPartitionGrouper.html">SystemStreamPartitionGrouper</a>. There are two common patterns for external partition management:</p>
+<p>With external partition management, Samza doesn’t manage the partitioning by itself. Instead it uses a <code>PassthroughJobCoordinator</code> which honors whatever partition mapping is provided by the <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/container/grouper/stream/SystemStreamPartitionGrouper.html">SystemStreamPartitionGrouper</a>. There are two common patterns for external partition management:</p>
 
 <ul>
 <li><strong>Using high level Kafka consumer</strong> - partition assignment is done by the high level Kafka consumer itself. To use this model, you need to implement and configure a SystemFactory which provides the Kafka high level consumer. Then you need to configure <em>job.systemstreampartition.grouper.factory</em> to <em>org.apache.samza.container.grouper.stream.AllSspToSingleTaskGrouper</em> so Kafka&rsquo;s partition assignments all go to one task.</li>
@@ -647,7 +589,7 @@ There is one leader processor which gene
 
 <p>The following diagram shows the relationships of the coordinators in the ZooKeeper coordination service implementation.</p>
 
-<p><img src="/img/latest/learn/documentation/introduction/coordination-service.png" alt="Coordination service diagram" style="max-width: 100%; height: auto;" onclick="window.open(this.src)"></p>
+<p><img src="/img/0.14/learn/documentation/introduction/coordination-service.png" alt="Coordination service diagram" style="max-width: 100%; height: auto;" onclick="window.open(this.src)"></p>
 
 <p>Here are a few important details about the coordination service:</p>
 
@@ -661,7 +603,7 @@ There is one leader processor which gene
 
 <p>Embedded deployment is designed to help users who want more control over the deployment of their application. So it is the user&rsquo;s responsibility to configure and deploy the processors. In case of ZooKeeper coordination, you also need to configure the URL for an instance of ZooKeeper.</p>
 
-<p>Additionally, each processor requires a unique ID to be used with the coordination service. If location affinity is important, this ID should be unique for each processor on a specific hostname (assuming local Storage services). To address this requirement, Samza uses a <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/runtime/ProcessorIdGenerator.html">ProcessorIdGenerator</a> to provide the ID for each processor. If no generator is explicitly configured, the default one will create a UUID for each processor.</p>
+<p>Additionally, each processor requires a unique ID to be used with the coordination service. If location affinity is important, this ID should be unique for each processor on a specific hostname (assuming local Storage services). To address this requirement, Samza uses a <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/runtime/ProcessorIdGenerator.html">ProcessorIdGenerator</a> to provide the ID for each processor. If no generator is explicitly configured, the default one will create a UUID for each processor.</p>
 
 <h4 id="configuration">Configuration</h4>
 
@@ -701,7 +643,7 @@ There is one leader processor which gene
 
 <p>In the code above, <code>WikipediaApplication</code> is an application written with the <a href="#high-level-api">high level API</a>.</p>
 
-<p>Check out the <a href="/learn/tutorials/latest/hello-samza-high-level-zk.html">tutorial</a> to run this application with ZooKeeper coordination on your machine now.</p>
+<p>Check out the <a href="/learn/tutorials/0.14/hello-samza-high-level-zk.html">tutorial</a> to run this application with ZooKeeper coordination on your machine now.</p>
 
 <h4 id="deployment-and-scaling">Deployment and Scaling</h4>
 

Modified: samza/site/startup/releases/0.14/release-notes.html
URL: http://svn.apache.org/viewvc/samza/site/startup/releases/0.14/release-notes.html?rev=1820027&r1=1820026&r2=1820027&view=diff
==============================================================================
--- samza/site/startup/releases/0.14/release-notes.html (original)
+++ samza/site/startup/releases/0.14/release-notes.html Thu Jan  4 00:47:37 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="/startup/releases/0.14/release-notes.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/startup/releases/latest/release-notes.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -59,18 +59,18 @@
           <div class="menu">
             <h1><i class="fa fa-rocket"></i> Getting Started</h1>
             <ul>
-              <li><a href="/startup/hello-samza/latest">Hello Samza</a></li>
+              <li><a href="/startup/hello-samza/0.14">Hello Samza</a></li>
               <li><a href="/startup/download">Download</a></li>
               <li><a href="/startup/preview">Feature Preview</a></li>
             </ul>
 
             <h1><i class="fa fa-book"></i> Learn</h1>
             <ul>
-              <li><a href="/learn/documentation/latest">Documentation</a></li>
-              <li><a href="/learn/documentation/latest/jobs/configuration-table.html">Configuration</a></li>
-              <li><a href="/learn/documentation/latest/container/metrics-table.html">Metrics</a></li>
-              <li><a href="/learn/documentation/latest/api/javadocs/">Javadocs</a></li>
-              <li><a href="/learn/tutorials/latest">Tutorials</a></li>
+              <li><a href="/learn/documentation/0.14">Documentation</a></li>
+              <li><a href="/learn/documentation/0.14/jobs/configuration-table.html">Configuration</a></li>
+              <li><a href="/learn/documentation/0.14/container/metrics-table.html">Metrics</a></li>
+              <li><a href="/learn/documentation/0.14/api/javadocs/">Javadocs</a></li>
+              <li><a href="/learn/tutorials/0.14">Tutorials</a></li>
               <li><a href="https://cwiki.apache.org/confluence/display/SAMZA/FAQ">FAQ</a></li>
               <li><a href="https://cwiki.apache.org/confluence/display/SAMZA/Apache+Samza">Wiki</a></li>
               <li><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=51812876">Papers &amp; Talks</a></li>
@@ -148,10 +148,19 @@
 -->
 
 <ol>
-<li><a href="#release-notes">Release Notes for Samza-latest version</a></li>
+<li><a href="#download">Download</a></li>
+<li><a href="#release-notes-for-0.14">Release Notes for Samza-0.14 version</a></li>
 <li><a href="#upgrade-notes">Upgrade Notes</a></li>
 </ol>
 
+<h2 id="download">Download</h2>
+
+<p>All Samza JARs are published through <a href="https://repository.apache.org/content/groups/public/org/apache/samza/">Apache&rsquo;s Maven repository</a>. See <a href="../download/index.html">here</a> for more details.</p>
+
+<h2 id="source-release">Source Release</h2>
+
+<p><a href="http://www.apache.org/dyn/closer.lua/samza/0.14.*">samza-sources-0.14.tgz</a></p>
+
 <h2 id="release-notes">Release Notes</h2>
 
 <!-- Add notes on new features, modified behavior of existing features, operational/performance improvements, new tools etc -->
@@ -179,7 +188,7 @@
 
 <ul>
 <li>Introduced a new <strong>mandatory</strong> configuration - <code>job.coordination.utils.factory</code>. Read more about it
-<a href="../../learn/latest/configuration.html">here</a>. <br />This config is applicable to all Samza
+<a href="../../learn/0.14/configuration.html">here</a>. <br />This config is applicable to all Samza
 applications deployed using the <code>LocalApplicationRunner</code> (that is, non-yarn deployments).</li>
 </ul>
 
@@ -206,7 +215,7 @@ If you have a custom <strong>System</str
 boolean clearStream(StreamSpec streamSpec);
 </code>
 <br />
-Read more about it in the <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/system/SystemAdmin.html">API docs</a>.</li>
+Read more about it in the <a href="/learn/documentation/0.14/api/javadocs/org/apache/samza/system/SystemAdmin.html">API docs</a>.</li>
 </ul>
 
 
@@ -225,7 +234,7 @@ Read more about it in the <a href="/lear
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/startup/releases/0.14/release-notes.html" ) ) {
+        if ( $.fn.urlExists( "/startup/releases/latest/release-notes.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });