You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by mm...@apache.org on 2019/10/31 17:47:25 UTC

[accumulo-website] branch asf-site updated: Jekyll build from master:b49d061

This is an automated email from the ASF dual-hosted git repository.

mmiller pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/accumulo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 9e549a5  Jekyll build from master:b49d061
9e549a5 is described below

commit 9e549a57700c803e7d8b3953bdc27c92d22409aa
Author: Mike Miller <mm...@apache.org>
AuthorDate: Thu Oct 31 13:46:48 2019 -0400

    Jekyll build from master:b49d061
    
    Update Tour for 2.0. Fixes #153 (#201)
    
    * Update modules to use client instead of connector
    * Add a module for using client
    * Use new createBatchWriter method
    
    Co-Authored-By: Keith Turner <kt...@apache.org>
---
 feed.xml                                  |  4 +-
 redirects.json                            |  2 +-
 tour/authorizations-code/index.html       | 45 +++++++++++----------
 tour/authorizations/index.html            | 19 +++++----
 tour/basic-read-write/index.html          | 24 +++++------
 tour/batch-scanner-code/index.html        | 15 ++++---
 tour/batch-scanner/index.html             | 13 +++---
 tour/{ranges-splits => client}/index.html | 67 +++++++++++++++----------------
 tour/conditional-writer-code/index.html   |  8 ++--
 tour/conditional-writer/index.html        | 33 ++++++++-------
 tour/data-model-code/index.html           | 15 ++++---
 tour/data-model/index.html                |  4 +-
 tour/getting-started/index.html           | 18 ++++-----
 tour/index.html                           | 11 +++--
 tour/ranges-splits/index.html             |  4 +-
 tour/using-iterators/index.html           |  4 +-
 16 files changed, 140 insertions(+), 146 deletions(-)

diff --git a/feed.xml b/feed.xml
index 18ef208..a74f0ec 100644
--- a/feed.xml
+++ b/feed.xml
@@ -6,8 +6,8 @@
 </description>
     <link>https://accumulo.apache.org/</link>
     <atom:link href="https://accumulo.apache.org/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Tue, 29 Oct 2019 13:09:11 -0400</pubDate>
-    <lastBuildDate>Tue, 29 Oct 2019 13:09:11 -0400</lastBuildDate>
+    <pubDate>Thu, 31 Oct 2019 13:46:45 -0400</pubDate>
+    <lastBuildDate>Thu, 31 Oct 2019 13:46:45 -0400</lastBuildDate>
     <generator>Jekyll v4.0.0</generator>
     
     
diff --git a/redirects.json b/redirects.json
index 4bda3a4..6e10199 100644
--- a/redirects.json
+++ b/redirects.json
@@ -1 +1 @@
-{"/release_notes/1.5.1.html":"https://accumulo.apache.org/release/accumulo-1.5.1/","/release_notes/1.6.0.html":"https://accumulo.apache.org/release/accumulo-1.6.0/","/release_notes/1.6.1.html":"https://accumulo.apache.org/release/accumulo-1.6.1/","/release_notes/1.6.2.html":"https://accumulo.apache.org/release/accumulo-1.6.2/","/release_notes/1.7.0.html":"https://accumulo.apache.org/release/accumulo-1.7.0/","/release_notes/1.5.3.html":"https://accumulo.apache.org/release/accumulo-1.5.3/" [...]
\ No newline at end of file
+{"/release_notes/1.5.1.html":"https://accumulo.apache.org/release/accumulo-1.5.1/","/release_notes/1.6.0.html":"https://accumulo.apache.org/release/accumulo-1.6.0/","/release_notes/1.6.1.html":"https://accumulo.apache.org/release/accumulo-1.6.1/","/release_notes/1.6.2.html":"https://accumulo.apache.org/release/accumulo-1.6.2/","/release_notes/1.7.0.html":"https://accumulo.apache.org/release/accumulo-1.7.0/","/release_notes/1.5.3.html":"https://accumulo.apache.org/release/accumulo-1.5.3/" [...]
\ No newline at end of file
diff --git a/tour/authorizations-code/index.html b/tour/authorizations-code/index.html
index 88464a0..1f0d6a0 100644
--- a/tour/authorizations-code/index.html
+++ b/tour/authorizations-code/index.html
@@ -144,15 +144,14 @@
 
 <div id="tour-header">
   <h2><a href="/tour/">Accumulo Tour</a>: Authorizations Code</h2>
-  <p class="text-muted">Tour page 6 of 11</p>
+  <p class="text-muted">Tour page 7 of 12</p>
 </div>
 <div id="tour-content">
   <p>Below is a solution for the exercise.</p>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">MiniAccumuloCluster</span> <span class="n">mac</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
-    <span class="c1">// Connect to Mini Accumulo as the root user and create a table called "GothamPD".</span>
-    <span class="nc">Connector</span> <span class="n">conn</span> <span class="o">=</span> <span class="n">mac</span><span class="o">.</span><span class="na">getConnector</span><span class="o">(</span><span class="s">"root"</span><span class="o">,</span> <span class="s">"tourguide"</span><span class="o">);</span>
-    <span class="n">conn</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">create</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">);</span>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">client</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
+    <span class="c1">// create a table called "GothamPD".</span>
+    <span class="n">client</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">create</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">);</span>
 
     <span class="c1">// Create a "secretId" authorization &amp; visibility</span>
     <span class="kd">final</span> <span class="nc">String</span> <span class="n">secretId</span> <span class="o">=</span> <span class="s">"secretId"</span><span class="o">;</span>
@@ -160,35 +159,37 @@
     <span class="nc">ColumnVisibility</span> <span class="n">colVis</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">ColumnVisibility</span><span class="o">(</span><span class="n">secretId</span><span class="o">);</span>
 
     <span class="c1">// Create a user with the "secretId" authorization and grant him read permissions on our table</span>
-    <span class="n">conn</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">().</span><span class="na">createLocalUser</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="k">new</span> <span class="nc">PasswordToken</span><span class="o">(</span><span class="s">"gordonrocks"</span><span class="o">));</span>
-    <span class="n">conn</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">().</span><span class="na">changeUserAuthorizations</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="n">auths</span><span class="o">);</span>
-    <span class="n">conn</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">().</span><span class="na">grantTablePermission</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="s">"GothamPD"</span><span class="o">,</span> <span class="nc">TablePermission</span><span class="o">.</span><span class="na">READ</span><span class="o">);</span>
+    <span class="n">client</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">().</span><span class="na">createLocalUser</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="k">new</span> <span class="nc">PasswordToken</span><span class="o">(</span><span class="s">"gordonrocks"</span><span class="o">));</span>
+    <span class="n">client</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">().</span><span class="na">changeUserAuthorizations</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="n">auths</span><span class="o">);</span>
+    <span class="n">client</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">().</span><span class="na">grantTablePermission</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="s">"GothamPD"</span><span class="o">,</span> <span class="nc">TablePermission</span><span class="o">.</span><span class="na">READ</span><span class="o">);</span>
 
     <span class="c1">// Create 3 Mutation objects, securing the proper columns.</span>
     <span class="nc">Mutation</span> <span class="n">mutation1</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Mutation</span><span class="o">(</span><span class="s">"id0001"</span><span class="o">);</span>
-    <span class="n">mutation1</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span><span class="s">"alias"</span><span class="o">,</span> <span class="s">"Batman"</span><span class="o">);</span>
-    <span class="n">mutation1</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span><span class="s">"name"</span><span class="o">,</span> <span class="n">colVis</span><span class="o">,</span> <span class="s">"Bruce Wayne"</span><span class="o">);</span>
-    <span class="n">mutation1</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span><span class="s">"wearsCape?"</span><span class="o">,</span> <span class="s">"true"</span><span class="o">);</span>
+    <span class="n">mutation1</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span> <span class="s">"alias"</span><span class="o">,</span> <span class="s">"Batman"</span><span class="o">);</span>
+    <span class="n">mutation1</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span> <span class="s">"name"</span><span class="o">,</span> <span class="n">colVis</span><span class="o">,</span> <span class="s">"Bruce Wayne"</span><span class="o">);</span>
+    <span class="n">mutation1</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span> <span class="s">"wearsCape?"</span><span class="o">,</span> <span class="s">"true"</span><span class="o">);</span>
     <span class="nc">Mutation</span> <span class="n">mutation2</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Mutation</span><span class="o">(</span><span class="s">"id0002"</span><span class="o">);</span>
-    <span class="n">mutation2</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span><span class="s">"alias"</span><span class="o">,</span> <span class="s">"Robin"</span><span class="o">);</span>
-    <span class="n">mutation2</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span><span class="s">"name"</span><span class="o">,</span> <span class="n">colVis</span><span class="o">,</span><span class="s">"Dick Grayson"</span><span class="o">);</span>
-    <span class="n">mutation2</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span><span class="s">"wearsCape?"</span><span class="o">,</span> <span class="s">"true"</span><span class="o">);</span>
+    <span class="n">mutation2</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span> <span class="s">"alias"</span><span class="o">,</span> <span class="s">"Robin"</span><span class="o">);</span>
+    <span class="n">mutation2</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span> <span class="s">"name"</span><span class="o">,</span> <span class="n">colVis</span><span class="o">,</span> <span class="s">"Dick Grayson"</span><span class="o">);</span>
+    <span class="n">mutation2</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span> <span class="s">"wearsCape?"</span><span class="o">,</span> <span class="s">"true"</span><span class="o">);</span>
     <span class="nc">Mutation</span> <span class="n">mutation3</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Mutation</span><span class="o">(</span><span class="s">"id0003"</span><span class="o">);</span>
-    <span class="n">mutation3</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"villain"</span><span class="o">,</span><span class="s">"alias"</span><span class="o">,</span> <span class="s">"Joker"</span><span class="o">);</span>
-    <span class="n">mutation3</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"villain"</span><span class="o">,</span><span class="s">"name"</span><span class="o">,</span> <span class="s">"Unknown"</span><span class="o">);</span>
-    <span class="n">mutation3</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"villain"</span><span class="o">,</span><span class="s">"wearsCape?"</span><span class="o">,</span> <span class="s">"false"</span><span class="o">);</span>
+    <span class="n">mutation3</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"villain"</span><span class="o">,</span> <span class="s">"alias"</span><span class="o">,</span> <span class="s">"Joker"</span><span class="o">);</span>
+    <span class="n">mutation3</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"villain"</span><span class="o">,</span> <span class="s">"name"</span><span class="o">,</span> <span class="s">"Unknown"</span><span class="o">);</span>
+    <span class="n">mutation3</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"villain"</span><span class="o">,</span> <span class="s">"wearsCape?"</span><span class="o">,</span> <span class="s">"false"</span><span class="o">);</span>
 
     <span class="c1">// Create a BatchWriter to the GothamPD table and add your mutations to it.</span>
     <span class="c1">// Once the BatchWriter is closed by the try w/ resources, data will be available to scans.</span>
-    <span class="k">try</span> <span class="o">(</span><span class="nc">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="k">new</span> <span class="nc">BatchWriterConfig</span><span class="o">()))</span> <span class="o">{</span>
+    <span class="k">try</span> <span class="o">(</span><span class="nc">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">))</span> <span class="o">{</span>
         <span class="n">writer</span><span class="o">.</span><span class="na">addMutation</span><span class="o">(</span><span class="n">mutation1</span><span class="o">);</span>
         <span class="n">writer</span><span class="o">.</span><span class="na">addMutation</span><span class="o">(</span><span class="n">mutation2</span><span class="o">);</span>
         <span class="n">writer</span><span class="o">.</span><span class="na">addMutation</span><span class="o">(</span><span class="n">mutation3</span><span class="o">);</span>
     <span class="o">}</span>
 
-    <span class="c1">// Read and print all rows of the commissioner can see. Pass Scanner proper authorizations</span>
-    <span class="nc">Connector</span> <span class="n">commishConn</span> <span class="o">=</span> <span class="n">mac</span><span class="o">.</span><span class="na">getConnector</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="s">"gordonrocks"</span><span class="o">);</span>
-    <span class="k">try</span> <span class="o">(</span><span class="nc">Scanner</span> <span class="n">scan</span> <span class="o">=</span> <span class="n">commishConn</span><span class="o">.</span><span class="na">createScanner</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="n">auths</span><span class="o">))</span> <span class="o">{</span>
+    <span class="c1">// Create a second client for the commissioner. Then print all the rows visibile to the</span>
+    <span class="c1">// commissioner. Make sure to pass the proper authorizations to the Scanner</span>
+    <span class="k">try</span> <span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">commishClient</span> <span class="o">=</span> <span class="nc">Accumulo</span><span class="o">.</span><span class="na">newClient</span><span class="o">().</span><span class="na">from</span><span class="o">(</span><span class="n">client</span><span class="o">.</span><span class="na">properties</span><span class="o">())</span>
+            <span class="o">.</span><span class="na">as</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="s">"gordonrocks"</span><span class="o">).</span><span class="na">build</span><span class="o">();</span>
+        <span class="nc">Scanner</span> <span class="n">scan</span> <span class="o">=</span> <span class="n">commishClient</span><span class="o">.</span><span class="na">createScanner</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="n">auths</span><span class="o">))</span> <span class="o">{</span>
         <span class="nc">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">"Gotham Police Department Persons of Interest:"</span><span class="o">);</span>
         <span class="k">for</span> <span class="o">(</span><span class="nc">Map</span><span class="o">.</span><span class="na">Entry</span><span class="o">&lt;</span><span class="nc">Key</span><span class="o">,</span> <span class="nc">Value</span><span class="o">&gt;</span> <span class="n">entry</span> <span class="o">:</span> <span class="n">scan</span><span class="o">)</span> <span class="o">{</span>
             <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"Key : %-60s  Value : %s\n"</span><span class="o">,</span> <span class="n">entry</span><span class="o">.</span><span class="na">getKey</span><span class="o">(),</span> <span class="n">entry</span><span class="o">.</span><span class="na">getValue</span><span class="o">());</span>
@@ -231,7 +232,7 @@ if (e.keyCode == '39') { window.location = '/tour/ranges-splits/'; }
     <a href="/tour/authorizations/">&lt;</a>
     
 
-    6 / 11
+    7 / 12
     
     <a href="/tour/ranges-splits/">&gt;</a>
     
diff --git a/tour/authorizations/index.html b/tour/authorizations/index.html
index a20e0a6..91e3ac8 100644
--- a/tour/authorizations/index.html
+++ b/tour/authorizations/index.html
@@ -144,7 +144,7 @@
 
 <div id="tour-header">
   <h2><a href="/tour/">Accumulo Tour</a>: Authorizations</h2>
-  <p class="text-muted">Tour page 5 of 11</p>
+  <p class="text-muted">Tour page 6 of 12</p>
 </div>
 <div id="tour-content">
   <p><a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.0.0/org/apache/accumulo/core/security/Authorizations.html">Authorizations</a> are a set of Strings that enable a user to read protected data. Users are granted authorizations
@@ -164,16 +164,16 @@ visible to the user.</p>
 <p>We now want to secure our secret identities of the heroes so that only users with the proper authorizations can read their names.</p>
 
 <ol>
-  <li>Using the code from the previous exercise, add the following to the beginning of the <em>exercise</em> method (after we get the Connector).
+  <li>Using the code from the previous exercise, add the following to the beginning of the <em>exercise</em> method.
     <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>     <span class="c1">// Create a "secretId" authorization &amp; visibility</span>
      <span class="kd">final</span> <span class="nc">String</span> <span class="n">secretId</span> <span class="o">=</span> <span class="s">"secretId"</span><span class="o">;</span>
      <span class="nc">Authorizations</span> <span class="n">auths</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Authorizations</span><span class="o">(</span><span class="n">secretId</span><span class="o">);</span>
      <span class="nc">ColumnVisibility</span> <span class="n">colVis</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">ColumnVisibility</span><span class="o">(</span><span class="n">secretId</span><span class="o">);</span>
         
      <span class="c1">// Create a user with the "secretId" authorization and grant him read permissions on our table</span>
-     <span class="n">conn</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">().</span><span class="na">createLocalUser</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="k">new</span> <span class="nc">PasswordToken</span><span class="o">(</span><span class="s">"gordonrocks"</span><span class="o">));</span>
-     <span class="n">conn</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">().</span><span class="na">changeUserAuthorizations</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="n">auths</span><span class="o">);</span>
-     <span class="n">conn</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">().</span><span class="na">grantTablePermission</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="s">"GothamPD"</span><span class="o">,</span> <span class="nc">TablePermission</span><span class="o">.</span><span class="na">READ</span><span class="o">);</span>
+     <span class="n">client</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">().</span><span class="na">createLocalUser</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="k">new</span> <span class="nc">PasswordToken</span><span class="o">(</span><span class="s">"gordonrocks"</span><span class="o">));</span>
+     <span class="n">client</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">().</span><span class="na">changeUserAuthorizations</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="n">auths</span><span class="o">);</span>
+     <span class="n">client</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">().</span><span class="na">grantTablePermission</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="s">"GothamPD"</span><span class="o">,</span> <span class="nc">TablePermission</span><span class="o">.</span><span class="na">READ</span><span class="o">);</span>
 </code></pre></div>    </div>
   </li>
   <li>
@@ -188,8 +188,13 @@ the Mutation API and modify the code so the <code class="highlighter-rouge">colV
       <li>This should result in an error since the root user doesn’t have the authorizations we tried to pass to the Scanner.</li>
     </ul>
   </li>
+  <li>Use the following to create a client for the “commissioner” using the <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.0.0/org/apache/accumulo/core/client/Accumulo.html">Accumulo</a> entry point.
+    <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">try</span> <span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">commishClient</span> <span class="o">=</span> <span class="nc">Accumulo</span><span class="o">.</span><span class="na">newClient</span><span class="o">().</span><span class="na">from</span><span class="o">(</span><span class="n">client</span><span class="o">.</span><span class="na">pr [...]
+ <span class="o">.</span><span class="na">as</span><span class="o">(</span><span class="s">"commissioner"</span><span class="o">,</span> <span class="s">"gordonrocks"</span><span class="o">).</span><span class="na">build</span><span class="o">();</span>
+</code></pre></div>    </div>
+  </li>
   <li>
-    <p>Get a connector for the “commissioner” and from it create a Scanner with the authorizations needed to view the secret identities.</p>
+    <p>Using the commissioner client, create a Scanner with the authorizations needed to view the secret identities.</p>
   </li>
   <li>Build and run.  You should see all the rows in the GothamPD table printed, including these secured key/value pairs:
     <pre><code class="language-commandline">Key : id0001 hero:name [secretId] 1511900180231 false         Value : Bruce Wayne
@@ -219,7 +224,7 @@ if (e.keyCode == '39') { window.location = '/tour/authorizations-code/'; }
     <a href="/tour/data-model-code/">&lt;</a>
     
 
-    5 / 11
+    6 / 12
     
     <a href="/tour/authorizations-code/">&gt;</a>
     
diff --git a/tour/basic-read-write/index.html b/tour/basic-read-write/index.html
index dca7a6f..1684c6f 100644
--- a/tour/basic-read-write/index.html
+++ b/tour/basic-read-write/index.html
@@ -144,17 +144,16 @@
 
 <div id="tour-header">
   <h2><a href="/tour/">Accumulo Tour</a>: Writing and Reading</h2>
-  <p class="text-muted">Tour page 2 of 11</p>
+  <p class="text-muted">Tour page 3 of 12</p>
 </div>
 <div id="tour-content">
   <p>Accumulo is a big key/value store.  Writing data to Accumulo is flexible and fast.  Like any database, Accumulo stores
 data in tables and rows.  Each row in an Accumulo table can hold many key/value pairs. Our next exercise shows how to
 write and read from a table.</p>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">MiniAccumuloCluster</span> <span class="n">mac</span><span class="o">)</span> <span class="o">{</span>
-    <span class="c1">// Connect to Mini Accumulo as the root user and create a table called "GothamPD".</span>
-    <span class="nc">Connector</span> <span class="n">conn</span> <span class="o">=</span> <span class="n">mac</span><span class="o">.</span><span class="na">getConnector</span><span class="o">(</span><span class="s">"root"</span><span class="o">,</span> <span class="s">"tourguide"</span><span class="o">);</span>
-    <span class="n">conn</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">create</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">);</span>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">client</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
+    <span class="c1">// create a table called "GothamPD".</span>
+    <span class="n">client</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">create</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">);</span>
 
     <span class="c1">// Create a Mutation object to hold all changes to a row in a table.  Each row has a unique row ID.</span>
     <span class="nc">Mutation</span> <span class="n">mutation</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Mutation</span><span class="o">(</span><span class="s">"id0001"</span><span class="o">);</span>
@@ -165,12 +164,12 @@ write and read from a table.</p>
     <span class="n">mutation</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"hero"</span><span class="o">,</span><span class="s">"wearsCape?"</span><span class="o">,</span> <span class="s">"true"</span><span class="o">);</span>
 
     <span class="c1">// Create a BatchWriter to the GothamPD table and add your mutation to it. Try w/ resources will close for us.</span>
-    <span class="k">try</span> <span class="o">(</span><span class="nc">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="k">new</span> <span class="nc">BatchWriterConfig</span><span class="o">()))</span> <span class="o">{</span>
+    <span class="k">try</span> <span class="o">(</span><span class="nc">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">))</span> <span class="o">{</span>
         <span class="n">writer</span><span class="o">.</span><span class="na">addMutation</span><span class="o">(</span><span class="n">mutation</span><span class="o">);</span>
     <span class="o">}</span>
 
     <span class="c1">// Read and print all rows of the "GothamPD" table. Try w/ resources will close for us.</span>
-    <span class="k">try</span> <span class="o">(</span><span class="nc">Scanner</span> <span class="n">scan</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createScanner</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="nc">Authorizations</span><span class="o">.</span><span class="na">EMPTY</span><span class="o">))</span> <span class="o">{</span>
+    <span class="k">try</span> <span class="o">(</span><span class="nc">Scanner</span> <span class="n">scan</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">createScanner</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="nc">Authorizations</span><span class="o">.</span><span class="na">EMPTY</span><span class="o">))</span> <span class="o">{</span>
         <span class="nc">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">"Gotham Police Department Persons of Interest:"</span><span class="o">);</span>
         <span class="c1">// A Scanner is an extension of java.lang.Iterable so behaves just like one.</span>
         <span class="k">for</span> <span class="o">(</span><span class="nc">Map</span><span class="o">.</span><span class="na">Entry</span><span class="o">&lt;</span><span class="nc">Key</span><span class="o">,</span> <span class="nc">Value</span><span class="o">&gt;</span> <span class="n">entry</span> <span class="o">:</span> <span class="n">scan</span><span class="o">)</span> <span class="o">{</span>
@@ -180,10 +179,7 @@ write and read from a table.</p>
 <span class="o">}</span>
 </code></pre></div></div>
 
-<p>Copy this code into your <code class="highlighter-rouge">exercise</code> method and run it using the command below.</p>
-
-<pre><code class="language-commandline">mvn -q clean compile exec:java
-</code></pre>
+<p>Copy this code into your <code class="highlighter-rouge">exercise</code> method then compile and run.</p>
 
 <p>Good job! That is all it takes to write and read from Accumulo.</p>
 
@@ -202,7 +198,7 @@ to read it.  More to come later in the <a href="/tour/authorizations">Authorizat
 <script>
 document.body.onkeyup = function(e){
 
-if (e.keyCode == '37') { window.location = '/tour/getting-started/'; }
+if (e.keyCode == '37') { window.location = '/tour/client/'; }
 
 
 
@@ -214,10 +210,10 @@ if (e.keyCode == '39') { window.location = '/tour/data-model/'; }
 <div class="text-center">
   <h2>
     
-    <a href="/tour/getting-started/">&lt;</a>
+    <a href="/tour/client/">&lt;</a>
     
 
-    2 / 11
+    3 / 12
     
     <a href="/tour/data-model/">&gt;</a>
     
diff --git a/tour/batch-scanner-code/index.html b/tour/batch-scanner-code/index.html
index 2f3975a..0fcb803 100644
--- a/tour/batch-scanner-code/index.html
+++ b/tour/batch-scanner-code/index.html
@@ -144,18 +144,17 @@
 
 <div id="tour-header">
   <h2><a href="/tour/">Accumulo Tour</a>: Batch Scanner Code</h2>
-  <p class="text-muted">Tour page 9 of 11</p>
+  <p class="text-muted">Tour page 10 of 12</p>
 </div>
 <div id="tour-content">
   <p>Below is a solution to the exercise.</p>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">MiniAccumuloCluster</span> <span class="n">mac</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
-    <span class="c1">// Connect to Mini Accumulo as the root user and create a table called "GothamPD".</span>
-    <span class="nc">Connector</span> <span class="n">conn</span> <span class="o">=</span> <span class="n">mac</span><span class="o">.</span><span class="na">getConnector</span><span class="o">(</span><span class="s">"root"</span><span class="o">,</span> <span class="s">"tourguide"</span><span class="o">);</span>
-    <span class="n">conn</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">create</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">);</span>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">client</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
+    <span class="c1">// create a table called "GothamPD".</span>
+    <span class="n">client</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">create</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">);</span>
 
     <span class="c1">// Generate 10,000 rows of henchman data</span>
-    <span class="k">try</span><span class="o">(</span><span class="nc">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="k">new</span> <span class="nc">BatchWriterConfig</span><span class="o">()))</span> <span class="o">{</span>
+    <span class="k">try</span><span class="o">(</span><span class="nc">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">))</span> <span class="o">{</span>
         <span class="k">for</span><span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">10_000</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
             <span class="nc">Mutation</span> <span class="n">m</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Mutation</span><span class="o">(</span><span class="nc">String</span><span class="o">.</span><span class="na">format</span><span class="o">(</span><span class="s">"id%04d"</span><span class="o">,</span> <span class="n">i</span><span class="o">));</span>
             <span class="n">m</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"villain"</span><span class="o">,</span> <span class="s">"alias"</span><span class="o">,</span> <span class="s">"henchman"</span> <span class="o">+</span> <span class="n">i</span><span class="o">);</span>
@@ -166,7 +165,7 @@
     <span class="o">}</span>
 
     <span class="c1">// 1. Create a BatchScanner with 5 query threads</span>
-    <span class="k">try</span><span class="o">(</span><span class="nc">BatchScanner</span> <span class="n">batchScanner</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createBatchScanner</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="nc">Authorizations</span><span class="o">.</span><span class="na">EMPTY</span><span class="o">,</span> <span class="mi">5</span><span class="o">))</span [...]
+    <span class="k">try</span><span class="o">(</span><span class="nc">BatchScanner</span> <span class="n">batchScanner</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">createBatchScanner</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="nc">Authorizations</span><span class="o">.</span><span class="na">EMPTY</span><span class="o">,</span> <span class="mi">5</span><span class="o">))</sp [...]
         <span class="c1">// 2. Create a collection of 2 sample ranges and set it to the batchScanner</span>
         <span class="nc">List</span> <span class="n">ranges</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">ArrayList</span><span class="o">&lt;</span><span class="nc">Range</span><span class="o">&gt;();</span>
         <span class="n">ranges</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="k">new</span> <span class="nc">Range</span><span class="o">(</span><span class="s">"id1000"</span><span class="o">,</span> <span class="s">"id1999"</span><span class="o">));</span>
@@ -213,7 +212,7 @@ if (e.keyCode == '39') { window.location = '/tour/conditional-writer/'; }
     <a href="/tour/batch-scanner/">&lt;</a>
     
 
-    9 / 11
+    10 / 12
     
     <a href="/tour/conditional-writer/">&gt;</a>
     
diff --git a/tour/batch-scanner/index.html b/tour/batch-scanner/index.html
index 96cb1f7..69eaf18 100644
--- a/tour/batch-scanner/index.html
+++ b/tour/batch-scanner/index.html
@@ -144,20 +144,19 @@
 
 <div id="tour-header">
   <h2><a href="/tour/">Accumulo Tour</a>: Batch Scanner</h2>
-  <p class="text-muted">Tour page 8 of 11</p>
+  <p class="text-muted">Tour page 9 of 12</p>
 </div>
 <div id="tour-content">
   <p>Running on a single thread, a Scanner will retrieve a single Range of data and return Keys in sorted order. A <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.0.0/org/apache/accumulo/core/client/BatchScanner.html">BatchScanner</a> 
 will retrieve multiple Ranges of data using multiple threads.  A BatchScanner can be more efficient but does not guarantee Keys will be returned in sorted order.</p>
 
 <p>For this exercise, we need to generate a bunch of data to test BatchScanner.  Copy the code below into your <code class="highlighter-rouge">exercise</code> method.</p>
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">MiniAccumuloCluster</span> <span class="n">mac</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
-    <span class="c1">// Connect to Mini Accumulo as the root user and create a table called "GothamPD".</span>
-    <span class="nc">Connector</span> <span class="n">conn</span> <span class="o">=</span> <span class="n">mac</span><span class="o">.</span><span class="na">getConnector</span><span class="o">(</span><span class="s">"root"</span><span class="o">,</span> <span class="s">"tourguide"</span><span class="o">);</span>
-    <span class="n">conn</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">create</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">);</span>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">client</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
+    <span class="c1">// create a table called "GothamPD".</span>
+    <span class="n">client</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">create</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">);</span>
 
     <span class="c1">// Generate 10,000 rows of henchman data, each with a different number yearsOfService</span>
-    <span class="k">try</span> <span class="o">(</span><span class="nc">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="k">new</span> <span class="nc">BatchWriterConfig</span><span class="o">()))</span> <span class="o">{</span>
+    <span class="k">try</span> <span class="o">(</span><span class="nc">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">))</span> <span class="o">{</span>
         <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">10_000</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
             <span class="nc">Mutation</span> <span class="n">m</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Mutation</span><span class="o">(</span><span class="nc">String</span><span class="o">.</span><span class="na">format</span><span class="o">(</span><span class="s">"id%04d"</span><span class="o">,</span> <span class="n">i</span><span class="o">));</span>
             <span class="n">m</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"villain"</span><span class="o">,</span> <span class="s">"alias"</span><span class="o">,</span> <span class="s">"henchman"</span> <span class="o">+</span> <span class="n">i</span><span class="o">);</span>
@@ -209,7 +208,7 @@ if (e.keyCode == '39') { window.location = '/tour/batch-scanner-code/'; }
     <a href="/tour/ranges-splits/">&lt;</a>
     
 
-    8 / 11
+    9 / 12
     
     <a href="/tour/batch-scanner-code/">&gt;</a>
     
diff --git a/tour/ranges-splits/index.html b/tour/client/index.html
similarity index 66%
copy from tour/ranges-splits/index.html
copy to tour/client/index.html
index 9ff1cb1..7c22bd7 100644
--- a/tour/ranges-splits/index.html
+++ b/tour/client/index.html
@@ -25,7 +25,7 @@
 <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/bs/jq-2.2.3/dt-1.10.12/datatables.min.css">
 <link href="/css/accumulo.css" rel="stylesheet" type="text/css">
 
-<title>Ranges and Splits</title>
+<title>Connecting to Accumulo</title>
 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
@@ -137,48 +137,45 @@
         </div>
         <div id="content">
           
-          <h1 class="title">Ranges and Splits</h1>
+          <h1 class="title">Connecting to Accumulo</h1>
           
           
 
 
 <div id="tour-header">
-  <h2><a href="/tour/">Accumulo Tour</a>: Ranges and Splits</h2>
-  <p class="text-muted">Tour page 7 of 11</p>
+  <h2><a href="/tour/">Accumulo Tour</a>: Connecting to Accumulo</h2>
+  <p class="text-muted">Tour page 2 of 12</p>
 </div>
 <div id="tour-content">
-  <p>A <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.0.0/org/apache/accumulo/core/data/Range.html">Range</a> is a specified group of Keys. There are many different ways to create a Range.  Here are a few examples:</p>
+  <p>Connecting to a live instance of Accumulo is done through the <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.0.0/org/apache/accumulo/core/client/AccumuloClient.html">AccumuloClient</a> object.  This object contains a live connection
+to Accumulo and will remain open until closed.  All client operations can be accessed from this one object.</p>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">Range</span> <span class="n">r1</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Range</span><span class="o">(</span><span class="n">startKey</span><span class="o">,</span> <span class="n">endKey</span><span class="o">);</span>  <span class="c1">// Creates a range from startKey inclusive to endKey inclusive.</span>
-<span class="nc">Range</span> <span class="n">r2</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Range</span><span class="o">(</span><span class="n">row</span><span class="o">);</span>               <span class="c1">// Creates a range that covers an entire row.</span>
-<span class="nc">Range</span> <span class="n">r3</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Range</span><span class="o">(</span><span class="n">startRow</span><span class="o">,</span> <span class="n">endRow</span><span class="o">);</span>  <span class="c1">// Creates a range from startRow inclusive to endRow inclusive.</span>
-</code></pre></div></div>
-
-<p>A Scanner by default will scan all Keys in a table but this can be inefficient. It is a good practice to set a range on a Scanner.</p>
-
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">scanner</span><span class="o">.</span><span class="na">setRange</span><span class="o">(</span><span class="k">new</span> <span class="nc">Range</span><span class="o">(</span><span class="s">"id0000"</span><span class="o">,</span> <span class="s">"id0010"</span><span class="o">));</span>  <span class="c1">// returns rows from id0000 to id0010</span>
-</code></pre></div></div>
+<p>The <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.0.0/org/apache/accumulo/core/client/Accumulo.html">Accumulo</a> entry point is used to create a client by calling <code class="highlighter-rouge">Accumulo.newClient()</code>.  The client can
+be created from properties by using one of the <code class="highlighter-rouge">from()</code> methods or using the <code class="highlighter-rouge">to()</code> and <code class="highlighter-rouge">as()</code> methods
+to specify the connection information directly.</p>
 
-<p>As your data grows larger, Accumulo will split tables into smaller pieces called Tablets.  Tablets can then be distributed across multiple Tablet Servers.<br />
-By default, a table will get split into Tablets on row boundaries, guaranteeing an entire row to be on one Tablet Server.  We have the ability to 
-tell Accumulo where to split tables by setting split points. This is done using <code class="highlighter-rouge">addSplits</code> in the <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.0.0/org/apache/accumulo/core/client/admin/TableOperations.html">TableOperations</a> API.  The image below 
-demonstrates how Accumulo splits data.</p>
+<p>For the tour, the client is passed to each exercise method and then closed before stopping the cluster.
+The properties used to create the client can be seen in <code class="highlighter-rouge">accumulo-client.properties</code> under <code class="highlighter-rouge">target/mac######/conf</code>
+Notice the client can be wrapped in a Java try-with-resources since it is AutoCloseable.</p>
 
-<p><img src="https://accumulo.apache.org/images/docs/data_distribution.png" alt="data distribution" /></p>
+<p>Start by using table operations to list the default tables and instance operations to get the instance ID.</p>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">client</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
+    <span class="k">for</span> <span class="o">(</span><span class="nc">String</span> <span class="n">t</span> <span class="o">:</span> <span class="n">client</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">list</span><span class="o">())</span>
+        <span class="nc">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">"Table: "</span> <span class="o">+</span> <span class="n">t</span><span class="o">);</span>
 
-<p>Take a minute to learn these Accumulo terms:</p>
-<ul>
-  <li><strong>Tablet</strong> - A partition of a table.</li>
-  <li><strong>Split</strong> - A point where tables are partitioned into separate tablets.</li>
-  <li><strong>Flush</strong> - Action taken when data is written from memory to disk.</li>
-  <li><strong>Compact</strong> - Action taken when files on disk are consolidated.</li>
-  <li><strong>Iterator</strong> - A server side mechanism that can filter and modify Key/Value pairs.</li>
-</ul>
+    <span class="nc">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">"Instance ID: "</span> <span class="o">+</span> <span class="n">client</span><span class="o">.</span><span class="na">instanceOperations</span><span class="o">().</span><span class="na">getInstanceID</span><span class="o">());</span>
+<span class="o">}</span>
+</code></pre></div></div>
 
-<p>Knowing these terms are critical when working closely with Accumulo.  Iterators are especially unique and powerful.  More on them later.</p>
+<p>Different types of operations are accessed by their respective method on the client:</p>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">client</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">();</span>
+<span class="n">client</span><span class="o">.</span><span class="na">namespaceOperations</span><span class="o">();</span>
+<span class="n">client</span><span class="o">.</span><span class="na">securityOperations</span><span class="o">();</span>
+<span class="n">client</span><span class="o">.</span><span class="na">instanceOperations</span><span class="o">();</span>
+<span class="n">client</span><span class="o">.</span><span class="na">replicationOperations</span><span class="o">();</span>
+</code></pre></div></div>
 
-<p>When working with large amounts of data across many Tablet Servers, a simple Scanner might not do the trick. Next lesson we learn about the power of 
-the multi-threaded BatchScanner!</p>
+<p>The client is also used directly to create Scanners and perform batch operations.  These will be explored later.</p>
 
 
 </div>
@@ -186,11 +183,11 @@ the multi-threaded BatchScanner!</p>
 <script>
 document.body.onkeyup = function(e){
 
-if (e.keyCode == '37') { window.location = '/tour/authorizations-code/'; }
+if (e.keyCode == '37') { window.location = '/tour/getting-started/'; }
 
 
 
-if (e.keyCode == '39') { window.location = '/tour/batch-scanner/'; }
+if (e.keyCode == '39') { window.location = '/tour/basic-read-write/'; }
 
 };
 </script>
@@ -198,12 +195,12 @@ if (e.keyCode == '39') { window.location = '/tour/batch-scanner/'; }
 <div class="text-center">
   <h2>
     
-    <a href="/tour/authorizations-code/">&lt;</a>
+    <a href="/tour/getting-started/">&lt;</a>
     
 
-    7 / 11
+    2 / 12
     
-    <a href="/tour/batch-scanner/">&gt;</a>
+    <a href="/tour/basic-read-write/">&gt;</a>
     
   </h2>
 </div>
diff --git a/tour/conditional-writer-code/index.html b/tour/conditional-writer-code/index.html
index b4320c6..088239e 100644
--- a/tour/conditional-writer-code/index.html
+++ b/tour/conditional-writer-code/index.html
@@ -144,13 +144,13 @@
 
 <div id="tour-header">
   <h2><a href="/tour/">Accumulo Tour</a>: Conditional Writer Code</h2>
-  <p class="text-muted">Tour page 11 of 11</p>
+  <p class="text-muted">Tour page 12 of 12</p>
 </div>
 <div id="tour-content">
   <p>Below is a solution to the exercise.</p>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="kd">static</span> <span class="kt">boolean</span> <span class="nf">setAddress</span><span class="o">(</span><span class="nc">Connector</span> <span class="n">conn</span><span class="o">,</span> <span class="nc">String</span> <span class="n">id</span><span class="o">,</span> <span class="nc">String</span> <span class="n">expectedAddr</span><span class="o">,</span> <span class="n [...]
-    <span class="k">try</span> <span class="o">(</span><span class="nc">ConditionalWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createConditionalWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="k">new</span> <span class="nc">ConditionalWriterConfig</span><span class="o">()))</span> <span class="o">{</span>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="kd">static</span> <span class="kt">boolean</span> <span class="nf">setAddress</span><span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">client</span><span class="o">,</span> <span class="nc">String</span> <span class="n">id</span><span class="o">,</span> <span class="nc">String</span> <span class="n">expectedAddr</span><span class="o">,</span> <span c [...]
+    <span class="k">try</span> <span class="o">(</span><span class="nc">ConditionalWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">createConditionalWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="k">new</span> <span class="nc">ConditionalWriterConfig</span><span class="o">()))</span> <span class="o">{</span>
       <span class="nc">Condition</span> <span class="n">condition</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Condition</span><span class="o">(</span><span class="s">"location"</span><span class="o">,</span> <span class="s">"home"</span><span class="o">);</span>
       <span class="k">if</span><span class="o">(</span><span class="n">expectedAddr</span> <span class="o">!=</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
         <span class="n">condition</span><span class="o">.</span><span class="na">setValue</span><span class="o">(</span><span class="n">expectedAddr</span><span class="o">);</span>
@@ -196,7 +196,7 @@ if (e.keyCode == '37') { window.location = '/tour/conditional-writer/'; }
     <a href="/tour/conditional-writer/">&lt;</a>
     
 
-    11 / 11
+    12 / 12
     
   </h2>
 </div>
diff --git a/tour/conditional-writer/index.html b/tour/conditional-writer/index.html
index eba4dc5..63bb9f4 100644
--- a/tour/conditional-writer/index.html
+++ b/tour/conditional-writer/index.html
@@ -144,7 +144,7 @@
 
 <div id="tour-header">
   <h2><a href="/tour/">Accumulo Tour</a>: Conditional Writer</h2>
-  <p class="text-muted">Tour page 10 of 11</p>
+  <p class="text-muted">Tour page 11 of 12</p>
 </div>
 <div id="tour-content">
   <p>Suppose the Gotham PD is storing home addresses for persons of interest in
@@ -184,9 +184,9 @@ starts multiple threads, with each thread doing the following.</p>
 is the batch writer always makes the update, even when the value has
 changed since it was read.</p>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="kd">static</span> <span class="nc">String</span> <span class="nf">getAddress</span><span class="o">(</span><span class="nc">Connector</span> <span class="n">conn</span><span class="o">,</span> <span class="nc">String</span> <span class="n">id</span><span class="o">)</span> <span class="o">{</span>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="kd">static</span> <span class="nc">String</span> <span class="nf">getAddress</span><span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">client</span><span class="o">,</span> <span class="nc">String</span> <span class="n">id</span><span class="o">)</span> <span class="o">{</span>
     <span class="c1">// The IsolatedScanner ensures partial changes to a row are not seen</span>
-    <span class="k">try</span> <span class="o">(</span><span class="nc">Scanner</span> <span class="n">scanner</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">IsolatedScanner</span><span class="o">(</span><span class="n">conn</span><span class="o">.</span><span class="na">createScanner</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="nc">Authorizations</span><span class="o">.</span><span class="na">EMPTY</spa [...]
+    <span class="k">try</span> <span class="o">(</span><span class="nc">Scanner</span> <span class="n">scanner</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">IsolatedScanner</span><span class="o">(</span><span class="n">client</span><span class="o">.</span><span class="na">createScanner</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="nc">Authorizations</span><span class="o">.</span><span class="na">EMPTY</s [...]
       <span class="n">scanner</span><span class="o">.</span><span class="na">setRange</span><span class="o">(</span><span class="nc">Range</span><span class="o">.</span><span class="na">exact</span><span class="o">(</span><span class="n">id</span><span class="o">,</span> <span class="s">"location"</span><span class="o">,</span> <span class="s">"home"</span><span class="o">));</span>
       <span class="k">for</span> <span class="o">(</span><span class="nc">Entry</span><span class="o">&lt;</span><span class="nc">Key</span><span class="o">,</span><span class="nc">Value</span><span class="o">&gt;</span> <span class="n">entry</span> <span class="o">:</span> <span class="n">scanner</span><span class="o">)</span> <span class="o">{</span>
         <span class="k">return</span> <span class="n">entry</span><span class="o">.</span><span class="na">getValue</span><span class="o">().</span><span class="na">toString</span><span class="o">();</span>
@@ -197,8 +197,8 @@ changed since it was read.</p>
     <span class="o">}</span>
   <span class="o">}</span>
 
-  <span class="kd">static</span> <span class="kt">boolean</span> <span class="nf">setAddress</span><span class="o">(</span><span class="nc">Connector</span> <span class="n">conn</span><span class="o">,</span> <span class="nc">String</span> <span class="n">id</span><span class="o">,</span> <span class="nc">String</span> <span class="n">expectedAddr</span><span class="o">,</span> <span class="nc">String</span> <span class="n">newAddr</span><span class="o">)</span> <span class="o">{</span>
-    <span class="k">try</span> <span class="o">(</span><span class="nc">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="k">new</span> <span class="nc">BatchWriterConfig</span><span class="o">()))</span> <span class="o">{</span>
+  <span class="kd">static</span> <span class="kt">boolean</span> <span class="nf">setAddress</span><span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">client</span><span class="o">,</span> <span class="nc">String</span> <span class="n">id</span><span class="o">,</span> <span class="nc">String</span> <span class="n">expectedAddr</span><span class="o">,</span> <span class="nc">String</span> <span class="n">newAddr</span><span class="o">)</span> <span class="o">{</span>
+    <span class="k">try</span> <span class="o">(</span><span class="nc">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">))</span> <span class="o">{</span>
       <span class="nc">Mutation</span> <span class="n">mutation</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Mutation</span><span class="o">(</span><span class="n">id</span><span class="o">);</span>
       <span class="n">mutation</span><span class="o">.</span><span class="na">put</span><span class="o">(</span><span class="s">"location"</span><span class="o">,</span> <span class="s">"home"</span><span class="o">,</span> <span class="n">newAddr</span><span class="o">);</span>
       <span class="n">writer</span><span class="o">.</span><span class="na">addMutation</span><span class="o">(</span><span class="n">mutation</span><span class="o">);</span>
@@ -208,34 +208,33 @@ changed since it was read.</p>
     <span class="o">}</span>
   <span class="o">}</span>
 
-  <span class="kd">public</span> <span class="kd">static</span> <span class="nc">Future</span><span class="o">&lt;</span><span class="nc">Void</span><span class="o">&gt;</span> <span class="nf">modifyAddress</span><span class="o">(</span><span class="nc">Connector</span> <span class="n">conn</span><span class="o">,</span> <span class="nc">String</span> <span class="n">id</span><span class="o">,</span> <span class="nc">Function</span><span class="o">&lt;</span><span class="nc">String</spa [...]
+  <span class="kd">public</span> <span class="kd">static</span> <span class="nc">Future</span><span class="o">&lt;</span><span class="nc">Void</span><span class="o">&gt;</span> <span class="nf">modifyAddress</span><span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">client</span><span class="o">,</span> <span class="nc">String</span> <span class="n">id</span><span class="o">,</span> <span class="nc">Function</span><span class="o">&lt;</span><span class="nc">Stri [...]
     <span class="k">return</span> <span class="nc">CompletableFuture</span><span class="o">.</span><span class="na">runAsync</span><span class="o">(()</span> <span class="o">-&gt;</span> <span class="o">{</span>
       <span class="nc">String</span> <span class="n">currAddr</span><span class="o">,</span> <span class="n">newAddr</span><span class="o">;</span>
       <span class="k">do</span> <span class="o">{</span>
-        <span class="n">currAddr</span> <span class="o">=</span> <span class="n">getAddress</span><span class="o">(</span><span class="n">conn</span><span class="o">,</span> <span class="n">id</span><span class="o">);</span>
+        <span class="n">currAddr</span> <span class="o">=</span> <span class="n">getAddress</span><span class="o">(</span><span class="n">client</span><span class="o">,</span> <span class="n">id</span><span class="o">);</span>
         <span class="n">newAddr</span> <span class="o">=</span> <span class="n">modifier</span><span class="o">.</span><span class="na">apply</span><span class="o">(</span><span class="n">currAddr</span><span class="o">);</span>
         <span class="nc">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"Thread %3d attempting change %20s -&gt; %-20s\n"</span><span class="o">,</span>
             <span class="nc">Thread</span><span class="o">.</span><span class="na">currentThread</span><span class="o">().</span><span class="na">getId</span><span class="o">(),</span> <span class="s">"'"</span><span class="o">+</span><span class="n">currAddr</span><span class="o">+</span><span class="s">"'"</span><span class="o">,</span> <span class="s">"'"</span><span class="o">+</span><span class="n">newAddr</span><span class="o">+</span><span class="s">"'"</span><span class="o">);</span>
-      <span class="o">}</span> <span class="k">while</span> <span class="o">(!</span><span class="n">setAddress</span><span class="o">(</span><span class="n">conn</span><span class="o">,</span> <span class="n">id</span><span class="o">,</span> <span class="n">currAddr</span><span class="o">,</span> <span class="n">newAddr</span><span class="o">));</span>
+      <span class="o">}</span> <span class="k">while</span> <span class="o">(!</span><span class="n">setAddress</span><span class="o">(</span><span class="n">client</span><span class="o">,</span> <span class="n">id</span><span class="o">,</span> <span class="n">currAddr</span><span class="o">,</span> <span class="n">newAddr</span><span class="o">));</span>
     <span class="o">});</span>
   <span class="o">}</span>
 
-  <span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">MiniAccumuloCluster</span> <span class="n">mac</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
-    <span class="nc">Connector</span> <span class="n">conn</span> <span class="o">=</span> <span class="n">mac</span><span class="o">.</span><span class="na">getConnector</span><span class="o">(</span><span class="s">"root"</span><span class="o">,</span> <span class="s">"tourguide"</span><span class="o">);</span>
-    <span class="n">conn</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">create</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">);</span>
+  <span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">client</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
+    <span class="n">client</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">create</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">);</span>
 
     <span class="nc">String</span> <span class="n">id</span> <span class="o">=</span> <span class="s">"id0001"</span><span class="o">;</span>
 
-    <span class="n">setAddress</span><span class="o">(</span><span class="n">conn</span><span class="o">,</span> <span class="n">id</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="s">"  1007 Mountain Drive, Gotham, New York  "</span><span class="o">);</span>
+    <span class="n">setAddress</span><span class="o">(</span><span class="n">client</span><span class="o">,</span> <span class="n">id</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="s">"  1007 Mountain Drive, Gotham, New York  "</span><span class="o">);</span>
 
     <span class="c1">// create async operation to trim whitespace</span>
-    <span class="nc">Future</span><span class="o">&lt;</span><span class="nc">Void</span><span class="o">&gt;</span> <span class="n">future1</span> <span class="o">=</span> <span class="n">modifyAddress</span><span class="o">(</span><span class="n">conn</span><span class="o">,</span> <span class="n">id</span><span class="o">,</span> <span class="nl">String:</span><span class="o">:</span><span class="n">trim</span><span class="o">);</span>
+    <span class="nc">Future</span><span class="o">&lt;</span><span class="nc">Void</span><span class="o">&gt;</span> <span class="n">future1</span> <span class="o">=</span> <span class="n">modifyAddress</span><span class="o">(</span><span class="n">client</span><span class="o">,</span> <span class="n">id</span><span class="o">,</span> <span class="nl">String:</span><span class="o">:</span><span class="n">trim</span><span class="o">);</span>
 
     <span class="c1">// create async operation to replace Dr with Drive</span>
-    <span class="nc">Future</span><span class="o">&lt;</span><span class="nc">Void</span><span class="o">&gt;</span> <span class="n">future2</span> <span class="o">=</span> <span class="n">modifyAddress</span><span class="o">(</span><span class="n">conn</span><span class="o">,</span> <span class="n">id</span><span class="o">,</span> <span class="n">addr</span> <span class="o">-&gt;</span> <span class="n">addr</span><span class="o">.</span><span class="na">replace</span><span class="o">(< [...]
+    <span class="nc">Future</span><span class="o">&lt;</span><span class="nc">Void</span><span class="o">&gt;</span> <span class="n">future2</span> <span class="o">=</span> <span class="n">modifyAddress</span><span class="o">(</span><span class="n">client</span><span class="o">,</span> <span class="n">id</span><span class="o">,</span> <span class="n">addr</span> <span class="o">-&gt;</span> <span class="n">addr</span><span class="o">.</span><span class="na">replace</span><span class="o"> [...]
 
     <span class="c1">// create async operation to replace New York with NY</span>
-    <span class="nc">Future</span><span class="o">&lt;</span><span class="nc">Void</span><span class="o">&gt;</span> <span class="n">future3</span> <span class="o">=</span> <span class="n">modifyAddress</span><span class="o">(</span><span class="n">conn</span><span class="o">,</span> <span class="n">id</span><span class="o">,</span> <span class="n">addr</span> <span class="o">-&gt;</span> <span class="n">addr</span><span class="o">.</span><span class="na">replace</span><span class="o">(< [...]
+    <span class="nc">Future</span><span class="o">&lt;</span><span class="nc">Void</span><span class="o">&gt;</span> <span class="n">future3</span> <span class="o">=</span> <span class="n">modifyAddress</span><span class="o">(</span><span class="n">client</span><span class="o">,</span> <span class="n">id</span><span class="o">,</span> <span class="n">addr</span> <span class="o">-&gt;</span> <span class="n">addr</span><span class="o">.</span><span class="na">replace</span><span class="o"> [...]
 
     <span class="c1">// wait for async operations to complete</span>
     <span class="n">future1</span><span class="o">.</span><span class="na">get</span><span class="o">();</span>
@@ -243,7 +242,7 @@ changed since it was read.</p>
     <span class="n">future3</span><span class="o">.</span><span class="na">get</span><span class="o">();</span>
 
     <span class="c1">// print the address stored in Accumulo</span>
-    <span class="nc">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">"Final address : '"</span><span class="o">+</span><span class="n">getAddress</span><span class="o">(</span><span class="n">conn</span><span class="o">,</span> <span class="n">id</span><span class="o">)+</span><span class="s">"'"</span><span class="o">);</span>
+    <span class="nc">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">"Final address : '"</span><span class="o">+</span><span class="n">getAddress</span><span class="o">(</span><span class="n">client</span><span class="o">,</span> <span class="n">id</span><span class="o">)+</span><span class="s">"'"</span><span class="o">);</span>
   <span class="o">}</span>
 </code></pre></div></div>
 
@@ -289,7 +288,7 @@ if (e.keyCode == '39') { window.location = '/tour/conditional-writer-code/'; }
     <a href="/tour/batch-scanner-code/">&lt;</a>
     
 
-    10 / 11
+    11 / 12
     
     <a href="/tour/conditional-writer-code/">&gt;</a>
     
diff --git a/tour/data-model-code/index.html b/tour/data-model-code/index.html
index b447f7d..2162e61 100644
--- a/tour/data-model-code/index.html
+++ b/tour/data-model-code/index.html
@@ -144,15 +144,14 @@
 
 <div id="tour-header">
   <h2><a href="/tour/">Accumulo Tour</a>: Data Model Code</h2>
-  <p class="text-muted">Tour page 4 of 11</p>
+  <p class="text-muted">Tour page 5 of 12</p>
 </div>
 <div id="tour-content">
   <p>Below is the solution for the exercise.</p>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">MiniAccumuloCluster</span> <span class="n">mac</span><span class="o">)</span> <span class="o">{</span>
-    <span class="c1">// Connect to Mini Accumulo as the root user and create a table called "GothamPD".</span>
-    <span class="nc">Connector</span> <span class="n">conn</span> <span class="o">=</span> <span class="n">mac</span><span class="o">.</span><span class="na">getConnector</span><span class="o">(</span><span class="s">"root"</span><span class="o">,</span> <span class="s">"tourguide"</span><span class="o">);</span>
-    <span class="n">conn</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">create</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">);</span>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">client</span><span class="o">)</span> <span class="kd">throws</span> <span class="nc">Exception</span> <span class="o">{</span>
+    <span class="c1">// create a table called "GothamPD".</span>
+    <span class="n">client</span><span class="o">.</span><span class="na">tableOperations</span><span class="o">().</span><span class="na">create</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">);</span>
 
     <span class="c1">// Create a row for Batman</span>
     <span class="nc">Mutation</span> <span class="n">mutation1</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Mutation</span><span class="o">(</span><span class="s">"id0001"</span><span class="o">);</span>
@@ -174,14 +173,14 @@
 
     <span class="c1">// Create a BatchWriter to the GothamPD table and add your mutations to it.</span>
     <span class="c1">// Once the BatchWriter is closed by the try w/ resources, data will be available to scans.</span>
-    <span class="k">try</span> <span class="o">(</span><span class="nc">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="k">new</span> <span class="nc">BatchWriterConfig</span><span class="o">()))</span> <span class="o">{</span>
+    <span class="k">try</span> <span class="o">(</span><span class="nc">BatchWriter</span> <span class="n">writer</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">createBatchWriter</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">))</span> <span class="o">{</span>
         <span class="n">writer</span><span class="o">.</span><span class="na">addMutation</span><span class="o">(</span><span class="n">mutation1</span><span class="o">);</span>
         <span class="n">writer</span><span class="o">.</span><span class="na">addMutation</span><span class="o">(</span><span class="n">mutation2</span><span class="o">);</span>
         <span class="n">writer</span><span class="o">.</span><span class="na">addMutation</span><span class="o">(</span><span class="n">mutation3</span><span class="o">);</span>
     <span class="o">}</span>
 
     <span class="c1">// Read and print all rows of the "GothamPD" table. Try w/ resources will close for us.</span>
-    <span class="k">try</span> <span class="o">(</span><span class="nc">Scanner</span> <span class="n">scan</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="na">createScanner</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="nc">Authorizations</span><span class="o">.</span><span class="na">EMPTY</span><span class="o">))</span> <span class="o">{</span>
+    <span class="k">try</span> <span class="o">(</span><span class="nc">Scanner</span> <span class="n">scan</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">createScanner</span><span class="o">(</span><span class="s">"GothamPD"</span><span class="o">,</span> <span class="nc">Authorizations</span><span class="o">.</span><span class="na">EMPTY</span><span class="o">))</span> <span class="o">{</span>
         <span class="nc">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">"Gotham Police Department Persons of Interest:"</span><span class="o">);</span>
         <span class="c1">// A Scanner is an extension of java.lang.Iterable so behaves just like one.</span>
         <span class="k">for</span> <span class="o">(</span><span class="nc">Map</span><span class="o">.</span><span class="na">Entry</span><span class="o">&lt;</span><span class="nc">Key</span><span class="o">,</span> <span class="nc">Value</span><span class="o">&gt;</span> <span class="n">entry</span> <span class="o">:</span> <span class="n">scan</span><span class="o">)</span> <span class="o">{</span>
@@ -224,7 +223,7 @@ if (e.keyCode == '39') { window.location = '/tour/authorizations/'; }
     <a href="/tour/data-model/">&lt;</a>
     
 
-    4 / 11
+    5 / 12
     
     <a href="/tour/authorizations/">&gt;</a>
     
diff --git a/tour/data-model/index.html b/tour/data-model/index.html
index e6e9e1d..7a58dfa 100644
--- a/tour/data-model/index.html
+++ b/tour/data-model/index.html
@@ -144,7 +144,7 @@
 
 <div id="tour-header">
   <h2><a href="/tour/">Accumulo Tour</a>: Data Model</h2>
-  <p class="text-muted">Tour page 3 of 11</p>
+  <p class="text-muted">Tour page 4 of 12</p>
 </div>
 <div id="tour-content">
   <p>Data is stored in Accumulo in a distributed sorted map. The Keys of the map are broken up logically into a few different parts, 
@@ -192,7 +192,7 @@ if (e.keyCode == '39') { window.location = '/tour/data-model-code/'; }
     <a href="/tour/basic-read-write/">&lt;</a>
     
 
-    3 / 11
+    4 / 12
     
     <a href="/tour/data-model-code/">&gt;</a>
     
diff --git a/tour/getting-started/index.html b/tour/getting-started/index.html
index e7d4c40..d9f52a8 100644
--- a/tour/getting-started/index.html
+++ b/tour/getting-started/index.html
@@ -144,7 +144,7 @@
 
 <div id="tour-header">
   <h2><a href="/tour/">Accumulo Tour</a>: Getting Started</h2>
-  <p class="text-muted">Tour page 1 of 11</p>
+  <p class="text-muted">Tour page 1 of 12</p>
 </div>
 <div id="tour-content">
   <p>First make sure you have Java, Maven and Git installed on your machine.  Oh you are already rocking? OK let’s go!</p>
@@ -158,19 +158,19 @@ cd tour
   <li>Open <a href="https://github.com/apache/accumulo-website/blob/tour/src/main/java/tour/Main.java">Main.java</a> in your favorite editor.
     <pre><code class="language-commandline">vim ./src/main/java/tour/Main.java
 </code></pre>
-    <p>Notice the main method creates a MiniAccumuloCluster with a root password of “tourguide”.  MiniAccumuloCluster is a mini
+    <p>Notice the main method creates a <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-minicluster/2.0.0/org/apache/accumulo/minicluster/MiniAccumuloCluster.html">MiniAccumuloCluster</a> with a root password of “tourpass”.  <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-minicluster/2.0.0/org/apache/accumulo/minicluster/MiniAccumuloCluster.html">MiniAccumuloCluster</a> is a mini
 version of Accumulo that runs on your local filesystem.  It should only be used for development purposes but will work
-great here on the tour.  Files and logs used by MiniAccumuloCluster can be seen in the <code class="highlighter-rouge">target/mac######</code> directory.</p>
+great here on the tour.  Files and logs used by <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-minicluster/2.0.0/org/apache/accumulo/minicluster/MiniAccumuloCluster.html">MiniAccumuloCluster</a> can be seen in the <code class="highlighter-rouge">target/mac######</code> directory.</p>
   </li>
   <li>Modify the <em>exercise</em> method to print a hello message. You will put your code in this method for each lesson.
-    <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">MiniAccumuloCluster</span> <span class="n">mac</span><span class="o">)</span> <span class="o">{</span>
+    <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">exercise</span><span class="o">(</span><span class="nc">AccumuloClient</span> <span class="n">client</span><span class="o">)</span> <span class="o">{</span>
      <span class="c1">// start writing your code here</span>
      <span class="nc">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">"Hello world"</span><span class="o">);</span>
  <span class="o">}</span>
 </code></pre></div>    </div>
   </li>
-  <li>Build and run to make sure everything is cool.
-    <pre><code class="language-commandline">mvn -q clean compile exec:java
+  <li>Use the following Maven command to build and run the tour.
+    <pre><code class="language-commandline">mvn -q clean compile exec:exec
 </code></pre>
   </li>
 </ol>
@@ -183,7 +183,7 @@ document.body.onkeyup = function(e){
 
 
 
-if (e.keyCode == '39') { window.location = '/tour/basic-read-write/'; }
+if (e.keyCode == '39') { window.location = '/tour/client/'; }
 
 };
 </script>
@@ -192,9 +192,9 @@ if (e.keyCode == '39') { window.location = '/tour/basic-read-write/'; }
   <h2>
     
 
-    1 / 11
+    1 / 12
     
-    <a href="/tour/basic-read-write/">&gt;</a>
+    <a href="/tour/client/">&gt;</a>
     
   </h2>
 </div>
diff --git a/tour/index.html b/tour/index.html
index c14021f..e16a6bb 100644
--- a/tour/index.html
+++ b/tour/index.html
@@ -147,22 +147,21 @@
     
 <p>Welcome to the Accumulo tour! The tour offers a hands on introduction to the <a href="/api">Accumulo Java API</a>, broken down into
 independent steps and exercises. The exercises give you a chance to apply what you have learned by writing code on your
-own. The answers to an exercise are typically provided in the next step.  The tour starts with a 
-<a href="/tour/getting-started/">Getting Started</a> page that will help you get set up.</p>
+own. The answers to an exercise are typically provided in the next step.  The tour begins at the
+<a href="/tour/getting-started/">Getting Started</a> page.</p>
 
 <p>When on a tour page, the left and right keys on the keyboard can be used to navigate. If you have any questions
 or suggestions while going through the tour, please send an email to our <a href="/contact-us/#mailing-lists">mailing list</a>
 or <a href="https://github.com/apache/accumulo-website/issues">create an issue</a>.</p>
 
-<p>Tour excercises are run using MiniAccumulo which does not work with Java 11.
-This problem will be fixed when 1.9.3 and 2.0.0 are released.  See <a href="https://github.com/apache/accumulo/issues/942">#942
-</a>.</p>
-
 <ol>
   <li>
     <p><a href="/tour/getting-started/">Getting Started</a></p>
   </li>
   <li>
+    <p><a href="/tour/client/">Connecting to Accumulo</a></p>
+  </li>
+  <li>
     <p><a href="/tour/basic-read-write/">Writing and Reading</a></p>
   </li>
   <li>
diff --git a/tour/ranges-splits/index.html b/tour/ranges-splits/index.html
index 9ff1cb1..7bfb3b7 100644
--- a/tour/ranges-splits/index.html
+++ b/tour/ranges-splits/index.html
@@ -144,7 +144,7 @@
 
 <div id="tour-header">
   <h2><a href="/tour/">Accumulo Tour</a>: Ranges and Splits</h2>
-  <p class="text-muted">Tour page 7 of 11</p>
+  <p class="text-muted">Tour page 8 of 12</p>
 </div>
 <div id="tour-content">
   <p>A <a href="https://static.javadoc.io/org.apache.accumulo/accumulo-core/2.0.0/org/apache/accumulo/core/data/Range.html">Range</a> is a specified group of Keys. There are many different ways to create a Range.  Here are a few examples:</p>
@@ -201,7 +201,7 @@ if (e.keyCode == '39') { window.location = '/tour/batch-scanner/'; }
     <a href="/tour/authorizations-code/">&lt;</a>
     
 
-    7 / 11
+    8 / 12
     
     <a href="/tour/batch-scanner/">&gt;</a>
     
diff --git a/tour/using-iterators/index.html b/tour/using-iterators/index.html
index 06eea3e..0bda0b5 100644
--- a/tour/using-iterators/index.html
+++ b/tour/using-iterators/index.html
@@ -144,7 +144,7 @@
 
 <div id="tour-header">
   <h2><a href="/tour/">Accumulo Tour</a>: Using Iterators</h2>
-  <p class="text-muted">Tour page 7 of 11</p>
+  <p class="text-muted">Tour page 8 of 12</p>
 </div>
 <div id="tour-content">
   
@@ -169,7 +169,7 @@ if (e.keyCode == '39') { window.location = '/tour/batch-scanner/'; }
     <a href="/tour/authorizations-code/">&lt;</a>
     
 
-    7 / 11
+    8 / 12
     
     <a href="/tour/batch-scanner/">&gt;</a>