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:31:43 UTC

svn commit: r1820026 [23/24] - in /samza/site: ./ img/latest/learn/documentation/hadoop/ img/latest/learn/documentation/rest/ learn/documentation/latest/ learn/documentation/latest/api/ learn/documentation/latest/api/javadocs/ learn/documentation/lates...

Modified: samza/site/learn/tutorials/latest/deploy-samza-job-from-hdfs.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/deploy-samza-job-from-hdfs.html?rev=1820026&r1=1820025&r2=1820026&view=diff
==============================================================================
--- samza/site/learn/tutorials/latest/deploy-samza-job-from-hdfs.html (original)
+++ samza/site/learn/tutorials/latest/deploy-samza-job-from-hdfs.html Thu Jan  4 00:31:39 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="http://samza.apache.org/learn/tutorials/0.13/deploy-samza-job-from-hdfs.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/deploy-samza-job-from-hdfs.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -99,6 +99,7 @@
             <h1><i class="fa fa-history"></i> Archive</h1>
             <ul>
               <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
               <li><a href="/archive/index.html#13">0.13</a></li>
               <li><a href="/archive/index.html#12">0.12</a></li>
               <li><a href="/archive/index.html#11">0.11</a></li>
@@ -150,7 +151,7 @@
 
 <h3 id="upload-the-package">Upload the package</h3>
 
-<div class="highlight"><pre><code class="bash">hadoop fs -put ./target/hello-samza-0.13.1-dist.tar.gz /path/for/tgz</code></pre></div>
+<div class="highlight"><pre><code class="bash">hadoop fs -put ./target/hello-samza-0.14.0-dist.tar.gz /path/for/tgz</code></pre></div>
 
 <h3 id="add-hdfs-configuration">Add HDFS configuration</h3>
 
@@ -180,7 +181,7 @@
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/learn/tutorials/0.13/deploy-samza-job-from-hdfs.html" ) ) {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/deploy-samza-job-from-hdfs.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });

Modified: samza/site/learn/tutorials/latest/deploy-samza-to-CDH.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/deploy-samza-to-CDH.html?rev=1820026&r1=1820025&r2=1820026&view=diff
==============================================================================
--- samza/site/learn/tutorials/latest/deploy-samza-to-CDH.html (original)
+++ samza/site/learn/tutorials/latest/deploy-samza-to-CDH.html Thu Jan  4 00:31:39 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="http://samza.apache.org/learn/tutorials/0.13/deploy-samza-to-CDH.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/deploy-samza-to-CDH.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -99,6 +99,7 @@
             <h1><i class="fa fa-history"></i> Archive</h1>
             <ul>
               <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
               <li><a href="/archive/index.html#13">0.13</a></li>
               <li><a href="/archive/index.html#12">0.12</a></li>
               <li><a href="/archive/index.html#11">0.11</a></li>
@@ -158,13 +159,13 @@
 
 <p>There are a few ways of uploading the package to the cluster&rsquo;s HDFS. If you do not have the job package in your cluster, <strong>scp</strong> from you local machine to the cluster. Then run</p>
 
-<div class="highlight"><pre><code class="bash">hadoop fs -put path/to/hello-samza-0.13.1-dist.tar.gz /path/for/tgz</code></pre></div>
+<div class="highlight"><pre><code class="bash">hadoop fs -put path/to/hello-samza-0.14.0-dist.tar.gz /path/for/tgz</code></pre></div>
 
 <h3 id="get-deploying-scripts">Get Deploying Scripts</h3>
 
 <p>Untar the job package (assume you will run from the current directory)</p>
 
-<div class="highlight"><pre><code class="bash">tar -xvf path/to/samza-job-package-0.13.1-dist.tar.gz -C ./</code></pre></div>
+<div class="highlight"><pre><code class="bash">tar -xvf path/to/samza-job-package-0.14.0-dist.tar.gz -C ./</code></pre></div>
 
 <h3 id="add-package-path-to-properties-file">Add Package Path to Properties File</h3>
 
@@ -198,7 +199,7 @@
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/learn/tutorials/0.13/deploy-samza-to-CDH.html" ) ) {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/deploy-samza-to-CDH.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });

Modified: samza/site/learn/tutorials/latest/hello-samza-high-level-code.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/hello-samza-high-level-code.html?rev=1820026&r1=1820025&r2=1820026&view=diff
==============================================================================
--- samza/site/learn/tutorials/latest/hello-samza-high-level-code.html (original)
+++ samza/site/learn/tutorials/latest/hello-samza-high-level-code.html Thu Jan  4 00:31:39 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="http://samza.apache.org/learn/tutorials/0.13/hello-samza-high-level-code.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/hello-samza-high-level-code.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -99,6 +99,7 @@
             <h1><i class="fa fa-history"></i> Archive</h1>
             <ul>
               <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
               <li><a href="/archive/index.html#13">0.13</a></li>
               <li><a href="/archive/index.html#12">0.12</a></li>
               <li><a href="/archive/index.html#11">0.11</a></li>
@@ -235,26 +236,13 @@ systems.wikipedia.port<span class="o">=<
 systems.kafka.samza.factory<span class="o">=</span>org.apache.samza.system.kafka.KafkaSystemFactory
 systems.kafka.consumer.zookeeper.connect<span class="o">=</span>localhost:2181/
 systems.kafka.producer.bootstrap.servers<span class="o">=</span>localhost:9092
-systems.kafka.default.stream.replication.factor<span class="o">=</span>1
-systems.kafka.default.stream.samza.msg.serde<span class="o">=</span>json</code></pre></div>
+systems.kafka.default.stream.replication.factor<span class="o">=</span>1</code></pre></div>
 
 <p>The above configuration defines 2 systems; one called <em>wikipedia</em> and one called <em>kafka</em>.</p>
 
 <p>A factory is required for each system, so the <em>systems.system-name.samza.system.factory</em> property is required for both systems. The other properties are system and use-case specific.</p>
 
-<p>For the <em>kafka</em> system, we set the default replication factor to 1 for all streams because this application is intended for a demo deployment which utilizes a Kafka cluster with only 1 broker, so a replication factor larger than 1 is invalid. The default serde is JSON, which means by default any streams consumed or produced to the <em>kafka</em> system will use a <em>json</em> serde, which we will define in the next section.</p>
-
-<p>The <em>wikipedia</em> system does not need a serde because the <code>WikipediaConsumer</code> already produces a usable type.</p>
-
-<h4 id="serdes">Serdes</h4>
-
-<p>Next, we need to configure the <a href="/learn/documentation/latest/container/serialization.html">serdes</a> we will use for streams and stores in the application.</p>
-
-<div class="highlight"><pre><code class="bash">serializers.registry.json.class<span class="o">=</span>org.apache.samza.serializers.JsonSerdeFactory
-serializers.registry.string.class<span class="o">=</span>org.apache.samza.serializers.StringSerdeFactory
-serializers.registry.integer.class<span class="o">=</span>org.apache.samza.serializers.IntegerSerdeFactory</code></pre></div>
-
-<p>The <em>json</em> serde was used for the <em>kafka</em> system above. The <em>string</em> and <em>integer</em> serdes will be used later.</p>
+<p>For the <em>kafka</em> system, we set the default replication factor to 1 for all streams because this application is intended for a demo deployment which utilizes a Kafka cluster with only 1 broker, so a replication factor larger than 1 is invalid.</p>
 
 <h4 id="configure-streams">Configure Streams</h4>
 
@@ -336,15 +324,14 @@ streams.en-wikinews.samza.physical.name<
 
 <p>The Wikipedia application consumes events from three channels. Let&rsquo;s declare each of those channels as an input streams via the <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/StreamGraph.html">StreamGraph</a> in the <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/application/StreamApplication.html#init-org.apache.samza.operators.StreamGraph-org.apache.samza.config.Config-">init</a> method.</p>
 
-<div class="highlight"><pre><code class="java"><span class="n">MessageStream</span><span class="o">&lt;</span><span class="n">WikipediaFeedEvent</span><span class="o">&gt;</span> <span class="n">wikipediaEvents</span> <span class="o">=</span> <span class="n">streamGraph</span><span class="o">.</span><span class="na">getInputStream</span><span class="o">(</span><span class="s">&quot;en-wikipedia&quot;</span><span class="o">,</span> <span class="o">(</span><span class="n">k</span><span class="o">,</span> <span class="n">v</span><span class="o">)</span> <span class="o">-&gt;</span> <span class="o">(</span><span class="n">WikipediaFeedEvent</span><span class="o">)</span> <span class="n">v</span><span class="o">);</span>
-<span class="n">MessageStream</span><span class="o">&lt;</span><span class="n">WikipediaFeedEvent</span><span class="o">&gt;</span> <span class="n">wiktionaryEvents</span> <span class="o">=</span> <span class="n">streamGraph</span><span class="o">.</span><span class="na">getInputStream</span><span class="o">(</span><span class="s">&quot;en-wiktionary&quot;</span><span class="o">,</span> <span class="o">(</span><span class="n">k</span><span class="o">,</span> <span class="n">v</span><span class="o">)</span> <span class="o">-&gt;</span> <span class="o">(</span><span class="n">WikipediaFeedEvent</span><span class="o">)</span> <span class="n">v</span><span class="o">);</span>
-<span class="n">MessageStream</span><span class="o">&lt;</span><span class="n">WikipediaFeedEvent</span><span class="o">&gt;</span> <span class="n">wikiNewsEvents</span> <span class="o">=</span> <span class="n">streamGraph</span><span class="o">.</span><span class="na">getInputStream</span><span class="o">(</span><span class="s">&quot;en-wikinews&quot;</span><span class="o">,</span> <span class="o">(</span><span class="n">k</span><span class="o">,</span> <span class="n">v</span><span class="o">)</span> <span class="o">-&gt;</span> <span class="o">(</span><span class="n">WikipediaFeedEvent</span><span class="o">)</span> <span class="n">v</span><span class="o">);</span></code></pre></div>
-
-<p>The first argument to the <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/StreamGraph.html#getInputStream-java.lang.String-java.util.function.BiFunction-">getInputStream</a> method is the stream ID. Each ID must match the corresponding stream IDs we configured earlier.</p>
+<div class="highlight"><pre><code class="java"><span class="n">MessageStream</span><span class="o">&lt;</span><span class="n">WikipediaFeedEvent</span><span class="o">&gt;</span> <span class="n">wikipediaEvents</span> <span class="o">=</span> <span class="n">streamGraph</span><span class="o">.</span><span class="na">getInputStream</span><span class="o">(</span><span class="s">&quot;en-wikipedia&quot;</span><span class="o">,</span> <span class="k">new</span> <span class="n">NoOpSerde</span><span class="o">&lt;&gt;());</span>
+<span class="n">MessageStream</span><span class="o">&lt;</span><span class="n">WikipediaFeedEvent</span><span class="o">&gt;</span> <span class="n">wiktionaryEvents</span> <span class="o">=</span> <span class="n">streamGraph</span><span class="o">.</span><span class="na">getInputStream</span><span class="o">(</span><span class="s">&quot;en-wiktionary&quot;</span><span class="o">,</span> <span class="k">new</span> <span class="n">NoOpSerde</span><span class="o">&lt;&gt;());</span>
+<span class="n">MessageStream</span><span class="o">&lt;</span><span class="n">WikipediaFeedEvent</span><span class="o">&gt;</span> <span class="n">wikiNewsEvents</span> <span class="o">=</span> <span class="n">streamGraph</span><span class="o">.</span><span class="na">getInputStream</span><span class="o">(</span><span class="s">&quot;en-wikinews&quot;</span><span class="o">,</span> <span class="k">new</span> <span class="n">NoOpSerde</span><span class="o">&lt;&gt;());</span></code></pre></div>
 
-<p>The second argument is the <em>message builder</em>. It converts the input key and message to the appropriate type. In this case, we don&rsquo;t have a key and want to sent the events as-is, so we have a very simple builder that just forwards the input value.</p>
+<p>The first argument to the <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/StreamGraph.html#getInputStream-java.lang.String-org.apache.samza.serializers.Serde-">getInputStream</a> method is the stream ID. Each ID must match the corresponding stream IDs we configured earlier.
+The second argument is the <code>Serde</code> used to deserialize the message. We&rsquo;ve set this to a <code>NoOpSerde</code> since our <code>wikipedia</code> system already returns <code>WikipediaFeedEvent</code>s and there is no need for further deserialization.</p>
 
-<p>Note the streams are all MessageStreams of type WikipediaFeedEvent. <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/MessageStream.html">MessageStream</a> is the in-memory representation of a stream in Samza. It uses generics to ensure type safety across the streams and operations. We knew the WikipediaFeedEvent type by inspecting the WikipediaConsumer above and we made it explicit with the cast on the output of the MessageBuilder. If our inputs used a serde, we would know the type based on which serde is configured for the input streams.</p>
+<p>Note the streams are all MessageStreams of type WikipediaFeedEvent. <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/MessageStream.html">MessageStream</a> is the in-memory representation of a stream in Samza. It uses generics to ensure type safety across the streams and operations.</p>
 
 <h4 id="merge">Merge</h4>
 
@@ -404,7 +391,7 @@ streams.en-wikinews.samza.physical.name<
 <p>Finally, we can define our <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/windows/Window.html">window</a> back in the <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/application/StreamApplication.html#init-org.apache.samza.operators.StreamGraph-org.apache.samza.config.Config-">init</a> method by chaining the result of the parser:</p>
 
 <div class="highlight"><pre><code class="java"><span class="n">allWikipediaEvents</span><span class="o">.</span><span class="na">map</span><span class="o">(</span><span class="nl">WikipediaParser:</span><span class="o">:</span><span class="n">parseEvent</span><span class="o">)</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">10</span><span class="o">),</span> <span class="nl">WikipediaStats:</span><span class="o">:</span><span class="k">new</span><span class="o">,</span> <span class="k">new</span> <span class="n">WikipediaStatsAggregator</span><span class="o">()));</span></code></pre></div>
+        <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">10</span><span class="o">),</span> <span class="nl">WikipediaStats:</span><span class="o">:</span><span class="k">new</span><span class="o">,</span> <span class="k">new</span> <span class="n">WikipediaStatsAggregator</span><span class="o">(),</span> <span class="k">new</span> <span class="n">JsonSerdeV2</span><span class="o">&lt;&gt;(</span><span class="n">WikipediaStats</span><span class="o">.</span><span class="na">class</span><span class="o">)));</span></code></pre></div>
 
 <p>This defines an unkeyed <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/windows/Windows.html">tumbling window</a> that spans 10s, which instantiates a new <code>WikipediaStats</code> object at the beginning of each window and aggregates the stats using <code>WikipediaStatsAggregator</code>.</p>
 
@@ -412,20 +399,30 @@ streams.en-wikinews.samza.physical.name<
 
 <h4 id="output">Output</h4>
 
-<p>We want to use a JSON serializer to output the window values to Kafka, so we will do one more <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/MessageStream.html#map-org.apache.samza.operators.functions.MapFunction-">map</a> to format the output.</p>
+<p>We will do a <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/MessageStream.html#map-org.apache.samza.operators.functions.MapFunction-">map</a> at the end to format our window output. Let&rsquo;s begin by defining a simple container class for our formatted output.</p>
 
-<p>First, let&rsquo;s define the method to format the stats as a <code>Map&lt;String, String&gt;</code> so the <em>json</em> serde can handle it. Paste the following after the aggregator class:</p>
-
-<div class="highlight"><pre><code class="java"><span class="kd">private</span> <span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Integer</span><span class="o">&gt;</span> <span class="n">formatOutput</span><span class="o">(</span><span class="n">WindowPane</span><span class="o">&lt;</span><span class="n">Void</span><span class="o">,</span> <span class="n">WikipediaStats</span><span class="o">&gt;</span> <span class="n">statsWindowPane</span><span class="o">)</span> <span class="o">{</span>
-  <span class="n">WikipediaStats</span> <span class="n">stats</span> <span class="o">=</span> <span class="n">statsWindowPane</span><span class="o">.</span><span class="na">getMessage</span><span class="o">();</span>
+<div class="highlight"><pre><code class="java"><span class="kd">static</span> <span class="kd">class</span> <span class="nc">WikipediaStatsOutput</span> <span class="o">{</span>
+    <span class="kd">public</span> <span class="kt">int</span> <span class="n">edits</span><span class="o">;</span>
+    <span class="kd">public</span> <span class="kt">int</span> <span class="n">bytesAdded</span><span class="o">;</span>
+    <span class="kd">public</span> <span class="kt">int</span> <span class="n">uniqueTitles</span><span class="o">;</span>
+    <span class="kd">public</span> <span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Integer</span><span class="o">&gt;</span> <span class="n">counts</span><span class="o">;</span>
+
+    <span class="kd">public</span> <span class="nf">WikipediaStatsOutput</span><span class="o">(</span><span class="kt">int</span> <span class="n">edits</span><span class="o">,</span> <span class="kt">int</span> <span class="n">bytesAdded</span><span class="o">,</span> <span class="kt">int</span> <span class="n">uniqueTitles</span><span class="o">,</span>
+        <span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Integer</span><span class="o">&gt;</span> <span class="n">counts</span><span class="o">)</span> <span class="o">{</span>
+      <span class="k">this</span><span class="o">.</span><span class="na">edits</span> <span class="o">=</span> <span class="n">edits</span><span class="o">;</span>
+      <span class="k">this</span><span class="o">.</span><span class="na">bytesAdded</span> <span class="o">=</span> <span class="n">bytesAdded</span><span class="o">;</span>
+      <span class="k">this</span><span class="o">.</span><span class="na">uniqueTitles</span> <span class="o">=</span> <span class="n">uniqueTitles</span><span class="o">;</span>
+      <span class="k">this</span><span class="o">.</span><span class="na">counts</span> <span class="o">=</span> <span class="n">counts</span><span class="o">;</span>
+    <span class="o">}</span>
+  <span class="o">}</span></code></pre></div>
 
-  <span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Integer</span><span class="o">&gt;</span> <span class="n">counts</span> <span class="o">=</span> <span class="k">new</span> <span class="n">HashMap</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Integer</span><span class="o">&gt;(</span><span class="n">stats</span><span class="o">.</span><span class="na">counts</span><span class="o">);</span>
-  <span class="n">counts</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">&quot;edits&quot;</span><span class="o">,</span> <span class="n">stats</span><span class="o">.</span><span class="na">edits</span><span class="o">);</span>
-  <span class="n">counts</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">&quot;bytes-added&quot;</span><span class="o">,</span> <span class="n">stats</span><span class="o">.</span><span class="na">byteDiff</span><span class="o">);</span>
-  <span class="n">counts</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">&quot;unique-titles&quot;</span><span class="o">,</span> <span class="n">stats</span><span class="o">.</span><span class="na">titles</span><span class="o">.</span><span class="na">size</span><span class="o">());</span>
+<p>Paste the following after the aggregator class:</p>
 
-  <span class="k">return</span> <span class="n">counts</span><span class="o">;</span>
-<span class="o">}</span></code></pre></div>
+<div class="highlight"><pre><code class="java"><span class="kd">private</span> <span class="n">WikipediaStatsOutput</span> <span class="nf">formatOutput</span><span class="o">(</span><span class="n">WindowPane</span><span class="o">&lt;</span><span class="n">Void</span><span class="o">,</span> <span class="n">WikipediaStats</span><span class="o">&gt;</span> <span class="n">statsWindowPane</span><span class="o">)</span> <span class="o">{</span>
+    <span class="n">WikipediaStats</span> <span class="n">stats</span> <span class="o">=</span> <span class="n">statsWindowPane</span><span class="o">.</span><span class="na">getMessage</span><span class="o">();</span>
+    <span class="k">return</span> <span class="k">new</span> <span class="nf">WikipediaStatsOutput</span><span class="o">(</span>
+        <span class="n">stats</span><span class="o">.</span><span class="na">edits</span><span class="o">,</span> <span class="n">stats</span><span class="o">.</span><span class="na">byteDiff</span><span class="o">,</span> <span class="n">stats</span><span class="o">.</span><span class="na">titles</span><span class="o">.</span><span class="na">size</span><span class="o">(),</span> <span class="n">stats</span><span class="o">.</span><span class="na">counts</span><span class="o">);</span>
+  <span class="o">}</span></code></pre></div>
 
 <p>Now, we can invoke the method by adding another <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/MessageStream.html#map-org.apache.samza.operators.functions.MapFunction-">map</a> operation to the chain in <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/application/StreamApplication.html#init-org.apache.samza.operators.StreamGraph-org.apache.samza.config.Config-">init</a>. The operator chain should now look like this:</p>
 
@@ -435,14 +432,13 @@ streams.en-wikinews.samza.physical.name<
 
 <p>Next we need to get the output stream to which we will send the stats. Insert the following line below the creation of the 3 input streams:</p>
 
-<div class="highlight"><pre><code class="java"><span class="n">OutputStream</span><span class="o">&lt;</span><span class="n">Void</span><span class="o">,</span> <span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Integer</span><span class="o">&gt;,</span> <span class="n">Map</span><span class="o">&lt;</span><span class="n">String</span><span class="o">,</span> <span class="n">Integer</span><span class="o">&gt;&gt;</span>
-        <span class="n">wikipediaStats</span> <span class="o">=</span> <span class="n">streamGraph</span><span class="o">.</span><span class="na">getOutputStream</span><span class="o">(</span><span class="s">&quot;wikipedia-stats&quot;</span><span class="o">,</span> <span class="n">m</span> <span class="o">-&gt;</span> <span class="kc">null</span><span class="o">,</span> <span class="n">m</span> <span class="o">-&gt;</span> <span class="n">m</span><span class="o">);</span></code></pre></div>
+<div class="highlight"><pre><code class="java"><span class="n">OutputStream</span><span class="o">&lt;</span><span class="n">WikipediaStatsOutput</span><span class="o">&gt;</span> <span class="n">wikipediaStats</span> <span class="o">=</span>
+     <span class="n">graph</span><span class="o">.</span><span class="na">getOutputStream</span><span class="o">(</span><span class="s">&quot;wikipedia-stats&quot;</span><span class="o">,</span> <span class="k">new</span> <span class="n">JsonSerdeV2</span><span class="o">&lt;&gt;(</span><span class="n">WikipediaStatsOutput</span><span class="o">.</span><span class="na">class</span><span class="o">));</span></code></pre></div>
 
-<p>The <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/OutputStream.html">OutputStream</a> is parameterized by 3 types; the key type for the output, the value type for the output, and upstream type.</p>
+<p>The <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/OutputStream.html">OutputStream</a> is parameterized by the type of the output.</p>
 
-<p>The first parameter of <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/StreamGraph.html#getOutputStream-java.lang.String-java.util.function.Function-java.util.function.Function-">getOutputStream</a> is the output stream ID. We will use <em>wikipedia-stats</em> and since it contains no special characters, we won&rsquo;t bother configuring a physical name so Samza will use the stream ID as the topic name.</p>
-
-<p>The second and third parameters are the <em>key extractor</em> and the <em>message extractor</em>, respectively. We have no key, so the <em>key extractor</em> simply produces null. The <em>message extractor</em> simply passes the message because it&rsquo;s already the correct type for the <em>json</em> serde. Note: we could have skipped the previous <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/MessageStream.html#map-org.apache.samza.operators.functions.MapFunction-">map</a> operator and invoked our formatter here, but we kept them separate for pedagogical purposes.</p>
+<p>The first parameter of <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/StreamGraph.html#getOutputStream-java.lang.String-org.apache.samza.serializers.Serde-">getOutputStream</a> is the output stream ID. We will use <em>wikipedia-stats</em> and since it contains no special characters, we won&rsquo;t bother configuring a physical name so Samza will use the stream ID as the topic name.
+The second parameter is the <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/serializers/Serde.html">Serde</a> to serialize the outgoing message. We will set it to <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/serializers/JsonSerdeV2.html">JsonSerdeV2</a> to serialize our <code>WikipediaStatsOutput</code> as a JSON string.</p>
 
 <p>Finally, we can send our output to the output stream using the <a href="/learn/documentation/latest/api/javadocs/org/apache/samza/operators/MessageStream.html#sendTo-org.apache.samza.operators.OutputStream-">sendTo</a> operator:</p>
 
@@ -461,14 +457,17 @@ streams.en-wikinews.samza.physical.name<
 
 <p>We start by defining the store in the config file:</p>
 
-<div class="highlight"><pre><code class="bash">stores.wikipedia-stats.factory<span class="o">=</span>org.apache.samza.storage.kv.RocksDbKeyValueStorageEngineFactory
+<div class="highlight"><pre><code class="bash">serializers.registry.string.class<span class="o">=</span>org.apache.samza.serializers.StringSerdeFactory
+serializers.registry.integer.class<span class="o">=</span>org.apache.samza.serializers.IntegerSerdeFactory
+
+stores.wikipedia-stats.factory<span class="o">=</span>org.apache.samza.storage.kv.RocksDbKeyValueStorageEngineFactory
 stores.wikipedia-stats.changelog<span class="o">=</span>kafka.wikipedia-stats-changelog
 stores.wikipedia-stats.key.serde<span class="o">=</span>string
 stores.wikipedia-stats.msg.serde<span class="o">=</span>integer</code></pre></div>
 
-<p>These properties declare a <a href="http://rocksdb.org/">RocksDB</a> key-value store named &ldquo;wikipedia-stats&rdquo;. The store is replicated to a changelog stream called &ldquo;wikipedia-stats-changelog&rdquo; on the <em>kafka</em> system for durability. It uses the <em>string</em> and <em>integer</em> serdes you defined earlier for keys and values respectively.</p>
+<p>These properties declare a <a href="http://rocksdb.org/">RocksDB</a> key-value store named &ldquo;wikipedia-stats&rdquo;. The store is replicated to a changelog stream called &ldquo;wikipedia-stats-changelog&rdquo; on the <em>kafka</em> system for durability. It uses the <em>string</em> and <em>integer</em> serdes for keys and values respectively.</p>
 
-<p>Next, we add a total count member variable to the <code>WikipediaStats</code> class:</p>
+<p>Next, we add a total count member variable to the <code>WikipediaStats</code> class, and to the <code>WikipediaStatsOutput</code> class:</p>
 
 <div class="highlight"><pre><code class="java"><span class="kt">int</span> <span class="n">totalEdits</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span></code></pre></div>
 
@@ -491,9 +490,7 @@ stores.wikipedia-stats.msg.serde<span cl
 <span class="n">store</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">&quot;count-edits-all-time&quot;</span><span class="o">,</span> <span class="n">editsAllTime</span><span class="o">);</span>
 <span class="n">stats</span><span class="o">.</span><span class="na">totalEdits</span> <span class="o">=</span> <span class="n">editsAllTime</span><span class="o">;</span></code></pre></div>
 
-<p>Finally, update the <code>MyWikipediaApplication#formatOutput</code> method to include the total counter.</p>
-
-<div class="highlight"><pre><code class="java"><span class="n">counts</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">&quot;edits-all-time&quot;</span><span class="o">,</span> <span class="n">stats</span><span class="o">.</span><span class="na">totalEdits</span><span class="o">);</span></code></pre></div>
+<p>Finally, update the <code>MyWikipediaApplication#formatOutput</code> method to include the total counter in its <code>WikipediaStatsOutput</code>.</p>
 
 <h4 id="metrics">Metrics</h4>
 
@@ -551,7 +548,7 @@ metrics.reporter.jmx.class<span class="o
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/learn/tutorials/0.13/hello-samza-high-level-code.html" ) ) {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/hello-samza-high-level-code.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });

Modified: samza/site/learn/tutorials/latest/hello-samza-high-level-yarn.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/hello-samza-high-level-yarn.html?rev=1820026&r1=1820025&r2=1820026&view=diff
==============================================================================
--- samza/site/learn/tutorials/latest/hello-samza-high-level-yarn.html (original)
+++ samza/site/learn/tutorials/latest/hello-samza-high-level-yarn.html Thu Jan  4 00:31:39 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="http://samza.apache.org/learn/tutorials/0.13/hello-samza-high-level-yarn.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/hello-samza-high-level-yarn.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -99,6 +99,7 @@
             <h1><i class="fa fa-history"></i> Archive</h1>
             <ul>
               <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
               <li><a href="/archive/index.html#13">0.13</a></li>
               <li><a href="/archive/index.html#12">0.12</a></li>
               <li><a href="/archive/index.html#11">0.11</a></li>
@@ -184,7 +185,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.13.1-SNAPSHOT-dist.tar.gz -C deploy/samza</code></pre></div>
+tar -xvf ./target/hello-samza-0.14.1-SNAPSHOT-dist.tar.gz -C deploy/samza</code></pre></div>
 
 <h3 id="run-a-samza-application">Run a Samza Application</h3>
 
@@ -254,7 +255,7 @@ tar -xvf ./target/hello-samza-0.13.1-SNA
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/learn/tutorials/0.13/hello-samza-high-level-yarn.html" ) ) {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/hello-samza-high-level-yarn.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });

Modified: samza/site/learn/tutorials/latest/hello-samza-high-level-zk.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/hello-samza-high-level-zk.html?rev=1820026&r1=1820025&r2=1820026&view=diff
==============================================================================
--- samza/site/learn/tutorials/latest/hello-samza-high-level-zk.html (original)
+++ samza/site/learn/tutorials/latest/hello-samza-high-level-zk.html Thu Jan  4 00:31:39 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="http://samza.apache.org/learn/tutorials/0.13/hello-samza-high-level-zk.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/hello-samza-high-level-zk.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -99,6 +99,7 @@
             <h1><i class="fa fa-history"></i> Archive</h1>
             <ul>
               <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
               <li><a href="/archive/index.html#13">0.13</a></li>
               <li><a href="/archive/index.html#12">0.12</a></li>
               <li><a href="/archive/index.html#11">0.11</a></li>
@@ -179,7 +180,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.13.1-SNAPSHOT-dist.tar.gz -C deploy/samza</code></pre></div>
+tar -xvf ./target/hello-samza-0.14.1-SNAPSHOT-dist.tar.gz -C deploy/samza</code></pre></div>
 
 <p>We are now all set to deploy the application locally.</p>
 
@@ -236,7 +237,7 @@ We can use the <em>grid</em> script to t
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/learn/tutorials/0.13/hello-samza-high-level-zk.html" ) ) {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/hello-samza-high-level-zk.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });

Modified: samza/site/learn/tutorials/latest/index.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/index.html?rev=1820026&r1=1820025&r2=1820026&view=diff
==============================================================================
--- samza/site/learn/tutorials/latest/index.html (original)
+++ samza/site/learn/tutorials/latest/index.html Thu Jan  4 00:31:39 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="http://samza.apache.org/learn/tutorials/0.13/index.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/index.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -99,6 +99,7 @@
             <h1><i class="fa fa-history"></i> Archive</h1>
             <ul>
               <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
               <li><a href="/archive/index.html#13">0.13</a></li>
               <li><a href="/archive/index.html#12">0.12</a></li>
               <li><a href="/archive/index.html#11">0.11</a></li>
@@ -170,6 +171,8 @@
 
 <p><a href="samza-async-user-guide.html">Samza Async API and Multithreading User Guide</a></p>
 
+<p><a href="samza-sql.html">Samza SQL User Guide</a></p>
+
 <!-- TODO a bunch of tutorials
 [Log Walkthrough](log-walkthrough.html)
 <a href="configuring-kafka-system.html">Configuring a Kafka System</a><br/>
@@ -197,7 +200,7 @@
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/learn/tutorials/0.13/index.html" ) ) {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/index.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });

Modified: samza/site/learn/tutorials/latest/remote-debugging-samza.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/remote-debugging-samza.html?rev=1820026&r1=1820025&r2=1820026&view=diff
==============================================================================
--- samza/site/learn/tutorials/latest/remote-debugging-samza.html (original)
+++ samza/site/learn/tutorials/latest/remote-debugging-samza.html Thu Jan  4 00:31:39 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="http://samza.apache.org/learn/tutorials/0.13/remote-debugging-samza.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/remote-debugging-samza.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -99,6 +99,7 @@
             <h1><i class="fa fa-history"></i> Archive</h1>
             <ul>
               <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
               <li><a href="/archive/index.html#13">0.13</a></li>
               <li><a href="/archive/index.html#12">0.12</a></li>
               <li><a href="/archive/index.html#11">0.11</a></li>
@@ -195,7 +196,7 @@
 
 <div class="highlight"><pre><code class="bash">mvn clean package
 mkdir -p deploy/samza
-tar -xvf ./target/hello-samza-0.13.1-dist.tar.gz -C deploy/samza
+tar -xvf ./target/hello-samza-0.14.0-dist.tar.gz -C deploy/samza
 deploy/samza/bin/run-job.sh --config-factory<span class="o">=</span>org.apache.samza.config.factories.PropertiesConfigFactory --config-path<span class="o">=</span>file://<span class="nv">$PWD</span>/deploy/samza/config/wikipedia-feed.properties</code></pre></div>
 
 <p>When the wikipedia-feed job starts up, a single Samza container will be created to process all incoming messages. This is the container that we&rsquo;ll want to connect to from the remote debugger.</p>
@@ -226,7 +227,7 @@ deploy/samza/bin/run-job.sh --config-fac
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/learn/tutorials/0.13/remote-debugging-samza.html" ) ) {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/remote-debugging-samza.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });

Modified: samza/site/learn/tutorials/latest/run-hello-samza-without-internet.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/run-hello-samza-without-internet.html?rev=1820026&r1=1820025&r2=1820026&view=diff
==============================================================================
--- samza/site/learn/tutorials/latest/run-hello-samza-without-internet.html (original)
+++ samza/site/learn/tutorials/latest/run-hello-samza-without-internet.html Thu Jan  4 00:31:39 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="http://samza.apache.org/learn/tutorials/0.13/run-hello-samza-without-internet.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/run-hello-samza-without-internet.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -99,6 +99,7 @@
             <h1><i class="fa fa-history"></i> Archive</h1>
             <ul>
               <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
               <li><a href="/archive/index.html#13">0.13</a></li>
               <li><a href="/archive/index.html#12">0.12</a></li>
               <li><a href="/archive/index.html#11">0.11</a></li>
@@ -205,7 +206,7 @@ NOTICE AUTH :*** Found your hostname
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/learn/tutorials/0.13/run-hello-samza-without-internet.html" ) ) {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/run-hello-samza-without-internet.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });

Modified: samza/site/learn/tutorials/latest/run-in-multi-node-yarn.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/run-in-multi-node-yarn.html?rev=1820026&r1=1820025&r2=1820026&view=diff
==============================================================================
--- samza/site/learn/tutorials/latest/run-in-multi-node-yarn.html (original)
+++ samza/site/learn/tutorials/latest/run-in-multi-node-yarn.html Thu Jan  4 00:31:39 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="http://samza.apache.org/learn/tutorials/0.13/run-in-multi-node-yarn.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/run-in-multi-node-yarn.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -99,6 +99,7 @@
             <h1><i class="fa fa-history"></i> Archive</h1>
             <ul>
               <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
               <li><a href="/archive/index.html#13">0.13</a></li>
               <li><a href="/archive/index.html#12">0.12</a></li>
               <li><a href="/archive/index.html#11">0.11</a></li>
@@ -248,13 +249,13 @@ vi src/main/config/wikipedia-feed.proper
 
 <p>Change the yarn.package.path property to be:</p>
 
-<div class="highlight"><pre><code class="jproperties"><span class="na">yarn.package.path</span><span class="o">=</span><span class="s">http://yourHostname:8000/target/hello-samza-0.13.1-dist.tar.gz</span></code></pre></div>
+<div class="highlight"><pre><code class="jproperties"><span class="na">yarn.package.path</span><span class="o">=</span><span class="s">http://yourHostname:8000/target/hello-samza-0.14.0-dist.tar.gz</span></code></pre></div>
 
 <p>3. Compile hello-samza.</p>
 
 <div class="highlight"><pre><code class="bash">mvn clean package
 mkdir -p deploy/samza
-tar -xvf ./target/hello-samza-0.13.1-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>
 
 <p>4. Deploy Samza job package to Http server..</p>
 
@@ -286,7 +287,7 @@ tar -xvf ./target/hello-samza-0.13.1-dis
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/learn/tutorials/0.13/run-in-multi-node-yarn.html" ) ) {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/run-in-multi-node-yarn.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });

Modified: samza/site/learn/tutorials/latest/samza-async-user-guide.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/samza-async-user-guide.html?rev=1820026&r1=1820025&r2=1820026&view=diff
==============================================================================
--- samza/site/learn/tutorials/latest/samza-async-user-guide.html (original)
+++ samza/site/learn/tutorials/latest/samza-async-user-guide.html Thu Jan  4 00:31:39 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="http://samza.apache.org/learn/tutorials/0.13/samza-async-user-guide.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/samza-async-user-guide.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -99,6 +99,7 @@
             <h1><i class="fa fa-history"></i> Archive</h1>
             <ul>
               <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
               <li><a href="/archive/index.html#13">0.13</a></li>
               <li><a href="/archive/index.html#12">0.12</a></li>
               <li><a href="/archive/index.html#11">0.11</a></li>
@@ -261,7 +262,7 @@
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/learn/tutorials/0.13/samza-async-user-guide.html" ) ) {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/samza-async-user-guide.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });

Modified: samza/site/learn/tutorials/latest/samza-rest-getting-started.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/samza-rest-getting-started.html?rev=1820026&r1=1820025&r2=1820026&view=diff
==============================================================================
--- samza/site/learn/tutorials/latest/samza-rest-getting-started.html (original)
+++ samza/site/learn/tutorials/latest/samza-rest-getting-started.html Thu Jan  4 00:31:39 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="http://samza.apache.org/learn/tutorials/0.13/samza-rest-getting-started.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/samza-rest-getting-started.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -99,6 +99,7 @@
             <h1><i class="fa fa-history"></i> Archive</h1>
             <ul>
               <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
               <li><a href="/archive/index.html#13">0.13</a></li>
               <li><a href="/archive/index.html#12">0.12</a></li>
               <li><a href="/archive/index.html#11">0.11</a></li>
@@ -173,7 +174,7 @@
 
 <div class="highlight"><pre><code class="bash"><span class="nb">cd </span>samza-rest/build/distributions/
 mkdir -p deploy/samza-rest
-tar -xvf ./samza-rest-0.13.1-SNAPSHOT.tgz -C deploy/samza-rest</code></pre></div>
+tar -xvf ./samza-rest-0.14.1-SNAPSHOT.tgz -C deploy/samza-rest</code></pre></div>
 
 <h4 id="configure-the-installations-path">Configure the Installations Path</h4>
 
@@ -230,7 +231,7 @@ tar -xvf ./samza-rest-0.13.1-SNAPSHOT.tg
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/learn/tutorials/0.13/samza-rest-getting-started.html" ) ) {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/samza-rest-getting-started.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });

Added: samza/site/learn/tutorials/latest/samza-sql.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/samza-sql.html?rev=1820026&view=auto
==============================================================================
--- samza/site/learn/tutorials/latest/samza-sql.html (added)
+++ samza/site/learn/tutorials/latest/samza-sql.html Thu Jan  4 00:31:39 2018
@@ -0,0 +1,286 @@
+<!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.
+-->
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>Samza - How to use Samza SQL</title>
+    <link href='/css/ropa-sans.css' rel='stylesheet' type='text/css'/>
+    <link href="/css/bootstrap.min.css" rel="stylesheet"/>
+    <link href="/css/font-awesome.min.css" rel="stylesheet"/>
+    <link href="/css/main.css" rel="stylesheet"/>
+    <link href="/css/syntax.css" rel="stylesheet"/>
+    <link rel="icon" type="image/png" href="/img/samza-icon.png">
+    <script src="/js/jquery-1.11.1.min.js"></script>
+  </head>
+  <body>
+    <div class="wrapper">
+      <div class="wrapper-content">
+
+        <div class="masthead">
+          <div class="container">
+            <div class="masthead-logo">
+              <a href="/" class="logo">samza</a>
+            </div>
+            <div class="masthead-icons">
+              <div class="pull-right">
+                <a href="/startup/download"><i class="fa fa-arrow-circle-o-down masthead-icon"></i></a>
+                <a href="https://git-wip-us.apache.org/repos/asf?p=samza.git;a=tree" target="_blank"><i class="fa fa-code masthead-icon" style="font-weight: bold;"></i></a>
+                <a href="https://twitter.com/samzastream" target="_blank"><i class="fa fa-twitter masthead-icon"></i></a>
+                <!-- this icon only shows in versioned pages -->
+                
+                  
+                    
+                  
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/samza-sql.html"><i id="switch-version-button"></i></a>
+                   <!-- links for the navigation bar -->
+                
+
+              </div>
+            </div>
+          </div><!-- /.container -->
+        </div>
+
+        <div class="container">
+          <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/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="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>
+              <li><a href="http://blogs.apache.org/samza">Blog</a></li>
+            </ul>
+
+            <h1><i class="fa fa-comments"></i> Community</h1>
+            <ul>
+              <li><a href="/community/mailing-lists.html">Mailing Lists</a></li>
+              <li><a href="/community/irc.html">IRC</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/SAMZA">Bugs</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/SAMZA/Powered+By">Powered by</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/SAMZA/Ecosystem">Ecosystem</a></li>
+              <li><a href="/community/committers.html">Committers</a></li>
+            </ul>
+
+            <h1><i class="fa fa-code"></i> Contribute</h1>
+            <ul>
+              <li><a href="/contribute/contributors-corner.html">Contributor's Corner</a></li>
+              <li><a href="/contribute/coding-guide.html">Coding Guide</a></li>
+              <li><a href="/contribute/design-documents.html">Design Documents</a></li>
+              <li><a href="/contribute/code.html">Code</a></li>
+              <li><a href="/contribute/tests.html">Tests</a></li>
+            </ul>
+
+            <h1><i class="fa fa-history"></i> Archive</h1>
+            <ul>
+              <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
+              <li><a href="/archive/index.html#13">0.13</a></li>
+              <li><a href="/archive/index.html#12">0.12</a></li>
+              <li><a href="/archive/index.html#11">0.11</a></li>
+              <li><a href="/archive/index.html#10">0.10</a></li>
+              <li><a href="/archive/index.html#09">0.9</a></li>
+              <li><a href="/archive/index.html#08">0.8</a></li>
+              <li><a href="/archive/index.html#07">0.7</a></li>
+            </ul>
+          </div>
+
+          <div class="content">
+            <!--
+   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.
+-->
+
+<h2>How to use Samza SQL</h2>
+
+<!--
+   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.
+-->
+
+<p>There are couple of ways to use Samza SQL</p>
+
+<ol>
+<li>Run Samza SQL on your local machine.</li>
+<li>Run Samza SQL on YARN.</li>
+</ol>
+
+<h1 id="running-samza-sql-on-your-local-machine">Running Samza SQL on your local machine</h1>
+
+<p>Samza SQL console tool documented <a href="samza-tools.html">here</a> uses Samza standalone to run the Samza SQL on your local machine. This is the quickest way to play with Samza SQL. Please follow the instructions <a href="samza-tools.html">here</a> to get access to the Samza tools on your machine.</p>
+
+<h2 id="start-the-kafka-server">Start the Kafka server</h2>
+
+<p>Please follow the instructions from the <a href="http://kafka.apache.org/quickstart">Kafka quickstart</a> to start the zookeeper and Kafka server.</p>
+
+<h2 id="create-profilechangestream-kafka-topic">Create ProfileChangeStream Kafka topic</h2>
+
+<p>The below sql statements requires a topic named ProfileChangeStream to be created on the Kafka broker. You can follow the instructions in the <a href="http://kafka.apache.org/quickstart">Kafka quick start guide</a> to create a topic named &ldquo;ProfileChangeStream&rdquo;.</p>
+
+<div class="highlight"><pre><code class="bash">./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic ProfileChangeStream</code></pre></div>
+
+<h2 id="generate-events-into-profilechangestream-topic">Generate events into ProfileChangeStream topic</h2>
+
+<p>Use generate-kafka-events from <a href="samza-tools.html">Samza tools</a> to generate events into the ProfileChangeStream</p>
+
+<div class="highlight"><pre><code class="bash"><span class="nb">cd </span>samza-tools-&lt;version&gt;
+./scripts/generate-kafka-events.sh -t ProfileChangeStream -e ProfileChange</code></pre></div>
+
+<h2 id="using-samza-sql-console-to-run-samza-sql-on-your-local-machine">Using Samza SQL Console to run Samza sql on your local machine</h2>
+
+<p>Below are some of the sql queries that you can execute using the samza-sql-console tool from <a href="samza-tools.html">Samza tools</a> package.</p>
+
+<div class="highlight"><pre><code class="bash"><span class="c"># This command just prints out all the events in the Kafka topic ProfileChangeStream into console output as a json serialized payload.</span>
+./scripts/samza-sql-console.sh --sql <span class="s2">&quot;insert into log.consoleoutput select * from kafka.ProfileChangeStream&quot;</span>
+
+<span class="c"># This command prints out the fields that are selected into the console output as a json serialized payload.</span>
+./scripts/samza-sql-console.sh --sql <span class="s2">&quot;insert into log.consoleoutput select Name, OldCompany, NewCompany from kafka.ProfileChangeStream&quot;</span>
+
+<span class="c"># This command showcases the RegexMatch udf and filtering capabilities.</span>
+./scripts/samza-sql-console.sh --sql <span class="s2">&quot;insert into log.consoleoutput select Name as __key__, Name, NewCompany, RegexMatch(&#39;.*soft&#39;, OldCompany) from kafka.ProfileChangeStream where NewCompany = &#39;LinkedIn&#39;&quot;</span></code></pre></div>
+
+<h1 id="running-samza-sql-on-yarn">Running Samza SQL on YARN</h1>
+
+<p>The <a href="https://github.com/apache/samza-hello-samza">hello-samza</a> project is an example project designed to help you run your first Samza application. It has examples of applications using the low level task API, high level API as well as Samza SQL.</p>
+
+<p>This tutorial demonstrates a simple Samza application that uses SQL to perform stream processing.</p>
+
+<h2 id="get-the-hello-samza-code-and-start-the-grid">Get the hello-samza Code and Start the grid</h2>
+
+<p>Please follow the instructions from <a href="hello-samza-high-level-yarn.html">hello-samza-high-level-yarn</a> on how to build the hello-samza repository and start the yarn grid. </p>
+
+<h2 id="create-the-topic-and-generate-kafka-events">Create the topic and generate Kafka events</h2>
+
+<p>Please follow the steps in the section &ldquo;Create ProfileChangeStream Kafka topic&rdquo; and &ldquo;Generate events into ProfileChangeStream topic&rdquo; above.</p>
+
+<h2 id="build-a-samza-application-package">Build a Samza Application Package</h2>
+
+<p>Before you can run a Samza application, you need to build a package for it. Please follow the instructions from <a href="hello-samza-high-level-yarn.html">hello-samza-high-level-yarn</a> on how to build the hello-samza application package.</p>
+
+<h2 id="run-a-samza-application">Run a Samza Application</h2>
+
+<p>After you&rsquo;ve built your Samza package, you can start the app on the grid using the run-app.sh script.</p>
+
+<div class="highlight"><pre><code class="bash">./deploy/samza/bin/run-app.sh --config-factory<span class="o">=</span>org.apache.samza.config.factories.PropertiesConfigFactory --config-path<span class="o">=</span>file://<span class="nv">$PWD</span>/deploy/samza/config/page-view-filter-sql.properties</code></pre></div>
+
+<p>The app executes the following SQL command :</p>
+
+<div class="highlight"><pre><code class="sql"><span class="k">insert</span> <span class="k">into</span> <span class="n">kafka</span><span class="p">.</span><span class="n">NewLinkedInEmployees</span> <span class="k">select</span> <span class="n">Name</span> <span class="k">from</span> <span class="n">ProfileChangeStream</span> <span class="k">where</span> <span class="n">NewCompany</span> <span class="o">=</span> <span class="s1">&#39;LinkedIn&#39;</span></code></pre></div>
+
+<p>This SQL performs the following</p>
+
+<ol>
+<li>Consumes the Kafka topic ProfileChangeStreamStream which contains the avro serialized ProfileChangeEvent(s) </li>
+<li>Deserializes the events and filters out only the profile change events where NewCompany = &lsquo;LinkedIn&rsquo; i.e. Members who have moved to LinkedIn.</li>
+<li>Writes the Avro serialized event that contains the Id and Name of those profiles to Kafka topic NewLinkedInEmployees.</li>
+</ol>
+
+<p>Give the job a minute to startup, and then tail the Kafka topic:</p>
+
+<div class="highlight"><pre><code class="bash">./deploy/kafka/bin/kafka-console-consumer.sh  --zookeeper localhost:2181 --topic NewLinkedInEmployees</code></pre></div>
+
+<p>Congratulations! You&rsquo;ve now setup a local grid that includes YARN, Kafka, and ZooKeeper, and run a Samza SQL application on it.</p>
+
+<h2 id="shutdown-and-cleanup">Shutdown and cleanup</h2>
+
+<p>To shutdown the app, use the same <em>run-app.sh</em> script with an extra <em>&ndash;operation=kill</em> argument</p>
+
+<div class="highlight"><pre><code class="bash">./deploy/samza/bin/run-app.sh --config-factory<span class="o">=</span>org.apache.samza.config.factories.PropertiesConfigFactory --config-path<span class="o">=</span>file://<span class="nv">$PWD</span>/deploy/samza/config/page-view-filter-sql.properties --operation<span class="o">=</span><span class="nb">kill</span></code></pre></div>
+
+<p>Please follow the instructions from <a href="hello-samza-high-level-yarn.html">Hello Samza High Level API - YARN Deployment</a> on how to shutdown and cleanup the app.</p>
+
+
+          </div>
+        </div>
+
+      </div><!-- /.wrapper-content -->
+    </div><!-- /.wrapper -->
+
+    <div class="footer">
+      <div class="container">
+        <!-- nothing for now. -->
+      </div>
+    </div>
+
+  
+    <script>
+      $( document ).ready(function() {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/samza-sql.html" ) ) {
+          $("#switch-version-button").addClass("fa fa-history masthead-icon");
+        }
+      });
+
+      /* a function to test whether the url exists or not */
+      (function( $ ) {
+        $.fn.urlExists = function(url) {
+          var http = new XMLHttpRequest();
+          http.open('HEAD', url, false);
+          http.send();
+          return http.status != 404;
+        };
+      }( jQuery ));
+    </script>
+  
+
+    <!-- Google Analytics -->
+    <script>
+      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+      ga('create', 'UA-43122768-1', 'apache.org');
+      ga('send', 'pageview');
+
+    </script>
+  </body>
+</html>

Added: samza/site/learn/tutorials/latest/samza-tools.html
URL: http://svn.apache.org/viewvc/samza/site/learn/tutorials/latest/samza-tools.html?rev=1820026&view=auto
==============================================================================
--- samza/site/learn/tutorials/latest/samza-tools.html (added)
+++ samza/site/learn/tutorials/latest/samza-tools.html Thu Jan  4 00:31:39 2018
@@ -0,0 +1,268 @@
+<!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.
+-->
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>Samza - How to use Samza tools</title>
+    <link href='/css/ropa-sans.css' rel='stylesheet' type='text/css'/>
+    <link href="/css/bootstrap.min.css" rel="stylesheet"/>
+    <link href="/css/font-awesome.min.css" rel="stylesheet"/>
+    <link href="/css/main.css" rel="stylesheet"/>
+    <link href="/css/syntax.css" rel="stylesheet"/>
+    <link rel="icon" type="image/png" href="/img/samza-icon.png">
+    <script src="/js/jquery-1.11.1.min.js"></script>
+  </head>
+  <body>
+    <div class="wrapper">
+      <div class="wrapper-content">
+
+        <div class="masthead">
+          <div class="container">
+            <div class="masthead-logo">
+              <a href="/" class="logo">samza</a>
+            </div>
+            <div class="masthead-icons">
+              <div class="pull-right">
+                <a href="/startup/download"><i class="fa fa-arrow-circle-o-down masthead-icon"></i></a>
+                <a href="https://git-wip-us.apache.org/repos/asf?p=samza.git;a=tree" target="_blank"><i class="fa fa-code masthead-icon" style="font-weight: bold;"></i></a>
+                <a href="https://twitter.com/samzastream" target="_blank"><i class="fa fa-twitter masthead-icon"></i></a>
+                <!-- this icon only shows in versioned pages -->
+                
+                  
+                    
+                  
+                  <a href="http://samza.apache.org/learn/tutorials/0.14/samza-tools.html"><i id="switch-version-button"></i></a>
+                   <!-- links for the navigation bar -->
+                
+
+              </div>
+            </div>
+          </div><!-- /.container -->
+        </div>
+
+        <div class="container">
+          <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/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="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>
+              <li><a href="http://blogs.apache.org/samza">Blog</a></li>
+            </ul>
+
+            <h1><i class="fa fa-comments"></i> Community</h1>
+            <ul>
+              <li><a href="/community/mailing-lists.html">Mailing Lists</a></li>
+              <li><a href="/community/irc.html">IRC</a></li>
+              <li><a href="https://issues.apache.org/jira/browse/SAMZA">Bugs</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/SAMZA/Powered+By">Powered by</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/SAMZA/Ecosystem">Ecosystem</a></li>
+              <li><a href="/community/committers.html">Committers</a></li>
+            </ul>
+
+            <h1><i class="fa fa-code"></i> Contribute</h1>
+            <ul>
+              <li><a href="/contribute/contributors-corner.html">Contributor's Corner</a></li>
+              <li><a href="/contribute/coding-guide.html">Coding Guide</a></li>
+              <li><a href="/contribute/design-documents.html">Design Documents</a></li>
+              <li><a href="/contribute/code.html">Code</a></li>
+              <li><a href="/contribute/tests.html">Tests</a></li>
+            </ul>
+
+            <h1><i class="fa fa-history"></i> Archive</h1>
+            <ul>
+              <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
+              <li><a href="/archive/index.html#13">0.13</a></li>
+              <li><a href="/archive/index.html#12">0.12</a></li>
+              <li><a href="/archive/index.html#11">0.11</a></li>
+              <li><a href="/archive/index.html#10">0.10</a></li>
+              <li><a href="/archive/index.html#09">0.9</a></li>
+              <li><a href="/archive/index.html#08">0.8</a></li>
+              <li><a href="/archive/index.html#07">0.7</a></li>
+            </ul>
+          </div>
+
+          <div class="content">
+            <!--
+   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.
+-->
+
+<h2>How to use Samza tools</h2>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<h1 id="get-samza-tools">Get Samza tools</h1>
+
+<p>Please visit the <a href="/startup/download">Download page</a> to download the Samza tools package</p>
+
+<div class="highlight"><pre><code class="bash">tar -xvzf samza-tools-*.tgz
+<span class="nb">cd </span>samza-tools-&lt;version&gt;</code></pre></div>
+
+<h1 id="using-samza-tools">Using Samza tools</h1>
+
+<h2 id="generate-kafka-events">Generate kafka events</h2>
+
+<p>Generate kafka events tool is used to insert avro serialized events into kafka topics. Right now it can insert two types of events <a href="https://github.com/apache/samza/blob/master/samza-tools/src/main/java/org/com/linkedin/samza/tools/schemas/PageViewEvent.avsc">PageViewEvent</a> and <a href="https://github.com/apache/samza/blob/master/samza-tools/src/main/java/org/com/linkedin/samza/tools/schemas/ProfileChangeEvent.avsc">ProfileChangeEvent</a></p>
+
+<p>Before you can generate kafka events, Please follow instructions <a href="http://kafka.apache.org/quickstart">here</a> to start the zookeeper and kafka server on your local machine.</p>
+
+<p>You can follow below instructions on how to use Generate kafka events tool.</p>
+
+<div class="highlight"><pre><code class="bash"><span class="c"># Usage of the tool</span>
+
+./scripts/generate-kafka-events.sh
+usage: Error: Missing required options: t, e
+              generate-kafka-events.sh
+ -b,--broker &lt;BROKER&gt;               Kafka broker endpoint Default <span class="o">(</span>localhost:9092<span class="o">)</span>.
+ -n,--numEvents &lt;NUM_EVENTS&gt;        Number of events to be produced, 
+                                    Default - Produces events continuously every second.
+ -p,--partitions &lt;NUM_PARTITIONS&gt;   Number of partitions in the topic,
+                                    Default <span class="o">(</span>4<span class="o">)</span>.
+ -t,--topic &lt;TOPIC_NAME&gt;            Name of the topic to write events to.
+ -e,--eventtype &lt;EVENT_TYPE&gt;        Type of the event values can be <span class="o">(</span>PageView<span class="p">|</span>ProfileChange<span class="o">)</span>. 
+
+
+<span class="c"># Example command to generate 100 events of type PageViewEvent into topic named PageViewStream</span>
+
+ ./scripts/generate-kafka-events.sh -t PageViewStream -e PageView -n 100
+
+
+<span class="c"># Example command to generate ProfileChange events continuously into topic named ProfileChangeStream</span>
+
+ ./scripts/generate-kafka-events.sh -t ProfileChangeStream -e ProfileChange</code></pre></div>
+
+<h2 id="samza-sql-console-tool">Samza SQL console tool</h2>
+
+<p>Once you generated the events into the kafka topic. Now you can use samza-sql-console tool to perform processing on the events published into the kafka topic.</p>
+
+<p>There are two ways to use the tool -</p>
+
+<ol>
+<li>You can either pass the sql statement directly as an argument to the tool. </li>
+<li>You can write the sql statement(s) into a file and pass the sql file as an argument to the tool.</li>
+</ol>
+
+<p>Second option allows you to execute multiple sql statements, whereas the first one lets you execute one at a time.</p>
+
+<p>Samza SQL needs all the events in the topic to be uniform schema. And it also needs access to the schema corresponding to the events in a topic. Typically in an organization, there is a deployment of schema registry which maps topics to schemas. </p>
+
+<p>In the absence of schema registry, Samza SQL console tool uses the convention to identify the schemas associated with the topic. If the topic name has string &ldquo;page&rdquo; it assumes the topic has PageViewEvents else ProfileChangeEvents. </p>
+
+<div class="highlight"><pre><code class="bash"><span class="c"># Usage of the tool</span>
+
+ ./scripts/samza-sql-console.sh
+usage: Error: One of the <span class="o">(</span>f or s<span class="o">)</span> options needs to be <span class="nb">set</span>
+<span class="nb">              </span>samza-sql-console.sh
+ -f,--file &lt;SQL_FILE&gt;   Path to the SQL file to execute.
+ -s,--sql &lt;SQL_STMT&gt;    SQL statement to execute.
+
+<span class="c"># Example command to filter out all the users who have moved to LinkedIn</span>
+
+./scripts/samza-sql-console.sh --sql <span class="s2">&quot;Insert into log.consoleOutput select Name, OldCompany from kafka.ProfileChangeStream where NewCompany = &#39;LinkedIn&#39;&quot;</span></code></pre></div>
+
+<p>You can run below sql commands using Samza sql console. Please make sure you are running generate-kafka-events tool to generate events into ProfileChangeStream before running the below command.</p>
+
+<div class="highlight"><pre><code class="bash">./scripts/samza-sql-console.sh --sql <span class="s2">&quot;Insert into log.consoleOutput select Name, OldCompany from kafka.ProfileChangeStream where NewCompany = &#39;LinkedIn&#39;&quot;</span></code></pre></div>
+
+
+          </div>
+        </div>
+
+      </div><!-- /.wrapper-content -->
+    </div><!-- /.wrapper -->
+
+    <div class="footer">
+      <div class="container">
+        <!-- nothing for now. -->
+      </div>
+    </div>
+
+  
+    <script>
+      $( document ).ready(function() {
+        if ( $.fn.urlExists( "/learn/tutorials/0.14/samza-tools.html" ) ) {
+          $("#switch-version-button").addClass("fa fa-history masthead-icon");
+        }
+      });
+
+      /* a function to test whether the url exists or not */
+      (function( $ ) {
+        $.fn.urlExists = function(url) {
+          var http = new XMLHttpRequest();
+          http.open('HEAD', url, false);
+          http.send();
+          return http.status != 404;
+        };
+      }( jQuery ));
+    </script>
+  
+
+    <!-- Google Analytics -->
+    <script>
+      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+      ga('create', 'UA-43122768-1', 'apache.org');
+      ga('send', 'pageview');
+
+    </script>
+  </body>
+</html>

Modified: samza/site/startup/hello-samza/latest/index.html
URL: http://svn.apache.org/viewvc/samza/site/startup/hello-samza/latest/index.html?rev=1820026&r1=1820025&r2=1820026&view=diff
==============================================================================
--- samza/site/startup/hello-samza/latest/index.html (original)
+++ samza/site/startup/hello-samza/latest/index.html Thu Jan  4 00:31:39 2018
@@ -46,7 +46,7 @@
                   
                     
                   
-                  <a href="http://samza.apache.org/startup/hello-samza/0.13/index.html"><i id="switch-version-button"></i></a>
+                  <a href="http://samza.apache.org/startup/hello-samza/0.14/index.html"><i id="switch-version-button"></i></a>
                    <!-- links for the navigation bar -->
                 
 
@@ -99,6 +99,7 @@
             <h1><i class="fa fa-history"></i> Archive</h1>
             <ul>
               <li><a href="/archive/index.html#latest">latest</a></li>
+              <li><a href="/archive/index.html#14">0.14</a></li>
               <li><a href="/archive/index.html#13">0.13</a></li>
               <li><a href="/archive/index.html#12">0.12</a></li>
               <li><a href="/archive/index.html#11">0.11</a></li>
@@ -182,7 +183,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.13.1-SNAPSHOT-dist.tar.gz -C deploy/samza</code></pre></div>
+tar -xvf ./target/hello-samza-0.14.1-SNAPSHOT-dist.tar.gz -C deploy/samza</code></pre></div>
 
 <h3 id="run-a-samza-job">Run a Samza Job</h3>
 
@@ -250,7 +251,7 @@ deploy/samza/bin/run-app.sh --config-fac
   
     <script>
       $( document ).ready(function() {
-        if ( $.fn.urlExists( "/startup/hello-samza/0.13/index.html" ) ) {
+        if ( $.fn.urlExists( "/startup/hello-samza/0.14/index.html" ) ) {
           $("#switch-version-button").addClass("fa fa-history masthead-icon");
         }
       });