http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ca9f6925/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdminBuilder.html
----------------------------------------------------------------------
diff --git 
a/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdminBuilder.html 
b/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdminBuilder.html
new file mode 100644
index 0000000..90cd3ee
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdminBuilder.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" 
title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software 
Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license 
agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for 
additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The 
ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, 
Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file 
except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a 
copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     
http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or 
agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is 
distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF 
ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific 
language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a 
name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a 
name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import static 
org.apache.hadoop.hbase.client.ConnectionUtils.retries2Attempts;<a 
name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.concurrent.TimeUnit;<a 
name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>import 
org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>/**<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * For creating {@link AsyncAdmin}. The 
implementation should have default configurations set before<a 
name="line.27"></a>
+<span class="sourceLineNo">028</span> * returning the builder to user. So 
users are free to only set the configs they care about to<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * create a new AsyncAdmin instance.<a 
name="line.29"></a>
+<span class="sourceLineNo">030</span> */<a name="line.30"></a>
+<span class="sourceLineNo">031</span>@InterfaceAudience.Public<a 
name="line.31"></a>
+<span class="sourceLineNo">032</span>public interface AsyncAdminBuilder&lt;T 
extends AsyncAdmin&gt; {<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>  /**<a name="line.34"></a>
+<span class="sourceLineNo">035</span>   * Set timeout for a whole admin 
operation. Operation timeout and max attempt times(or max retry<a 
name="line.35"></a>
+<span class="sourceLineNo">036</span>   * times) are both limitations for 
retrying, we will stop retrying when we reach any of the<a name="line.36"></a>
+<span class="sourceLineNo">037</span>   * limitations.<a name="line.37"></a>
+<span class="sourceLineNo">038</span>   * @param timeout<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   * @param unit<a name="line.39"></a>
+<span class="sourceLineNo">040</span>   * @return this for invocation 
chaining<a name="line.40"></a>
+<span class="sourceLineNo">041</span>   */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  AsyncAdminBuilder&lt;T&gt; 
setOperationTimeout(long timeout, TimeUnit unit);<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   * Set timeout for each rpc request.<a 
name="line.45"></a>
+<span class="sourceLineNo">046</span>   * @param timeout<a name="line.46"></a>
+<span class="sourceLineNo">047</span>   * @param unit<a name="line.47"></a>
+<span class="sourceLineNo">048</span>   * @return this for invocation 
chaining<a name="line.48"></a>
+<span class="sourceLineNo">049</span>   */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  AsyncAdminBuilder&lt;T&gt; 
setRpcTimeout(long timeout, TimeUnit unit);<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   * Set the base pause time for 
retrying. We use an exponential policy to generate sleep time when<a 
name="line.53"></a>
+<span class="sourceLineNo">054</span>   * retrying.<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   * @param timeout<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   * @param unit<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * @return this for invocation 
chaining<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  AsyncAdminBuilder&lt;T&gt; 
setRetryPause(long timeout, TimeUnit unit);<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   * Set the max retry times for an admin 
operation. Usually it is the max attempt times minus 1.<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   * Operation timeout and max attempt 
times(or max retry times) are both limitations for retrying,<a 
name="line.63"></a>
+<span class="sourceLineNo">064</span>   * we will stop retrying when we reach 
any of the limitations.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>   * @param maxRetries<a 
name="line.65"></a>
+<span class="sourceLineNo">066</span>   * @return this for invocation 
chaining<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  default AsyncAdminBuilder&lt;T&gt; 
setMaxRetries(int maxRetries) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    return 
setMaxAttempts(retries2Attempts(maxRetries));<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  /**<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   * Set the max attempt times for an 
admin operation. Usually it is the max retry times plus 1.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   * Operation timeout and max attempt 
times(or max retry times) are both limitations for retrying,<a 
name="line.74"></a>
+<span class="sourceLineNo">075</span>   * we will stop retrying when we reach 
any of the limitations.<a name="line.75"></a>
+<span class="sourceLineNo">076</span>   * @param maxAttempts<a 
name="line.76"></a>
+<span class="sourceLineNo">077</span>   * @return this for invocation 
chaining<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   */<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  AsyncAdminBuilder&lt;T&gt; 
setMaxAttempts(int maxAttempts);<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>  /**<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   * Set the number of retries that are 
allowed before we start to log.<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   * @param startLogErrorsCnt<a 
name="line.83"></a>
+<span class="sourceLineNo">084</span>   * @return this for invocation 
chaining<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  AsyncAdminBuilder&lt;T&gt; 
setStartLogErrorsCnt(int startLogErrorsCnt);<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * Create a {@link AsyncAdmin} 
instance.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @return a {@link AsyncAdmin} 
instance<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  T build();<a name="line.92"></a>
+<span class="sourceLineNo">093</span>}<a name="line.93"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ca9f6925/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncConnection.html
----------------------------------------------------------------------
diff --git 
a/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncConnection.html 
b/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncConnection.html
index a4f1601..d372b88 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncConnection.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncConnection.html
@@ -104,14 +104,47 @@
 <span class="sourceLineNo">096</span>  AsyncTableBuilder&lt;AsyncTable&gt; 
getTableBuilder(TableName tableName, ExecutorService pool);<a 
name="line.96"></a>
 <span class="sourceLineNo">097</span><a name="line.97"></a>
 <span class="sourceLineNo">098</span>  /**<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   * Retrieve an AsyncAdmin 
implementation to administer an HBase cluster. The returned AsyncAdmin<a 
name="line.99"></a>
-<span class="sourceLineNo">100</span>   * is not guaranteed to be thread-safe. 
A new instance should be created for each using thread.<a name="line.100"></a>
-<span class="sourceLineNo">101</span>   * This is a lightweight operation. 
Pooling or caching of the returned AsyncAdmin is not<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   * recommended.<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * @return an AsyncAdmin instance for 
cluster administration<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   */<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  AsyncAdmin getAdmin();<a 
name="line.105"></a>
-<span class="sourceLineNo">106</span>}<a name="line.106"></a>
+<span class="sourceLineNo">099</span>   * Retrieve an {@link AsyncAdmin} 
implementation to administer an HBase cluster.<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * &lt;p&gt;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * The returned instance will use 
default configs. Use {@link #getAdminBuilder()} if you want to<a 
name="line.101"></a>
+<span class="sourceLineNo">102</span>   * customize some configs.<a 
name="line.102"></a>
+<span class="sourceLineNo">103</span>   * &lt;p&gt;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>   * The admin operation's returned 
{@code CompletableFuture} will be finished directly in the rpc<a 
name="line.104"></a>
+<span class="sourceLineNo">105</span>   * framework's callback thread, so 
typically you should not do any time consuming work inside<a 
name="line.105"></a>
+<span class="sourceLineNo">106</span>   * these methods.<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   * @return an {@link AsyncAdmin} 
instance for cluster administration<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   */<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  default AsyncAdmin getAdmin() {<a 
name="line.109"></a>
+<span class="sourceLineNo">110</span>    return getAdminBuilder().build();<a 
name="line.110"></a>
+<span class="sourceLineNo">111</span>  }<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>  /**<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * Returns an {@link AsyncAdminBuilder} 
for creating {@link AsyncAdmin}.<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   * &lt;p&gt;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>   * The admin operation's returned 
{@code CompletableFuture} will be finished directly in the rpc<a 
name="line.116"></a>
+<span class="sourceLineNo">117</span>   * framework's callback thread, so 
typically you should not do any time consuming work inside<a 
name="line.117"></a>
+<span class="sourceLineNo">118</span>   * these methods.<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   */<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  
AsyncAdminBuilder&lt;RawAsyncHBaseAdmin&gt; getAdminBuilder();<a 
name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>  /**<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Retrieve an {@link AsyncAdmin} 
implementation to administer an HBase cluster.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * &lt;p&gt;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * The returned instance will use 
default configs. Use {@link #getAdminBuilder(ExecutorService)}<a 
name="line.125"></a>
+<span class="sourceLineNo">126</span>   * if you want to customize some 
configs.<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * @param pool the thread pool to use 
for executing callback<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   * @return an {@link AsyncAdmin} 
instance for cluster administration<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  default AsyncAdmin 
getAdmin(ExecutorService pool) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    return 
getAdminBuilder(pool).build();<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>  /**<a name="line.134"></a>
+<span class="sourceLineNo">135</span>   * Returns an {@link AsyncAdminBuilder} 
for creating {@link AsyncAdmin}.<a name="line.135"></a>
+<span class="sourceLineNo">136</span>   * @param pool the thread pool to use 
for executing callback<a name="line.136"></a>
+<span class="sourceLineNo">137</span>   */<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  
AsyncAdminBuilder&lt;AsyncHBaseAdmin&gt; getAdminBuilder(ExecutorService 
pool);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>}<a name="line.139"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ca9f6925/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index c75ed73..b6587fc 100644
--- a/book.html
+++ b/book.html
@@ -585,7 +585,7 @@ Java needs to be installed and available.
 If you get an error indicating that Java is not installed,
 but it is on your system, perhaps in a non-standard location,
 edit the <em>conf/hbase-env.sh</em> file and modify the <code>JAVA_HOME</code>
-setting to point to the directory that contains <em>bin/java</em> your system.
+setting to point to the directory that contains <em>bin/java</em> on your 
system.
 </td>
 </tr>
 </table>
@@ -818,8 +818,7 @@ This procedure will create a totally new directory where 
HBase will store its da
 <p>Configure HBase.</p>
 <div class="paragraph">
 <p>Edit the <em>hbase-site.xml</em> configuration.
-First, add the following property.
-which directs HBase to run in distributed mode, with one JVM instance per 
daemon.</p>
+First, add the following property which directs HBase to run in distributed 
mode, with one JVM instance per daemon.</p>
 </div>
 <div class="listingblock">
 <div class="content">
@@ -1070,7 +1069,7 @@ Note that you also need to do this for 
<code>node-a</code> itself.</p>
 <li>
 <p>Test password-less login.</p>
 <div class="paragraph">
-<p>If you performed the procedure correctly, if you SSH from 
<code>node-a</code> to either of the other nodes, using the same username, you 
should not be prompted for a password.</p>
+<p>If you performed the procedure correctly, you should not be prompted for a 
password when you SSH from <code>node-a</code> to either of the other nodes 
using the same username.</p>
 </div>
 </li>
 <li>
@@ -1081,8 +1080,7 @@ Be sure not to overwrite your existing 
<em>.ssh/authorized_keys</em> files, but
 </div>
 <div class="paragraph">
 <div class="title">Procedure: Prepare <code>node-a</code></div>
-<p><code>node-a</code> will run your primary master and ZooKeeper processes, 
but no RegionServers.
-. Stop the RegionServer from starting on <code>node-a</code>.</p>
+<p><code>node-a</code> will run your primary master and ZooKeeper processes, 
but no RegionServers. Stop the RegionServer from starting on 
<code>node-a</code>.</p>
 </div>
 <div class="olist arabic">
 <ol class="arabic">
@@ -1106,7 +1104,7 @@ In this demonstration, the hostname is 
<code>node-b.example.com</code>.</p>
 <p>Configure ZooKeeper</p>
 <div class="paragraph">
 <p>In reality, you should carefully consider your ZooKeeper configuration.
-You can find out more about configuring ZooKeeper in <a 
href="#zookeeper">zookeeper</a>.
+You can find out more about configuring ZooKeeper in <a 
href="#zookeeper">zookeeper</a> section.
 This configuration will direct HBase to start and manage a ZooKeeper instance 
on each node of the cluster.</p>
 </div>
 <div class="paragraph">
@@ -1220,7 +1218,7 @@ You may see additional Java processes running on your 
servers as well, if they a
 </div>
 </div>
 <div class="exampleblock">
-<div class="title">Example 4. <code>node-a</code> <code>jps</code> Output</div>
+<div class="title">Example 4. <code>node-c</code> <code>jps</code> Output</div>
 <div class="content">
 <div class="listingblock">
 <div class="content">
@@ -1242,9 +1240,9 @@ You may see additional Java processes running on your 
servers as well, if they a
 <div class="title">ZooKeeper Process Name</div>
 <div class="paragraph">
 <p>The <code>HQuorumPeer</code> process is a ZooKeeper instance which is 
controlled and started by HBase.
-If you use ZooKeeper this way, it is limited to one instance per cluster node, 
, and is appropriate for testing only.
+If you use ZooKeeper this way, it is limited to one instance per cluster node 
and is appropriate for testing only.
 If ZooKeeper is run outside of HBase, the process is called 
<code>QuorumPeer</code>.
-For more about ZooKeeper configuration, including using an external ZooKeeper 
instance with HBase, see <a href="#zookeeper">zookeeper</a>.</p>
+For more about ZooKeeper configuration, including using an external ZooKeeper 
instance with HBase, see <a href="#zookeeper">zookeeper</a> section.</p>
 </div>
 </td>
 </tr>
@@ -1273,7 +1271,7 @@ Master and 60030 for each RegionServer to 16010 for the 
Master and 16030 for the
 <div class="paragraph">
 <p>If everything is set up correctly, you should be able to connect to the UI 
for the Master
 <code><a href="http://node-a.example.com:16010/"; 
class="bare">http://node-a.example.com:16010/</a></code> or the secondary 
master at <code><a href="http://node-b.example.com:16010/"; 
class="bare">http://node-b.example.com:16010/</a></code>
-for the secondary master, using a web browser.
+ using a web browser.
 If you can connect via <code>localhost</code> but not from another host, check 
your firewall rules.
 You can see the web UI for each of the RegionServers at port 16030 of their IP 
addresses, or by
 clicking their links in the web UI for the Master.</p>
@@ -1282,8 +1280,8 @@ clicking their links in the web UI for the Master.</p>
 <li>
 <p>Test what happens when nodes or services disappear.</p>
 <div class="paragraph">
-<p>With a three-node cluster like you have configured, things will not be very 
resilient.
-Still, you can test what happens when the primary Master or a RegionServer 
disappears, by killing the processes and watching the logs.</p>
+<p>With a three-node cluster you have configured, things will not be very 
resilient.
+You can still test the behavior of the primary Master or a RegionServer by 
killing the associated processes and watching the logs.</p>
 </div>
 </li>
 </ol>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ca9f6925/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 05a75b1..738415b 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170703" />
+    <meta name="Date-Revision-yyyymmdd" content="20170705" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -311,7 +311,7 @@ under the License. -->
                         <a href="https://www.apache.org/";>The Apache Software 
Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 
2017-07-03</li>
+                  <li id="publishDate" class="pull-right">Last Published: 
2017-07-05</li>
             </p>
                 </div>
 

Reply via email to