You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2016/11/15 05:45:52 UTC

[01/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site dbfeb6d66 -> 36e5b7d69


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref/org/apache/hadoop/hbase/util/RegionSplitter.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/hadoop/hbase/util/RegionSplitter.html b/xref/org/apache/hadoop/hbase/util/RegionSplitter.html
index 5cae107..c705d7f 100644
--- a/xref/org/apache/hadoop/hbase/util/RegionSplitter.html
+++ b/xref/org/apache/hadoop/hbase/util/RegionSplitter.html
@@ -30,1103 +30,1096 @@
 <a class="jxr_linenumber" name="20" href="#20">20</a>  
 <a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
 <a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
-<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Comparator;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedList;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="23" href="#23">23</a>
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedList;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
 <a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
 <a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.TreeMap;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.CommandLine;
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.GnuParser;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.HelpFormatter;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.OptionBuilder;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.Options;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.ParseException;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.ArrayUtils;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FSDataInputStream;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FSDataOutputStream;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FileSystem;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.Path;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.ClusterStatus;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HRegionInfo;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HRegionLocation;
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.MetaTableAccessor;
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.ServerName;
-<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.classification.InterfaceAudience;
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Admin;
-<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ClusterConnection;
-<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
-<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.NoServerForRegionException;
-<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.RegionLocator;
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.HRegionFileSystem;
-<a class="jxr_linenumber" name="65" href="#65">65</a>  
-<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Preconditions;
-<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Lists;
-<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Maps;
-<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Sets;
-<a class="jxr_linenumber" name="70" href="#70">70</a>  
-<a class="jxr_linenumber" name="71" href="#71">71</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="72" href="#72">72</a>  <em class="jxr_javadoccomment"> * The {@link RegionSplitter} class provides several utilities to help in the</em>
-<a class="jxr_linenumber" name="73" href="#73">73</a>  <em class="jxr_javadoccomment"> * administration lifecycle for developers who choose to manually split regions</em>
-<a class="jxr_linenumber" name="74" href="#74">74</a>  <em class="jxr_javadoccomment"> * instead of having HBase handle that automatically. The most useful utilities</em>
-<a class="jxr_linenumber" name="75" href="#75">75</a>  <em class="jxr_javadoccomment"> * are:</em>
-<a class="jxr_linenumber" name="76" href="#76">76</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="77" href="#77">77</a>  <em class="jxr_javadoccomment"> * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="78" href="#78">78</a>  <em class="jxr_javadoccomment"> * &lt;li&gt;Create a table with a specified number of pre-split regions</em>
-<a class="jxr_linenumber" name="79" href="#79">79</a>  <em class="jxr_javadoccomment"> * &lt;li&gt;Execute a rolling split of all regions on an existing table</em>
-<a class="jxr_linenumber" name="80" href="#80">80</a>  <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="81" href="#81">81</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="82" href="#82">82</a>  <em class="jxr_javadoccomment"> * Both operations can be safely done on a live server.</em>
-<a class="jxr_linenumber" name="83" href="#83">83</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="84" href="#84">84</a>  <em class="jxr_javadoccomment"> * &lt;b&gt;Question:&lt;/b&gt; How do I turn off automatic splitting? &lt;br&gt;</em>
-<a class="jxr_linenumber" name="85" href="#85">85</a>  <em class="jxr_javadoccomment"> * &lt;b&gt;Answer:&lt;/b&gt; Automatic splitting is determined by the configuration value</em>
-<a class="jxr_linenumber" name="86" href="#86">86</a>  <em class="jxr_javadoccomment"> * &lt;i&gt;HConstants.HREGION_MAX_FILESIZE&lt;/i&gt;. It is not recommended that you set this</em>
-<a class="jxr_linenumber" name="87" href="#87">87</a>  <em class="jxr_javadoccomment"> * to Long.MAX_VALUE in case you forget about manual splits. A suggested setting</em>
-<a class="jxr_linenumber" name="88" href="#88">88</a>  <em class="jxr_javadoccomment"> * is 100GB, which would result in &amp;gt; 1hr major compactions if reached.</em>
-<a class="jxr_linenumber" name="89" href="#89">89</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="90" href="#90">90</a>  <em class="jxr_javadoccomment"> * &lt;b&gt;Question:&lt;/b&gt; Why did the original authors decide to manually split? &lt;br&gt;</em>
-<a class="jxr_linenumber" name="91" href="#91">91</a>  <em class="jxr_javadoccomment"> * &lt;b&gt;Answer:&lt;/b&gt; Specific workload characteristics of our use case allowed us</em>
-<a class="jxr_linenumber" name="92" href="#92">92</a>  <em class="jxr_javadoccomment"> * to benefit from a manual split system.</em>
-<a class="jxr_linenumber" name="93" href="#93">93</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="94" href="#94">94</a>  <em class="jxr_javadoccomment"> * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="95" href="#95">95</a>  <em class="jxr_javadoccomment"> * &lt;li&gt;Data (~1k) that would grow instead of being replaced</em>
-<a class="jxr_linenumber" name="96" href="#96">96</a>  <em class="jxr_javadoccomment"> * &lt;li&gt;Data growth was roughly uniform across all regions</em>
-<a class="jxr_linenumber" name="97" href="#97">97</a>  <em class="jxr_javadoccomment"> * &lt;li&gt;OLTP workload. Data loss is a big deal.</em>
-<a class="jxr_linenumber" name="98" href="#98">98</a>  <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="99" href="#99">99</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="100" href="#100">100</a> <em class="jxr_javadoccomment"> * &lt;b&gt;Question:&lt;/b&gt; Why is manual splitting good for this workload? &lt;br&gt;</em>
-<a class="jxr_linenumber" name="101" href="#101">101</a> <em class="jxr_javadoccomment"> * &lt;b&gt;Answer:&lt;/b&gt; Although automated splitting is not a bad option, there are</em>
-<a class="jxr_linenumber" name="102" href="#102">102</a> <em class="jxr_javadoccomment"> * benefits to manual splitting.</em>
-<a class="jxr_linenumber" name="103" href="#103">103</a> <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="104" href="#104">104</a> <em class="jxr_javadoccomment"> * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="105" href="#105">105</a> <em class="jxr_javadoccomment"> * &lt;li&gt;With growing amounts of data, splits will continually be needed. Since</em>
-<a class="jxr_linenumber" name="106" href="#106">106</a> <em class="jxr_javadoccomment"> * you always know exactly what regions you have, long-term debugging and</em>
-<a class="jxr_linenumber" name="107" href="#107">107</a> <em class="jxr_javadoccomment"> * profiling is much easier with manual splits. It is hard to trace the logs to</em>
-<a class="jxr_linenumber" name="108" href="#108">108</a> <em class="jxr_javadoccomment"> * understand region level problems if it keeps splitting and getting renamed.</em>
-<a class="jxr_linenumber" name="109" href="#109">109</a> <em class="jxr_javadoccomment"> * &lt;li&gt;Data offlining bugs + unknown number of split regions == oh crap! If an</em>
-<a class="jxr_linenumber" name="110" href="#110">110</a> <em class="jxr_javadoccomment"> * WAL or StoreFile was mistakenly unprocessed by HBase due to a weird bug and</em>
-<a class="jxr_linenumber" name="111" href="#111">111</a> <em class="jxr_javadoccomment"> * you notice it a day or so later, you can be assured that the regions</em>
-<a class="jxr_linenumber" name="112" href="#112">112</a> <em class="jxr_javadoccomment"> * specified in these files are the same as the current regions and you have</em>
-<a class="jxr_linenumber" name="113" href="#113">113</a> <em class="jxr_javadoccomment"> * less headaches trying to restore/replay your data.</em>
-<a class="jxr_linenumber" name="114" href="#114">114</a> <em class="jxr_javadoccomment"> * &lt;li&gt;You can finely tune your compaction algorithm. With roughly uniform data</em>
-<a class="jxr_linenumber" name="115" href="#115">115</a> <em class="jxr_javadoccomment"> * growth, it's easy to cause split / compaction storms as the regions all</em>
-<a class="jxr_linenumber" name="116" href="#116">116</a> <em class="jxr_javadoccomment"> * roughly hit the same data size at the same time. With manual splits, you can</em>
-<a class="jxr_linenumber" name="117" href="#117">117</a> <em class="jxr_javadoccomment"> * let staggered, time-based major compactions spread out your network IO load.</em>
-<a class="jxr_linenumber" name="118" href="#118">118</a> <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="119" href="#119">119</a> <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="120" href="#120">120</a> <em class="jxr_javadoccomment"> * &lt;b&gt;Question:&lt;/b&gt; What's the optimal number of pre-split regions to create? &lt;br&gt;</em>
-<a class="jxr_linenumber" name="121" href="#121">121</a> <em class="jxr_javadoccomment"> * &lt;b&gt;Answer:&lt;/b&gt; Mileage will vary depending upon your application.</em>
-<a class="jxr_linenumber" name="122" href="#122">122</a> <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="123" href="#123">123</a> <em class="jxr_javadoccomment"> * The short answer for our application is that we started with 10 pre-split</em>
-<a class="jxr_linenumber" name="124" href="#124">124</a> <em class="jxr_javadoccomment"> * regions / server and watched our data growth over time. It's better to err on</em>
-<a class="jxr_linenumber" name="125" href="#125">125</a> <em class="jxr_javadoccomment"> * the side of too little regions and rolling split later.</em>
-<a class="jxr_linenumber" name="126" href="#126">126</a> <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="127" href="#127">127</a> <em class="jxr_javadoccomment"> * The more complicated answer is that this depends upon the largest storefile</em>
-<a class="jxr_linenumber" name="128" href="#128">128</a> <em class="jxr_javadoccomment"> * in your region. With a growing data size, this will get larger over time. You</em>
-<a class="jxr_linenumber" name="129" href="#129">129</a> <em class="jxr_javadoccomment"> * want the largest region to be just big enough that the</em>
-<a class="jxr_linenumber" name="130" href="#130">130</a> <em class="jxr_javadoccomment"> * {@link org.apache.hadoop.hbase.regionserver.HStore} compact</em>
-<a class="jxr_linenumber" name="131" href="#131">131</a> <em class="jxr_javadoccomment"> * selection algorithm only compacts it due to a timed major. If you don't, your</em>
-<a class="jxr_linenumber" name="132" href="#132">132</a> <em class="jxr_javadoccomment"> * cluster can be prone to compaction storms as the algorithm decides to run</em>
-<a class="jxr_linenumber" name="133" href="#133">133</a> <em class="jxr_javadoccomment"> * major compactions on a large series of regions all at once. Note that</em>
-<a class="jxr_linenumber" name="134" href="#134">134</a> <em class="jxr_javadoccomment"> * compaction storms are due to the uniform data growth, not the manual split</em>
-<a class="jxr_linenumber" name="135" href="#135">135</a> <em class="jxr_javadoccomment"> * decision.</em>
-<a class="jxr_linenumber" name="136" href="#136">136</a> <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="137" href="#137">137</a> <em class="jxr_javadoccomment"> * If you pre-split your regions too thin, you can increase the major compaction</em>
-<a class="jxr_linenumber" name="138" href="#138">138</a> <em class="jxr_javadoccomment"> * interval by configuring HConstants.MAJOR_COMPACTION_PERIOD. If your data size</em>
-<a class="jxr_linenumber" name="139" href="#139">139</a> <em class="jxr_javadoccomment"> * grows too large, use this script to perform a network IO safe rolling split</em>
-<a class="jxr_linenumber" name="140" href="#140">140</a> <em class="jxr_javadoccomment"> * of all regions.</em>
-<a class="jxr_linenumber" name="141" href="#141">141</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="142" href="#142">142</a> @InterfaceAudience.Private
-<a class="jxr_linenumber" name="143" href="#143">143</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.html">RegionSplitter</a> {
-<a class="jxr_linenumber" name="144" href="#144">144</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Log LOG = LogFactory.getLog(RegionSplitter.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="145" href="#145">145</a> 
-<a class="jxr_linenumber" name="146" href="#146">146</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="147" href="#147">147</a> <em class="jxr_javadoccomment">   * A generic interface for the RegionSplitter code to use for all it's</em>
-<a class="jxr_linenumber" name="148" href="#148">148</a> <em class="jxr_javadoccomment">   * functionality. Note that the original authors of this code use</em>
-<a class="jxr_linenumber" name="149" href="#149">149</a> <em class="jxr_javadoccomment">   * {@link HexStringSplit} to partition their table and set it as default, but</em>
-<a class="jxr_linenumber" name="150" href="#150">150</a> <em class="jxr_javadoccomment">   * provided this for your custom algorithm. To use, create a new derived class</em>
-<a class="jxr_linenumber" name="151" href="#151">151</a> <em class="jxr_javadoccomment">   * from this interface and call {@link RegionSplitter#createPresplitTable} or</em>
-<a class="jxr_linenumber" name="152" href="#152">152</a> <em class="jxr_javadoccomment">   * RegionSplitter#rollingSplit(TableName, SplitAlgorithm, Configuration) with the</em>
-<a class="jxr_linenumber" name="153" href="#153">153</a> <em class="jxr_javadoccomment">   * argument splitClassName giving the name of your class.</em>
-<a class="jxr_linenumber" name="154" href="#154">154</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="155" href="#155">155</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">interface</strong> <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.html">SplitAlgorithm</a> {
-<a class="jxr_linenumber" name="156" href="#156">156</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="157" href="#157">157</a> <em class="jxr_javadoccomment">     * Split a pre-existing region into 2 regions.</em>
-<a class="jxr_linenumber" name="158" href="#158">158</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * @param start</em>
-<a class="jxr_linenumber" name="160" href="#160">160</a> <em class="jxr_javadoccomment">     *          first row (inclusive)</em>
-<a class="jxr_linenumber" name="161" href="#161">161</a> <em class="jxr_javadoccomment">     * @param end</em>
-<a class="jxr_linenumber" name="162" href="#162">162</a> <em class="jxr_javadoccomment">     *          last row (exclusive)</em>
-<a class="jxr_linenumber" name="163" href="#163">163</a> <em class="jxr_javadoccomment">     * @return the split row to use</em>
-<a class="jxr_linenumber" name="164" href="#164">164</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="165" href="#165">165</a>     byte[] split(byte[] start, byte[] end);
-<a class="jxr_linenumber" name="166" href="#166">166</a> 
-<a class="jxr_linenumber" name="167" href="#167">167</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="168" href="#168">168</a> <em class="jxr_javadoccomment">     * Split an entire table.</em>
-<a class="jxr_linenumber" name="169" href="#169">169</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_javadoccomment">     * @param numRegions</em>
-<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment">     *          number of regions to split the table into</em>
-<a class="jxr_linenumber" name="172" href="#172">172</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="173" href="#173">173</a> <em class="jxr_javadoccomment">     * @throws RuntimeException</em>
-<a class="jxr_linenumber" name="174" href="#174">174</a> <em class="jxr_javadoccomment">     *           user input is validated at this time. may throw a runtime</em>
-<a class="jxr_linenumber" name="175" href="#175">175</a> <em class="jxr_javadoccomment">     *           exception in response to a parse failure</em>
-<a class="jxr_linenumber" name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * @return array of split keys for the initial regions of the table. The</em>
-<a class="jxr_linenumber" name="177" href="#177">177</a> <em class="jxr_javadoccomment">     *         length of the returned array should be numRegions-1.</em>
-<a class="jxr_linenumber" name="178" href="#178">178</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="179" href="#179">179</a>     byte[][] split(<strong class="jxr_keyword">int</strong> numRegions);
-<a class="jxr_linenumber" name="180" href="#180">180</a> 
-<a class="jxr_linenumber" name="181" href="#181">181</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="182" href="#182">182</a> <em class="jxr_javadoccomment">     * In HBase, the first row is represented by an empty byte array. This might</em>
-<a class="jxr_linenumber" name="183" href="#183">183</a> <em class="jxr_javadoccomment">     * cause problems with your split algorithm or row printing. All your APIs</em>
-<a class="jxr_linenumber" name="184" href="#184">184</a> <em class="jxr_javadoccomment">     * will be passed firstRow() instead of empty array.</em>
-<a class="jxr_linenumber" name="185" href="#185">185</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="186" href="#186">186</a> <em class="jxr_javadoccomment">     * @return your representation of your first row</em>
-<a class="jxr_linenumber" name="187" href="#187">187</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="188" href="#188">188</a>     byte[] firstRow();
-<a class="jxr_linenumber" name="189" href="#189">189</a> 
-<a class="jxr_linenumber" name="190" href="#190">190</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="191" href="#191">191</a> <em class="jxr_javadoccomment">     * In HBase, the last row is represented by an empty byte array. This might</em>
-<a class="jxr_linenumber" name="192" href="#192">192</a> <em class="jxr_javadoccomment">     * cause problems with your split algorithm or row printing. All your APIs</em>
-<a class="jxr_linenumber" name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * will be passed firstRow() instead of empty array.</em>
-<a class="jxr_linenumber" name="194" href="#194">194</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * @return your representation of your last row</em>
-<a class="jxr_linenumber" name="196" href="#196">196</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="197" href="#197">197</a>     byte[] lastRow();
-<a class="jxr_linenumber" name="198" href="#198">198</a> 
-<a class="jxr_linenumber" name="199" href="#199">199</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="200" href="#200">200</a> <em class="jxr_javadoccomment">     * In HBase, the last row is represented by an empty byte array. Set this</em>
-<a class="jxr_linenumber" name="201" href="#201">201</a> <em class="jxr_javadoccomment">     * value to help the split code understand how to evenly divide the first</em>
-<a class="jxr_linenumber" name="202" href="#202">202</a> <em class="jxr_javadoccomment">     * region.</em>
-<a class="jxr_linenumber" name="203" href="#203">203</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * @param userInput</em>
-<a class="jxr_linenumber" name="205" href="#205">205</a> <em class="jxr_javadoccomment">     *          raw user input (may throw RuntimeException on parse failure)</em>
-<a class="jxr_linenumber" name="206" href="#206">206</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="207" href="#207">207</a>     <strong class="jxr_keyword">void</strong> setFirstRow(String userInput);
-<a class="jxr_linenumber" name="208" href="#208">208</a> 
-<a class="jxr_linenumber" name="209" href="#209">209</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="210" href="#210">210</a> <em class="jxr_javadoccomment">     * In HBase, the last row is represented by an empty byte array. Set this</em>
-<a class="jxr_linenumber" name="211" href="#211">211</a> <em class="jxr_javadoccomment">     * value to help the split code understand how to evenly divide the last</em>
-<a class="jxr_linenumber" name="212" href="#212">212</a> <em class="jxr_javadoccomment">     * region. Note that this last row is inclusive for all rows sharing the</em>
-<a class="jxr_linenumber" name="213" href="#213">213</a> <em class="jxr_javadoccomment">     * same prefix.</em>
-<a class="jxr_linenumber" name="214" href="#214">214</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="215" href="#215">215</a> <em class="jxr_javadoccomment">     * @param userInput</em>
-<a class="jxr_linenumber" name="216" href="#216">216</a> <em class="jxr_javadoccomment">     *          raw user input (may throw RuntimeException on parse failure)</em>
-<a class="jxr_linenumber" name="217" href="#217">217</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="218" href="#218">218</a>     <strong class="jxr_keyword">void</strong> setLastRow(String userInput);
-<a class="jxr_linenumber" name="219" href="#219">219</a> 
-<a class="jxr_linenumber" name="220" href="#220">220</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="221" href="#221">221</a> <em class="jxr_javadoccomment">     * @param input</em>
-<a class="jxr_linenumber" name="222" href="#222">222</a> <em class="jxr_javadoccomment">     *          user or file input for row</em>
-<a class="jxr_linenumber" name="223" href="#223">223</a> <em class="jxr_javadoccomment">     * @return byte array representation of this row for HBase</em>
-<a class="jxr_linenumber" name="224" href="#224">224</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="225" href="#225">225</a>     byte[] strToRow(String input);
-<a class="jxr_linenumber" name="226" href="#226">226</a> 
-<a class="jxr_linenumber" name="227" href="#227">227</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="228" href="#228">228</a> <em class="jxr_javadoccomment">     * @param row</em>
-<a class="jxr_linenumber" name="229" href="#229">229</a> <em class="jxr_javadoccomment">     *          byte array representing a row in HBase</em>
-<a class="jxr_linenumber" name="230" href="#230">230</a> <em class="jxr_javadoccomment">     * @return String to use for debug &amp;amp; file printing</em>
-<a class="jxr_linenumber" name="231" href="#231">231</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="232" href="#232">232</a>     String rowToStr(byte[] row);
-<a class="jxr_linenumber" name="233" href="#233">233</a> 
-<a class="jxr_linenumber" name="234" href="#234">234</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="235" href="#235">235</a> <em class="jxr_javadoccomment">     * @return the separator character to use when storing / printing the row</em>
-<a class="jxr_linenumber" name="236" href="#236">236</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="237" href="#237">237</a>     String separator();
-<a class="jxr_linenumber" name="238" href="#238">238</a> 
-<a class="jxr_linenumber" name="239" href="#239">239</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="240" href="#240">240</a> <em class="jxr_javadoccomment">     * Set the first row</em>
-<a class="jxr_linenumber" name="241" href="#241">241</a> <em class="jxr_javadoccomment">     * @param userInput byte array of the row key.</em>
-<a class="jxr_linenumber" name="242" href="#242">242</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="243" href="#243">243</a>     <strong class="jxr_keyword">void</strong> setFirstRow(byte[] userInput);
-<a class="jxr_linenumber" name="244" href="#244">244</a> 
-<a class="jxr_linenumber" name="245" href="#245">245</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="246" href="#246">246</a> <em class="jxr_javadoccomment">     * Set the last row</em>
-<a class="jxr_linenumber" name="247" href="#247">247</a> <em class="jxr_javadoccomment">     * @param userInput byte array of the row key.</em>
-<a class="jxr_linenumber" name="248" href="#248">248</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="249" href="#249">249</a>     <strong class="jxr_keyword">void</strong> setLastRow(byte[] userInput);
-<a class="jxr_linenumber" name="250" href="#250">250</a>   }
-<a class="jxr_linenumber" name="251" href="#251">251</a> 
-<a class="jxr_linenumber" name="252" href="#252">252</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="253" href="#253">253</a> <em class="jxr_javadoccomment">   * The main function for the RegionSplitter application. Common uses:</em>
-<a class="jxr_linenumber" name="254" href="#254">254</a> <em class="jxr_javadoccomment">   * &lt;p&gt;</em>
-<a class="jxr_linenumber" name="255" href="#255">255</a> <em class="jxr_javadoccomment">   * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="256" href="#256">256</a> <em class="jxr_javadoccomment">   * &lt;li&gt;create a table named 'myTable' with 60 pre-split regions containing 2</em>
-<a class="jxr_linenumber" name="257" href="#257">257</a> <em class="jxr_javadoccomment">   * column families 'test' &amp;amp; 'rs', assuming the keys are hex-encoded ASCII:</em>
-<a class="jxr_linenumber" name="258" href="#258">258</a> <em class="jxr_javadoccomment">   * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="259" href="#259">259</a> <em class="jxr_javadoccomment">   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -c 60 -f test:rs</em>
-<a class="jxr_linenumber" name="260" href="#260">260</a> <em class="jxr_javadoccomment">   * myTable HexStringSplit</em>
-<a class="jxr_linenumber" name="261" href="#261">261</a> <em class="jxr_javadoccomment">   * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="262" href="#262">262</a> <em class="jxr_javadoccomment">   * &lt;li&gt;perform a rolling split of 'myTable' (i.e. 60 =&amp;gt; 120 regions), # 2</em>
-<a class="jxr_linenumber" name="263" href="#263">263</a> <em class="jxr_javadoccomment">   * outstanding splits at a time, assuming keys are uniformly distributed</em>
-<a class="jxr_linenumber" name="264" href="#264">264</a> <em class="jxr_javadoccomment">   * bytes:</em>
-<a class="jxr_linenumber" name="265" href="#265">265</a> <em class="jxr_javadoccomment">   * &lt;ul&gt;</em>
-<a class="jxr_linenumber" name="266" href="#266">266</a> <em class="jxr_javadoccomment">   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -r -o 2 myTable</em>
-<a class="jxr_linenumber" name="267" href="#267">267</a> <em class="jxr_javadoccomment">   * UniformSplit</em>
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.CommandLine;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.GnuParser;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.HelpFormatter;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.OptionBuilder;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.Options;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.cli.ParseException;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.ArrayUtils;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FSDataInputStream;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FSDataOutputStream;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FileSystem;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.Path;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.ClusterStatus;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseConfiguration;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HRegionInfo;
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HRegionLocation;
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.MetaTableAccessor;
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.ServerName;
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.classification.InterfaceAudience;
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Admin;
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ClusterConnection;
+<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
+<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
+<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.NoServerForRegionException;
+<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.RegionLocator;
+<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
+<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.HRegionFileSystem;
+<a class="jxr_linenumber" name="64" href="#64">64</a>
+<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Preconditions;
+<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Lists;
+<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Maps;
+<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Sets;
+<a class="jxr_linenumber" name="69" href="#69">69</a>
+<a class="jxr_linenumber" name="70" href="#70">70</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="71" href="#71">71</a>  <em class="jxr_javadoccomment"> * The {@link RegionSplitter} class provides several utilities to help in the</em>
+<a class="jxr_linenumber" name="72" href="#72">72</a>  <em class="jxr_javadoccomment"> * administration lifecycle for developers who choose to manually split regions</em>
+<a class="jxr_linenumber" name="73" href="#73">73</a>  <em class="jxr_javadoccomment"> * instead of having HBase handle that automatically. The most useful utilities</em>
+<a class="jxr_linenumber" name="74" href="#74">74</a>  <em class="jxr_javadoccomment"> * are:</em>
+<a class="jxr_linenumber" name="75" href="#75">75</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="76" href="#76">76</a>  <em class="jxr_javadoccomment"> * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="77" href="#77">77</a>  <em class="jxr_javadoccomment"> * &lt;li&gt;Create a table with a specified number of pre-split regions</em>
+<a class="jxr_linenumber" name="78" href="#78">78</a>  <em class="jxr_javadoccomment"> * &lt;li&gt;Execute a rolling split of all regions on an existing table</em>
+<a class="jxr_linenumber" name="79" href="#79">79</a>  <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="80" href="#80">80</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="81" href="#81">81</a>  <em class="jxr_javadoccomment"> * Both operations can be safely done on a live server.</em>
+<a class="jxr_linenumber" name="82" href="#82">82</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="83" href="#83">83</a>  <em class="jxr_javadoccomment"> * &lt;b&gt;Question:&lt;/b&gt; How do I turn off automatic splitting? &lt;br&gt;</em>
+<a class="jxr_linenumber" name="84" href="#84">84</a>  <em class="jxr_javadoccomment"> * &lt;b&gt;Answer:&lt;/b&gt; Automatic splitting is determined by the configuration value</em>
+<a class="jxr_linenumber" name="85" href="#85">85</a>  <em class="jxr_javadoccomment"> * &lt;i&gt;HConstants.HREGION_MAX_FILESIZE&lt;/i&gt;. It is not recommended that you set this</em>
+<a class="jxr_linenumber" name="86" href="#86">86</a>  <em class="jxr_javadoccomment"> * to Long.MAX_VALUE in case you forget about manual splits. A suggested setting</em>
+<a class="jxr_linenumber" name="87" href="#87">87</a>  <em class="jxr_javadoccomment"> * is 100GB, which would result in &amp;gt; 1hr major compactions if reached.</em>
+<a class="jxr_linenumber" name="88" href="#88">88</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="89" href="#89">89</a>  <em class="jxr_javadoccomment"> * &lt;b&gt;Question:&lt;/b&gt; Why did the original authors decide to manually split? &lt;br&gt;</em>
+<a class="jxr_linenumber" name="90" href="#90">90</a>  <em class="jxr_javadoccomment"> * &lt;b&gt;Answer:&lt;/b&gt; Specific workload characteristics of our use case allowed us</em>
+<a class="jxr_linenumber" name="91" href="#91">91</a>  <em class="jxr_javadoccomment"> * to benefit from a manual split system.</em>
+<a class="jxr_linenumber" name="92" href="#92">92</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="93" href="#93">93</a>  <em class="jxr_javadoccomment"> * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="94" href="#94">94</a>  <em class="jxr_javadoccomment"> * &lt;li&gt;Data (~1k) that would grow instead of being replaced</em>
+<a class="jxr_linenumber" name="95" href="#95">95</a>  <em class="jxr_javadoccomment"> * &lt;li&gt;Data growth was roughly uniform across all regions</em>
+<a class="jxr_linenumber" name="96" href="#96">96</a>  <em class="jxr_javadoccomment"> * &lt;li&gt;OLTP workload. Data loss is a big deal.</em>
+<a class="jxr_linenumber" name="97" href="#97">97</a>  <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="98" href="#98">98</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="99" href="#99">99</a>  <em class="jxr_javadoccomment"> * &lt;b&gt;Question:&lt;/b&gt; Why is manual splitting good for this workload? &lt;br&gt;</em>
+<a class="jxr_linenumber" name="100" href="#100">100</a> <em class="jxr_javadoccomment"> * &lt;b&gt;Answer:&lt;/b&gt; Although automated splitting is not a bad option, there are</em>
+<a class="jxr_linenumber" name="101" href="#101">101</a> <em class="jxr_javadoccomment"> * benefits to manual splitting.</em>
+<a class="jxr_linenumber" name="102" href="#102">102</a> <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="103" href="#103">103</a> <em class="jxr_javadoccomment"> * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="104" href="#104">104</a> <em class="jxr_javadoccomment"> * &lt;li&gt;With growing amounts of data, splits will continually be needed. Since</em>
+<a class="jxr_linenumber" name="105" href="#105">105</a> <em class="jxr_javadoccomment"> * you always know exactly what regions you have, long-term debugging and</em>
+<a class="jxr_linenumber" name="106" href="#106">106</a> <em class="jxr_javadoccomment"> * profiling is much easier with manual splits. It is hard to trace the logs to</em>
+<a class="jxr_linenumber" name="107" href="#107">107</a> <em class="jxr_javadoccomment"> * understand region level problems if it keeps splitting and getting renamed.</em>
+<a class="jxr_linenumber" name="108" href="#108">108</a> <em class="jxr_javadoccomment"> * &lt;li&gt;Data offlining bugs + unknown number of split regions == oh crap! If an</em>
+<a class="jxr_linenumber" name="109" href="#109">109</a> <em class="jxr_javadoccomment"> * WAL or StoreFile was mistakenly unprocessed by HBase due to a weird bug and</em>
+<a class="jxr_linenumber" name="110" href="#110">110</a> <em class="jxr_javadoccomment"> * you notice it a day or so later, you can be assured that the regions</em>
+<a class="jxr_linenumber" name="111" href="#111">111</a> <em class="jxr_javadoccomment"> * specified in these files are the same as the current regions and you have</em>
+<a class="jxr_linenumber" name="112" href="#112">112</a> <em class="jxr_javadoccomment"> * less headaches trying to restore/replay your data.</em>
+<a class="jxr_linenumber" name="113" href="#113">113</a> <em class="jxr_javadoccomment"> * &lt;li&gt;You can finely tune your compaction algorithm. With roughly uniform data</em>
+<a class="jxr_linenumber" name="114" href="#114">114</a> <em class="jxr_javadoccomment"> * growth, it's easy to cause split / compaction storms as the regions all</em>
+<a class="jxr_linenumber" name="115" href="#115">115</a> <em class="jxr_javadoccomment"> * roughly hit the same data size at the same time. With manual splits, you can</em>
+<a class="jxr_linenumber" name="116" href="#116">116</a> <em class="jxr_javadoccomment"> * let staggered, time-based major compactions spread out your network IO load.</em>
+<a class="jxr_linenumber" name="117" href="#117">117</a> <em class="jxr_javadoccomment"> * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="118" href="#118">118</a> <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="119" href="#119">119</a> <em class="jxr_javadoccomment"> * &lt;b&gt;Question:&lt;/b&gt; What's the optimal number of pre-split regions to create? &lt;br&gt;</em>
+<a class="jxr_linenumber" name="120" href="#120">120</a> <em class="jxr_javadoccomment"> * &lt;b&gt;Answer:&lt;/b&gt; Mileage will vary depending upon your application.</em>
+<a class="jxr_linenumber" name="121" href="#121">121</a> <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="122" href="#122">122</a> <em class="jxr_javadoccomment"> * The short answer for our application is that we started with 10 pre-split</em>
+<a class="jxr_linenumber" name="123" href="#123">123</a> <em class="jxr_javadoccomment"> * regions / server and watched our data growth over time. It's better to err on</em>
+<a class="jxr_linenumber" name="124" href="#124">124</a> <em class="jxr_javadoccomment"> * the side of too little regions and rolling split later.</em>
+<a class="jxr_linenumber" name="125" href="#125">125</a> <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="126" href="#126">126</a> <em class="jxr_javadoccomment"> * The more complicated answer is that this depends upon the largest storefile</em>
+<a class="jxr_linenumber" name="127" href="#127">127</a> <em class="jxr_javadoccomment"> * in your region. With a growing data size, this will get larger over time. You</em>
+<a class="jxr_linenumber" name="128" href="#128">128</a> <em class="jxr_javadoccomment"> * want the largest region to be just big enough that the</em>
+<a class="jxr_linenumber" name="129" href="#129">129</a> <em class="jxr_javadoccomment"> * {@link org.apache.hadoop.hbase.regionserver.HStore} compact</em>
+<a class="jxr_linenumber" name="130" href="#130">130</a> <em class="jxr_javadoccomment"> * selection algorithm only compacts it due to a timed major. If you don't, your</em>
+<a class="jxr_linenumber" name="131" href="#131">131</a> <em class="jxr_javadoccomment"> * cluster can be prone to compaction storms as the algorithm decides to run</em>
+<a class="jxr_linenumber" name="132" href="#132">132</a> <em class="jxr_javadoccomment"> * major compactions on a large series of regions all at once. Note that</em>
+<a class="jxr_linenumber" name="133" href="#133">133</a> <em class="jxr_javadoccomment"> * compaction storms are due to the uniform data growth, not the manual split</em>
+<a class="jxr_linenumber" name="134" href="#134">134</a> <em class="jxr_javadoccomment"> * decision.</em>
+<a class="jxr_linenumber" name="135" href="#135">135</a> <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="136" href="#136">136</a> <em class="jxr_javadoccomment"> * If you pre-split your regions too thin, you can increase the major compaction</em>
+<a class="jxr_linenumber" name="137" href="#137">137</a> <em class="jxr_javadoccomment"> * interval by configuring HConstants.MAJOR_COMPACTION_PERIOD. If your data size</em>
+<a class="jxr_linenumber" name="138" href="#138">138</a> <em class="jxr_javadoccomment"> * grows too large, use this script to perform a network IO safe rolling split</em>
+<a class="jxr_linenumber" name="139" href="#139">139</a> <em class="jxr_javadoccomment"> * of all regions.</em>
+<a class="jxr_linenumber" name="140" href="#140">140</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="141" href="#141">141</a> @InterfaceAudience.Private
+<a class="jxr_linenumber" name="142" href="#142">142</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.html">RegionSplitter</a> {
+<a class="jxr_linenumber" name="143" href="#143">143</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Log LOG = LogFactory.getLog(RegionSplitter.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="144" href="#144">144</a>
+<a class="jxr_linenumber" name="145" href="#145">145</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="146" href="#146">146</a> <em class="jxr_javadoccomment">   * A generic interface for the RegionSplitter code to use for all it's</em>
+<a class="jxr_linenumber" name="147" href="#147">147</a> <em class="jxr_javadoccomment">   * functionality. Note that the original authors of this code use</em>
+<a class="jxr_linenumber" name="148" href="#148">148</a> <em class="jxr_javadoccomment">   * {@link HexStringSplit} to partition their table and set it as default, but</em>
+<a class="jxr_linenumber" name="149" href="#149">149</a> <em class="jxr_javadoccomment">   * provided this for your custom algorithm. To use, create a new derived class</em>
+<a class="jxr_linenumber" name="150" href="#150">150</a> <em class="jxr_javadoccomment">   * from this interface and call {@link RegionSplitter#createPresplitTable} or</em>
+<a class="jxr_linenumber" name="151" href="#151">151</a> <em class="jxr_javadoccomment">   * RegionSplitter#rollingSplit(TableName, SplitAlgorithm, Configuration) with the</em>
+<a class="jxr_linenumber" name="152" href="#152">152</a> <em class="jxr_javadoccomment">   * argument splitClassName giving the name of your class.</em>
+<a class="jxr_linenumber" name="153" href="#153">153</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="154" href="#154">154</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">interface</strong> <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.html">SplitAlgorithm</a> {
+<a class="jxr_linenumber" name="155" href="#155">155</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="156" href="#156">156</a> <em class="jxr_javadoccomment">     * Split a pre-existing region into 2 regions.</em>
+<a class="jxr_linenumber" name="157" href="#157">157</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="158" href="#158">158</a> <em class="jxr_javadoccomment">     * @param start</em>
+<a class="jxr_linenumber" name="159" href="#159">159</a> <em class="jxr_javadoccomment">     *          first row (inclusive)</em>
+<a class="jxr_linenumber" name="160" href="#160">160</a> <em class="jxr_javadoccomment">     * @param end</em>
+<a class="jxr_linenumber" name="161" href="#161">161</a> <em class="jxr_javadoccomment">     *          last row (exclusive)</em>
+<a class="jxr_linenumber" name="162" href="#162">162</a> <em class="jxr_javadoccomment">     * @return the split row to use</em>
+<a class="jxr_linenumber" name="163" href="#163">163</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="164" href="#164">164</a>     byte[] split(byte[] start, byte[] end);
+<a class="jxr_linenumber" name="165" href="#165">165</a>
+<a class="jxr_linenumber" name="166" href="#166">166</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="167" href="#167">167</a> <em class="jxr_javadoccomment">     * Split an entire table.</em>
+<a class="jxr_linenumber" name="168" href="#168">168</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="169" href="#169">169</a> <em class="jxr_javadoccomment">     * @param numRegions</em>
+<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_javadoccomment">     *          number of regions to split the table into</em>
+<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * @throws RuntimeException</em>
+<a class="jxr_linenumber" name="173" href="#173">173</a> <em class="jxr_javadoccomment">     *           user input is validated at this time. may throw a runtime</em>
+<a class="jxr_linenumber" name="174" href="#174">174</a> <em class="jxr_javadoccomment">     *           exception in response to a parse failure</em>
+<a class="jxr_linenumber" name="175" href="#175">175</a> <em class="jxr_javadoccomment">     * @return array of split keys for the initial regions of the table. The</em>
+<a class="jxr_linenumber" name="176" href="#176">176</a> <em class="jxr_javadoccomment">     *         length of the returned array should be numRegions-1.</em>
+<a class="jxr_linenumber" name="177" href="#177">177</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="178" href="#178">178</a>     byte[][] split(<strong class="jxr_keyword">int</strong> numRegions);
+<a class="jxr_linenumber" name="179" href="#179">179</a>
+<a class="jxr_linenumber" name="180" href="#180">180</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="181" href="#181">181</a> <em class="jxr_javadoccomment">     * In HBase, the first row is represented by an empty byte array. This might</em>
+<a class="jxr_linenumber" name="182" href="#182">182</a> <em class="jxr_javadoccomment">     * cause problems with your split algorithm or row printing. All your APIs</em>
+<a class="jxr_linenumber" name="183" href="#183">183</a> <em class="jxr_javadoccomment">     * will be passed firstRow() instead of empty array.</em>
+<a class="jxr_linenumber" name="184" href="#184">184</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="185" href="#185">185</a> <em class="jxr_javadoccomment">     * @return your representation of your first row</em>
+<a class="jxr_linenumber" name="186" href="#186">186</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="187" href="#187">187</a>     byte[] firstRow();
+<a class="jxr_linenumber" name="188" href="#188">188</a>
+<a class="jxr_linenumber" name="189" href="#189">189</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="190" href="#190">190</a> <em class="jxr_javadoccomment">     * In HBase, the last row is represented by an empty byte array. This might</em>
+<a class="jxr_linenumber" name="191" href="#191">191</a> <em class="jxr_javadoccomment">     * cause problems with your split algorithm or row printing. All your APIs</em>
+<a class="jxr_linenumber" name="192" href="#192">192</a> <em class="jxr_javadoccomment">     * will be passed firstRow() instead of empty array.</em>
+<a class="jxr_linenumber" name="193" href="#193">193</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="194" href="#194">194</a> <em class="jxr_javadoccomment">     * @return your representation of your last row</em>
+<a class="jxr_linenumber" name="195" href="#195">195</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="196" href="#196">196</a>     byte[] lastRow();
+<a class="jxr_linenumber" name="197" href="#197">197</a>
+<a class="jxr_linenumber" name="198" href="#198">198</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="199" href="#199">199</a> <em class="jxr_javadoccomment">     * In HBase, the last row is represented by an empty byte array. Set this</em>
+<a class="jxr_linenumber" name="200" href="#200">200</a> <em class="jxr_javadoccomment">     * value to help the split code understand how to evenly divide the first</em>
+<a class="jxr_linenumber" name="201" href="#201">201</a> <em class="jxr_javadoccomment">     * region.</em>
+<a class="jxr_linenumber" name="202" href="#202">202</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * @param userInput</em>
+<a class="jxr_linenumber" name="204" href="#204">204</a> <em class="jxr_javadoccomment">     *          raw user input (may throw RuntimeException on parse failure)</em>
+<a class="jxr_linenumber" name="205" href="#205">205</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="206" href="#206">206</a>     <strong class="jxr_keyword">void</strong> setFirstRow(String userInput);
+<a class="jxr_linenumber" name="207" href="#207">207</a>
+<a class="jxr_linenumber" name="208" href="#208">208</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="209" href="#209">209</a> <em class="jxr_javadoccomment">     * In HBase, the last row is represented by an empty byte array. Set this</em>
+<a class="jxr_linenumber" name="210" href="#210">210</a> <em class="jxr_javadoccomment">     * value to help the split code understand how to evenly divide the last</em>
+<a class="jxr_linenumber" name="211" href="#211">211</a> <em class="jxr_javadoccomment">     * region. Note that this last row is inclusive for all rows sharing the</em>
+<a class="jxr_linenumber" name="212" href="#212">212</a> <em class="jxr_javadoccomment">     * same prefix.</em>
+<a class="jxr_linenumber" name="213" href="#213">213</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="214" href="#214">214</a> <em class="jxr_javadoccomment">     * @param userInput</em>
+<a class="jxr_linenumber" name="215" href="#215">215</a> <em class="jxr_javadoccomment">     *          raw user input (may throw RuntimeException on parse failure)</em>
+<a class="jxr_linenumber" name="216" href="#216">216</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="217" href="#217">217</a>     <strong class="jxr_keyword">void</strong> setLastRow(String userInput);
+<a class="jxr_linenumber" name="218" href="#218">218</a>
+<a class="jxr_linenumber" name="219" href="#219">219</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="220" href="#220">220</a> <em class="jxr_javadoccomment">     * @param input</em>
+<a class="jxr_linenumber" name="221" href="#221">221</a> <em class="jxr_javadoccomment">     *          user or file input for row</em>
+<a class="jxr_linenumber" name="222" href="#222">222</a> <em class="jxr_javadoccomment">     * @return byte array representation of this row for HBase</em>
+<a class="jxr_linenumber" name="223" href="#223">223</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="224" href="#224">224</a>     byte[] strToRow(String input);
+<a class="jxr_linenumber" name="225" href="#225">225</a>
+<a class="jxr_linenumber" name="226" href="#226">226</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="227" href="#227">227</a> <em class="jxr_javadoccomment">     * @param row</em>
+<a class="jxr_linenumber" name="228" href="#228">228</a> <em class="jxr_javadoccomment">     *          byte array representing a row in HBase</em>
+<a class="jxr_linenumber" name="229" href="#229">229</a> <em class="jxr_javadoccomment">     * @return String to use for debug &amp;amp; file printing</em>
+<a class="jxr_linenumber" name="230" href="#230">230</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="231" href="#231">231</a>     String rowToStr(byte[] row);
+<a class="jxr_linenumber" name="232" href="#232">232</a>
+<a class="jxr_linenumber" name="233" href="#233">233</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="234" href="#234">234</a> <em class="jxr_javadoccomment">     * @return the separator character to use when storing / printing the row</em>
+<a class="jxr_linenumber" name="235" href="#235">235</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="236" href="#236">236</a>     String separator();
+<a class="jxr_linenumber" name="237" href="#237">237</a>
+<a class="jxr_linenumber" name="238" href="#238">238</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="239" href="#239">239</a> <em class="jxr_javadoccomment">     * Set the first row</em>
+<a class="jxr_linenumber" name="240" href="#240">240</a> <em class="jxr_javadoccomment">     * @param userInput byte array of the row key.</em>
+<a class="jxr_linenumber" name="241" href="#241">241</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="242" href="#242">242</a>     <strong class="jxr_keyword">void</strong> setFirstRow(byte[] userInput);
+<a class="jxr_linenumber" name="243" href="#243">243</a>
+<a class="jxr_linenumber" name="244" href="#244">244</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="245" href="#245">245</a> <em class="jxr_javadoccomment">     * Set the last row</em>
+<a class="jxr_linenumber" name="246" href="#246">246</a> <em class="jxr_javadoccomment">     * @param userInput byte array of the row key.</em>
+<a class="jxr_linenumber" name="247" href="#247">247</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="248" href="#248">248</a>     <strong class="jxr_keyword">void</strong> setLastRow(byte[] userInput);
+<a class="jxr_linenumber" name="249" href="#249">249</a>   }
+<a class="jxr_linenumber" name="250" href="#250">250</a>
+<a class="jxr_linenumber" name="251" href="#251">251</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="252" href="#252">252</a> <em class="jxr_javadoccomment">   * The main function for the RegionSplitter application. Common uses:</em>
+<a class="jxr_linenumber" name="253" href="#253">253</a> <em class="jxr_javadoccomment">   * &lt;p&gt;</em>
+<a class="jxr_linenumber" name="254" href="#254">254</a> <em class="jxr_javadoccomment">   * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="255" href="#255">255</a> <em class="jxr_javadoccomment">   * &lt;li&gt;create a table named 'myTable' with 60 pre-split regions containing 2</em>
+<a class="jxr_linenumber" name="256" href="#256">256</a> <em class="jxr_javadoccomment">   * column families 'test' &amp;amp; 'rs', assuming the keys are hex-encoded ASCII:</em>
+<a class="jxr_linenumber" name="257" href="#257">257</a> <em class="jxr_javadoccomment">   * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="258" href="#258">258</a> <em class="jxr_javadoccomment">   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -c 60 -f test:rs</em>
+<a class="jxr_linenumber" name="259" href="#259">259</a> <em class="jxr_javadoccomment">   * myTable HexStringSplit</em>
+<a class="jxr_linenumber" name="260" href="#260">260</a> <em class="jxr_javadoccomment">   * &lt;/ul&gt;</em>
+<a class="jxr_linenumber" name="261" href="#261">261</a> <em class="jxr_javadoccomment">   * &lt;li&gt;perform a rolling split of 'myTable' (i.e. 60 =&amp;gt; 120 regions), # 2</em>
+<a class="jxr_linenumber" name="262" href="#262">262</a> <em class="jxr_javadoccomment">   * outstanding splits at a time, assuming keys are uniformly distributed</em>
+<a class="jxr_linenumber" name="263" href="#263">263</a> <em class="jxr_javadoccomment">   * bytes:</em>
+<a class="jxr_linenumber" name="264" href="#264">264</a> <em class="jxr_javadoccomment">   * &lt;ul&gt;</em>
+<a class="jxr_linenumber" name="265" href="#265">265</a> <em class="jxr_javadoccomment">   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -r -o 2 myTable</em>
+<a class="jxr_linenumber" name="266" href="#266">266</a> <em class="jxr_javadoccomment">   * UniformSplit</em>
+<a class="jxr_linenumber" name="267" href="#267">267</a> <em class="jxr_javadoccomment">   * &lt;/ul&gt;</em>
 <a class="jxr_linenumber" name="268" href="#268">268</a> <em class="jxr_javadoccomment">   * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="269" href="#269">269</a> <em class="jxr_javadoccomment">   * &lt;/ul&gt;</em>
-<a class="jxr_linenumber" name="270" href="#270">270</a> <em class="jxr_javadoccomment">   *</em>
-<a class="jxr_linenumber" name="271" href="#271">271</a> <em class="jxr_javadoccomment">   * There are two SplitAlgorithms built into RegionSplitter, HexStringSplit</em>
-<a class="jxr_linenumber" name="272" href="#272">272</a> <em class="jxr_javadoccomment">   * and UniformSplit. These are different strategies for choosing region</em>
-<a class="jxr_linenumber" name="273" href="#273">273</a> <em class="jxr_javadoccomment">   * boundaries. See their source code for details.</em>
-<a class="jxr_linenumber" name="274" href="#274">274</a> <em class="jxr_javadoccomment">   *</em>
-<a class="jxr_linenumber" name="275" href="#275">275</a> <em class="jxr_javadoccomment">   * @param args</em>
-<a class="jxr_linenumber" name="276" href="#276">276</a> <em class="jxr_javadoccomment">   *          Usage: RegionSplitter &amp;lt;TABLE&amp;gt; &amp;lt;SPLITALGORITHM&amp;gt;</em>
-<a class="jxr_linenumber" name="277" href="#277">277</a> <em class="jxr_javadoccomment">   *          &amp;lt;-c &amp;lt;# regions&amp;gt; -f &amp;lt;family:family:...&amp;gt; | -r</em>
-<a class="jxr_linenumber" name="278" href="#278">278</a> <em class="jxr_javadoccomment">   *          [-o &amp;lt;# outstanding splits&amp;gt;]&amp;gt;</em>
-<a class="jxr_linenumber" name="279" href="#279">279</a> <em class="jxr_javadoccomment">   *          [-D &amp;lt;conf.param=value&amp;gt;]</em>
-<a class="jxr_linenumber" name="280" href="#280">280</a> <em class="jxr_javadoccomment">   * @throws IOException</em>
-<a class="jxr_linenumber" name="281" href="#281">281</a> <em class="jxr_javadoccomment">   *           HBase IO problem</em>
-<a class="jxr_linenumber" name="282" href="#282">282</a> <em class="jxr_javadoccomment">   * @throws InterruptedException</em>
-<a class="jxr_linenumber" name="283" href="#283">283</a> <em class="jxr_javadoccomment">   *           user requested exit</em>
-<a class="jxr_linenumber" name="284" href="#284">284</a> <em class="jxr_javadoccomment">   * @throws ParseException</em>
-<a class="jxr_linenumber" name="285" href="#285">285</a> <em class="jxr_javadoccomment">   *           problem parsing user input</em>
-<a class="jxr_linenumber" name="286" href="#286">286</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="287" href="#287">287</a>   @SuppressWarnings(<span class="jxr_string">"static-access"</span>)
-<a class="jxr_linenumber" name="288" href="#288">288</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) <strong class="jxr_keyword">throws</strong> IOException,
-<a class="jxr_linenumber" name="289" href="#289">289</a>       InterruptedException, ParseException {
-<a class="jxr_linenumber" name="290" href="#290">290</a>     Configuration conf = HBaseConfiguration.create();
-<a class="jxr_linenumber" name="291" href="#291">291</a> 
-<a class="jxr_linenumber" name="292" href="#292">292</a>     <em class="jxr_comment">// parse user input</em>
-<a class="jxr_linenumber" name="293" href="#293">293</a>     Options opt = <strong class="jxr_keyword">new</strong> Options();
-<a class="jxr_linenumber" name="294" href="#294">294</a>     opt.addOption(OptionBuilder.withArgName(<span class="jxr_string">"property=value"</span>).hasArg()
-<a class="jxr_linenumber" name="295" href="#295">295</a>         .withDescription(<span class="jxr_string">"Override HBase Configuration Settings"</span>).create(<span class="jxr_string">"D"</span>));
-<a class="jxr_linenumber" name="296" href="#296">296</a>     opt.addOption(OptionBuilder.withArgName(<span class="jxr_string">"region count"</span>).hasArg()
-<a class="jxr_linenumber" name="297" href="#297">297</a>         .withDescription(
-<a class="jxr_linenumber" name="298" href="#298">298</a>             <span class="jxr_string">"Create a new table with a pre-split number of regions"</span>)
-<a class="jxr_linenumber" name="299" href="#299">299</a>         .create(<span class="jxr_string">"c"</span>));
-<a class="jxr_linenumber" name="300" href="#300">300</a>     opt.addOption(OptionBuilder.withArgName(<span class="jxr_string">"family:family:..."</span>).hasArg()
-<a class="jxr_linenumber" name="301" href="#301">301</a>         .withDescription(
-<a class="jxr_linenumber" name="302" href="#302">302</a>             <span class="jxr_string">"Column Families to create with new table.  Required with -c"</span>)
-<a class="jxr_linenumber" name="303" href="#303">303</a>         .create(<span class="jxr_string">"f"</span>));
-<a class="jxr_linenumber" name="304" href="#304">304</a>     opt.addOption(<span class="jxr_string">"h"</span>, false, <span class="jxr_string">"Print this usage help"</span>);
-<a class="jxr_linenumber" name="305" href="#305">305</a>     opt.addOption(<span class="jxr_string">"r"</span>, false, <span class="jxr_string">"Perform a rolling split of an existing region"</span>);
-<a class="jxr_linenumber" name="306" href="#306">306</a>     opt.addOption(OptionBuilder.withArgName(<span class="jxr_string">"count"</span>).hasArg().withDescription(
-<a class="jxr_linenumber" name="307" href="#307">307</a>         <span class="jxr_string">"Max outstanding splits that have unfinished major compactions"</span>)
-<a class="jxr_linenumber" name="308" href="#308">308</a>         .create(<span class="jxr_string">"o"</span>));
-<a class="jxr_linenumber" name="309" href="#309">309</a>     opt.addOption(<strong class="jxr_keyword">null</strong>, <span class="jxr_string">"firstrow"</span>, <strong class="jxr_keyword">true</strong>,
-<a class="jxr_linenumber" name="310" href="#310">310</a>         <span class="jxr_string">"First Row in Table for Split Algorithm"</span>);
-<a class="jxr_linenumber" name="311" href="#311">311</a>     opt.addOption(<strong class="jxr_keyword">null</strong>, <span class="jxr_string">"lastrow"</span>, <strong class="jxr_keyword">true</strong>,
-<a class="jxr_linenumber" name="312" href="#312">312</a>         <span class="jxr_string">"Last Row in Table for Split Algorithm"</span>);
-<a class="jxr_linenumber" name="313" href="#313">313</a>     opt.addOption(<strong class="jxr_keyword">null</strong>, <span class="jxr_string">"risky"</span>, false,
-<a class="jxr_linenumber" name="314" href="#314">314</a>         <span class="jxr_string">"Skip verification steps to complete quickly."</span>
-<a class="jxr_linenumber" name="315" href="#315">315</a>             + <span class="jxr_string">"STRONGLY DISCOURAGED for production systems.  "</span>);
-<a class="jxr_linenumber" name="316" href="#316">316</a>     CommandLine cmd = <strong class="jxr_keyword">new</strong> GnuParser().parse(opt, args);
-<a class="jxr_linenumber" name="317" href="#317">317</a> 
-<a class="jxr_linenumber" name="318" href="#318">318</a>     <strong class="jxr_keyword">if</strong> (cmd.hasOption(<span class="jxr_string">"D"</span>)) {
-<a class="jxr_linenumber" name="319" href="#319">319</a>       <strong class="jxr_keyword">for</strong> (String confOpt : cmd.getOptionValues(<span class="jxr_string">"D"</span>)) {
-<a class="jxr_linenumber" name="320" href="#320">320</a>         String[] kv = confOpt.split(<span class="jxr_string">"="</span>, 2);
-<a class="jxr_linenumber" name="321" href="#321">321</a>         <strong class="jxr_keyword">if</strong> (kv.length == 2) {
-<a class="jxr_linenumber" name="322" href="#322">322</a>           conf.set(kv[0], kv[1]);
-<a class="jxr_linenumber" name="323" href="#323">323</a>           LOG.debug(<span class="jxr_string">"-D configuration override: "</span> + kv[0] + <span class="jxr_string">"="</span> + kv[1]);
-<a class="jxr_linenumber" name="324" href="#324">324</a>         } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="325" href="#325">325</a>           <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ParseException(<span class="jxr_string">"-D option format invalid: "</span> + confOpt);
-<a class="jxr_linenumber" name="326" href="#326">326</a>         }
-<a class="jxr_linenumber" name="327" href="#327">327</a>       }
-<a class="jxr_linenumber" name="328" href="#328">328</a>     }
-<a class="jxr_linenumber" name="329" href="#329">329</a> 
-<a class="jxr_linenumber" name="330" href="#330">330</a>     <strong class="jxr_keyword">if</strong> (cmd.hasOption(<span class="jxr_string">"risky"</span>)) {
-<a class="jxr_linenumber" name="331" href="#331">331</a>       conf.setBoolean(<span class="jxr_string">"split.verify"</span>, false);
-<a class="jxr_linenumber" name="332" href="#332">332</a>     }
-<a class="jxr_linenumber" name="333" href="#333">333</a> 
-<a class="jxr_linenumber" name="334" href="#334">334</a>     <strong class="jxr_keyword">boolean</strong> createTable = cmd.hasOption(<span class="jxr_string">"c"</span>) &amp;&amp; cmd.hasOption(<span class="jxr_string">"f"</span>);
-<a class="jxr_linenumber" name="335" href="#335">335</a>     <strong class="jxr_keyword">boolean</strong> rollingSplit = cmd.hasOption(<span class="jxr_string">"r"</span>);
-<a class="jxr_linenumber" name="336" href="#336">336</a>     <strong class="jxr_keyword">boolean</strong> oneOperOnly = createTable ^ rollingSplit;
-<a class="jxr_linenumber" name="337" href="#337">337</a> 
-<a class="jxr_linenumber" name="338" href="#338">338</a>     <strong class="jxr_keyword">if</strong> (2 != cmd.getArgList().size() || !oneOperOnly || cmd.hasOption(<span class="jxr_string">"h"</span>)) {
-<a class="jxr_linenumber" name="339" href="#339">339</a>       <strong class="jxr_keyword">new</strong> HelpFormatter().printHelp(<span class="jxr_string">"RegionSplitter &lt;TABLE&gt; &lt;SPLITALGORITHM&gt;\n"</span>+
-<a class="jxr_linenumber" name="340" href="#340">340</a>           <span class="jxr_string">"SPLITALGORITHM is a java class name of a class implementing "</span> +
-<a class="jxr_linenumber" name="341" href="#341">341</a>           <span class="jxr_string">"SplitAlgorithm, or one of the special strings HexStringSplit "</span> +
-<a class="jxr_linenumber" name="342" href="#342">342</a>           <span class="jxr_string">"or UniformSplit, which are built-in split algorithms. "</span> +
-<a class="jxr_linenumber" name="343" href="#343">343</a>           <span class="jxr_string">"HexStringSplit treats keys as hexadecimal ASCII, and "</span> +
-<a class="jxr_linenumber" name="344" href="#344">344</a>           <span class="jxr_string">"UniformSplit treats keys as arbitrary bytes."</span>, opt);
-<a class="jxr_linenumber" name="345" href="#345">345</a>       <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="346" href="#346">346</a>     }
-<a class="jxr_linenumber" name="347" href="#347">347</a>     <a href="../../../../../org/apache/hadoop/hbase/TableName.html">TableName</a> tableName = TableName.valueOf(cmd.getArgs()[0]);
-<a class="jxr_linenumber" name="348" href="#348">348</a>     String splitClass = cmd.getArgs()[1];
-<a class="jxr_linenumber" name="349" href="#349">349</a>     <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.html">SplitAlgorithm</a> splitAlgo = newSplitAlgoInstance(conf, splitClass);
-<a class="jxr_linenumber" name="350" href="#350">350</a> 
-<a class="jxr_linenumber" name="351" href="#351">351</a>     <strong class="jxr_keyword">if</strong> (cmd.hasOption(<span class="jxr_string">"firstrow"</span>)) {
-<a class="jxr_linenumber" name="352" href="#352">352</a>       splitAlgo.setFirstRow(cmd.getOptionValue(<span class="jxr_string">"firstrow"</span>));
-<a class="jxr_linenumber" name="353" href="#353">353</a>     }
-<a class="jxr_linenumber" name="354" href="#354">354</a>     <strong class="jxr_keyword">if</strong> (cmd.hasOption(<span class="jxr_string">"lastrow"</span>)) {
-<a class="jxr_linenumber" name="355" href="#355">355</a>       splitAlgo.setLastRow(cmd.getOptionValue(<span class="jxr_string">"lastrow"</span>));
-<a class="jxr_linenumber" name="356" href="#356">356</a>     }
-<a class="jxr_linenumber" name="357" href="#357">357</a> 
-<a class="jxr_linenumber" name="358" href="#358">358</a>     <strong class="jxr_keyword">if</strong> (createTable) {
-<a class="jxr_linenumber" name="359" href="#359">359</a>       conf.set(<span class="jxr_string">"split.count"</span>, cmd.getOptionValue(<span class="jxr_string">"c"</span>));
-<a class="jxr_linenumber" name="360" href="#360">360</a>       createPresplitTable(tableName, splitAlgo, cmd.getOptionValue(<span class="jxr_string">"f"</span>).split(<span class="jxr_string">":"</span>), conf);
-<a class="jxr_linenumber" name="361" href="#361">361</a>     }
-<a class="jxr_linenumber" name="362" href="#362">362</a> 
-<a class="jxr_linenumber" name="363" href="#363">363</a>     <strong class="jxr_keyword">if</strong> (rollingSplit) {
-<a class="jxr_linenumber" name="364" href="#364">364</a>       <strong class="jxr_keyword">if</strong> (cmd.hasOption(<span class="jxr_string">"o"</span>)) {
-<a class="jxr_linenumber" name="365" href="#365">365</a>         conf.set(<span class="jxr_string">"split.outstanding"</span>, cmd.getOptionValue(<span class="jxr_string">"o"</span>));
-<a class="jxr_linenumber" name="366" href="#366">366</a>       }
-<a class="jxr_linenumber" name="367" href="#367">367</a>       rollingSplit(tableName, splitAlgo, conf);
-<a class="jxr_linenumber" name="368" href="#368">368</a>     }
-<a class="jxr_linenumber" name="369" href="#369">369</a>   }
-<a class="jxr_linenumber" name="370" href="#370">370</a> 
-<a class="jxr_linenumber" name="371" href="#371">371</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> createPresplitTable(<a href="../../../../../org/apache/hadoop/hbase/TableName.html">TableName</a> tableName, <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.html">SplitAlgorithm</a> splitAlgo,
-<a class="jxr_linenumber" name="372" href="#372">372</a>           String[] columnFamilies, Configuration conf)
-<a class="jxr_linenumber" name="373" href="#373">373</a>   <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
-<a class="jxr_linenumber" name="374" href="#374">374</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> splitCount = conf.getInt(<span class="jxr_string">"split.count"</span>, 0);
-<a class="jxr_linenumber" name="375" href="#375">375</a>     Preconditions.checkArgument(splitCount &gt; 1, <span class="jxr_string">"Split count must be &gt; 1"</span>);
-<a class="jxr_linenumber" name="376" href="#376">376</a> 
-<a class="jxr_linenumber" name="377" href="#377">377</a>     Preconditions.checkArgument(columnFamilies.length &gt; 0,
-<a class="jxr_linenumber" name="378" href="#378">378</a>         <span class="jxr_string">"Must specify at least one column family. "</span>);
-<a class="jxr_linenumber" name="379" href="#379">379</a>     LOG.debug(<span class="jxr_string">"Creating table "</span> + tableName + <span class="jxr_string">" with "</span> + columnFamilies.length
-<a class="jxr_linenumber" name="380" href="#380">380</a>         + <span class="jxr_string">" column families.  Presplitting to "</span> + splitCount + <span class="jxr_string">" regions"</span>);
-<a class="jxr_linenumber" name="381" href="#381">381</a> 
-<a class="jxr_linenumber" name="382" href="#382">382</a>     <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html">HTableDescriptor</a> desc = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html">HTableDescriptor</a>(tableName);
-<a class="jxr_linenumber" name="383" href="#383">383</a>     <strong class="jxr_keyword">for</strong> (String cf : columnFamilies) {
-<a class="jxr_linenumber" name="384" href="#384">384</a>       desc.addFamily(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html">HColumnDescriptor</a>(Bytes.toBytes(cf)));
-<a class="jxr_linenumber" name="385" href="#385">385</a>     }
-<a class="jxr_linenumber" name="386" href="#386">386</a>     <strong class="jxr_keyword">try</strong> (Connection connection = ConnectionFactory.createConnection(conf)) {
-<a class="jxr_linenumber" name="387" href="#387">387</a>       <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html">Admin</a> admin = connection.getAdmin();
-<a class="jxr_linenumber" name="388" href="#388">388</a>       <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="389" href="#389">389</a>         Preconditions.checkArgument(!admin.tableExists(tableName),
-<a class="jxr_linenumber" name="390" href="#390">390</a>           <span class="jxr_string">"Table already exists: "</span> + tableName);
-<a class="jxr_linenumber" name="391" href="#391">391</a>         admin.createTable(desc, splitAlgo.split(splitCount));
-<a class="jxr_linenumber" name="392" href="#392">392</a>       } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="393" href="#393">393</a>         admin.close();
-<a class="jxr_linenumber" name="394" href="#394">394</a>       }
-<a class="jxr_linenumber" name="395" href="#395">395</a>       LOG.debug(<span class="jxr_string">"Table created!  Waiting for regions to show online in META..."</span>);
-<a class="jxr_linenumber" name="396" href="#396">396</a>       <strong class="jxr_keyword">if</strong> (!conf.getBoolean(<span class="jxr_string">"split.verify"</span>, <strong class="jxr_keyword">true</strong>)) {
-<a class="jxr_linenumber" name="397" href="#397">397</a>         <em class="jxr_comment">// NOTE: createTable is synchronous on the table, but not on the regions</em>
-<a class="jxr_linenumber" name="398" href="#398">398</a>         <strong class="jxr_keyword">int</strong> onlineRegions = 0;
-<a class="jxr_linenumber" name="399" href="#399">399</a>         <strong class="jxr_keyword">while</strong> (onlineRegions &lt; splitCount) {
-<a class="jxr_linenumber" name="400" href="#400">400</a>           onlineRegions = MetaTableAccessor.getRegionCount(connection, tableName);
-<a class="jxr_linenumber" name="401" href="#401">401</a>           LOG.debug(onlineRegions + <span class="jxr_string">" of "</span> + splitCount + <span class="jxr_string">" regions online..."</span>);
-<a class="jxr_linenumber" name="402" href="#402">402</a>           <strong class="jxr_keyword">if</strong> (onlineRegions &lt; splitCount) {
-<a class="jxr_linenumber" name="403" href="#403">403</a>             Thread.sleep(10 * 1000); <em class="jxr_comment">// sleep</em>
-<a class="jxr_linenumber" name="404" href="#404">404</a>           }
-<a class="jxr_linenumber" name="405" href="#405">405</a>         }
-<a class="jxr_linenumber" name="406" href="#406">406</a>       }
-<a class="jxr_linenumber" name="407" href="#407">407</a>       LOG.debug(<span class="jxr_string">"Finished creating table with "</span> + splitCount + <span class="jxr_string">" regions"</span>);
-<a class="jxr_linenumber" name="408" href="#408">408</a>     }
-<a class="jxr_linenumber" name="409" href="#409">409</a>   }
-<a class="jxr_linenumber" name="410" href="#410">410</a> 
-<a class="jxr_linenumber" name="411" href="#411">411</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="412" href="#412">412</a> <em class="jxr_javadoccomment">   * Alternative getCurrentNrHRS which is no longer available.</em>
-<a class="jxr_linenumber" name="413" href="#413">413</a> <em class="jxr_javadoccomment">   * @param connection</em>
-<a class="jxr_linenumber" name="414" href="#414">414</a> <em class="jxr_javadoccomment">   * @return Rough count of regionservers out on cluster.</em>
-<a class="jxr_linenumber" name="415" href="#415">415</a> <em class="jxr_javadoccomment">   * @throws IOException </em>
-<a class="jxr_linenumber" name="416" href="#416">416</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="417" href="#417">417</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> getRegionServerCount(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html">Connection</a> connection) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="418" href="#418">418</a>     <strong class="jxr_keyword">try</strong> (Admin admin = connection.getAdmin()) {
-<a class="jxr_linenumber" name="419" href="#419">419</a>       <a href="../../../../../org/apache/hadoop/hbase/ClusterStatus.html">ClusterStatus</a> status = admin.getClusterStatus();
-<a class="jxr_linenumber" name="420" href="#420">420</a>       Collection&lt;ServerName&gt; servers = status.getServers();
-<a class="jxr_linenumber" name="421" href="#421">421</a>       <strong class="jxr_keyword">return</strong> servers == <strong class="jxr_keyword">null</strong> || servers.isEmpty()? 0: servers.size();
-<a class="jxr_linenumber" name="422" href="#422">422</a>     }
-<a class="jxr_linenumber" name="423" href="#423">423</a>   }
-<a class="jxr_linenumber" name="424" href="#424">424</a> 
-<a class="jxr_linenumber" name="425" href="#425">425</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> byte [] readFile(<strong class="jxr_keyword">final</strong> FileSystem fs, <strong class="jxr_keyword">final</strong> Path path) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="426" href="#426">426</a>     FSDataInputStream tmpIn = fs.open(path);
-<a class="jxr_linenumber" name="427" href="#427">427</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="428" href="#428">428</a>       byte [] rawData = <strong class="jxr_keyword">new</strong> byte[tmpIn.available()];
-<a class="jxr_linenumber" name="429" href="#429">429</a>       tmpIn.readFully(rawData);
-<a class="jxr_linenumber" name="430" href="#430">430</a>       <strong class="jxr_keyword">return</strong> rawData;
-<a class="jxr_linenumber" name="431" href="#431">431</a>     } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="432" href="#432">432</a>       tmpIn.close();
-<a class="jxr_linenumber" name="433" href="#433">433</a>     }
-<a class="jxr_linenumber" name="434" href="#434">434</a>   }
-<a class="jxr_linenumber" name="435" href="#435">435</a> 
-<a class="jxr_linenumber" name="436" href="#436">436</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> rollingSplit(<a href="../../../../../org/apache/hadoop/hbase/TableName.html">TableName</a> tableName, <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.html">SplitAlgorithm</a> splitAlgo, Configuration conf)
-<a class="jxr_linenumber" name="437" href="#437">437</a>   <strong class="jxr_keyword">throws</strong> IOException, InterruptedException {
-<a class="jxr_linenumber" name="438" href="#438">438</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> minOS = conf.getInt(<span class="jxr_string">"split.outstanding"</span>, 2);
-<a class="jxr_linenumber" name="439" href="#439">439</a>     <strong cla

<TRUNCATED>

[09/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/testdevapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html
index a5ea2a3..83f97ce 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html
@@ -35,586 +35,589 @@
 <span class="sourceLineNo">027</span>import java.util.Collection;<a name="line.27"></a>
 <span class="sourceLineNo">028</span>import java.util.Deque;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>import java.util.List;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.NavigableMap;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.concurrent.ExecutorService;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.32"></a>
-<span class="sourceLineNo">033</span><a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.commons.logging.Log;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.commons.logging.LogFactory;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.conf.Configuration;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.fs.FileSystem;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.fs.Path;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HConstants;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ServerName;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.TableName;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.Result;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.Table;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.testclassification.MapReduceTests;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.junit.AfterClass;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.junit.BeforeClass;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.junit.Test;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.junit.experimental.categories.Category;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.mockito.Mockito;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>import com.google.common.collect.Multimap;<a name="line.75"></a>
+<span class="sourceLineNo">030</span>import java.util.Map;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.NavigableMap;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.concurrent.ExecutorService;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.commons.logging.Log;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.commons.logging.LogFactory;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.conf.Configuration;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.fs.FileSystem;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.fs.Path;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HConstants;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.ServerName;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.TableName;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.Result;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Table;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.testclassification.MapReduceTests;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.junit.AfterClass;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.junit.BeforeClass;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.junit.Test;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.junit.experimental.categories.Category;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.mockito.Mockito;<a name="line.75"></a>
 <span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException;<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>/**<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * Test cases for the atomic load error handling of the bulk load functionality.<a name="line.81"></a>
-<span class="sourceLineNo">082</span> */<a name="line.82"></a>
-<span class="sourceLineNo">083</span>@Category({MapReduceTests.class, LargeTests.class})<a name="line.83"></a>
-<span class="sourceLineNo">084</span>public class TestLoadIncrementalHFilesSplitRecovery {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private static final Log LOG = LogFactory.getLog(TestHRegionServerBulkLoad.class);<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  static HBaseTestingUtility util;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  //used by secure subclass<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  static boolean useSecure = false;<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  final static int NUM_CFS = 10;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  final static byte[] QUAL = Bytes.toBytes("qual");<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  final static int ROWCOUNT = 100;<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>  private final static byte[][] families = new byte[NUM_CFS][];<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  static {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    for (int i = 0; i &lt; NUM_CFS; i++) {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      families[i] = Bytes.toBytes(family(i));<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  }<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  static byte[] rowkey(int i) {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    return Bytes.toBytes(String.format("row_%08d", i));<a name="line.103"></a>
-<span class="sourceLineNo">104</span>  }<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>  static String family(int i) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    return String.format("family_%04d", i);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>  static byte[] value(int i) {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    return Bytes.toBytes(String.format("%010d", i));<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>  public static void buildHFiles(FileSystem fs, Path dir, int value)<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      throws IOException {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    byte[] val = value(value);<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    for (int i = 0; i &lt; NUM_CFS; i++) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      Path testIn = new Path(dir, family(i));<a name="line.118"></a>
-<span class="sourceLineNo">119</span><a name="line.119"></a>
-<span class="sourceLineNo">120</span>      TestHRegionServerBulkLoad.createHFile(fs, new Path(testIn, "hfile_" + i),<a name="line.120"></a>
-<span class="sourceLineNo">121</span>          Bytes.toBytes(family(i)), QUAL, val, ROWCOUNT);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>  /**<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * Creates a table with given table name and specified number of column<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * families if the table does not already exist.<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  private void setupTable(final Connection connection, TableName table, int cfs)<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  throws IOException {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    try {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      LOG.info("Creating table " + table);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      HTableDescriptor htd = new HTableDescriptor(table);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      for (int i = 0; i &lt; cfs; i++) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        htd.addFamily(new HColumnDescriptor(family(i)));<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      try (Admin admin = connection.getAdmin()) {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        admin.createTable(htd);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      }<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    } catch (TableExistsException tee) {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      LOG.info("Table " + table + " already exists");<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    }<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  /**<a name="line.145"></a>
-<span class="sourceLineNo">146</span>   * Creates a table with given table name,specified number of column families&lt;br&gt;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   * and splitkeys if the table does not already exist.<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * @param table<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * @param cfs<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * @param SPLIT_KEYS<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   */<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  private void setupTableWithSplitkeys(TableName table, int cfs, byte[][] SPLIT_KEYS)<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      throws IOException {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    try {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      LOG.info("Creating table " + table);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      HTableDescriptor htd = new HTableDescriptor(table);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      for (int i = 0; i &lt; cfs; i++) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        htd.addFamily(new HColumnDescriptor(family(i)));<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>      util.createTable(htd, SPLIT_KEYS);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    } catch (TableExistsException tee) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      LOG.info("Table " + table + " already exists");<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private Path buildBulkFiles(TableName table, int value) throws Exception {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    Path dir = util.getDataTestDirOnTestFS(table.getNameAsString());<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    Path bulk1 = new Path(dir, table.getNameAsString() + value);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    FileSystem fs = util.getTestFileSystem();<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    buildHFiles(fs, bulk1, value);<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    return bulk1;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  }<a name="line.173"></a>
-<span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  /**<a name="line.175"></a>
-<span class="sourceLineNo">176</span>   * Populate table with known values.<a name="line.176"></a>
-<span class="sourceLineNo">177</span>   */<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  private void populateTable(final Connection connection, TableName table, int value)<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  throws Exception {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    // create HFiles for different column families<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    LoadIncrementalHFiles lih = new LoadIncrementalHFiles(util.getConfiguration());<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    Path bulk1 = buildBulkFiles(table, value);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    try (Table t = connection.getTable(table);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>        RegionLocator locator = connection.getRegionLocator(table);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        Admin admin = connection.getAdmin()) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>        lih.doBulkLoad(bulk1, admin, t, locator);<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  /**<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   * Split the known table in half.  (this is hard coded for this test suite)<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   */<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private void forceSplit(TableName table) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    try {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      // need to call regions server to by synchronous but isn't visible.<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      HRegionServer hrs = util.getRSForFirstRegionInTable(table);<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>      for (HRegionInfo hri :<a name="line.198"></a>
-<span class="sourceLineNo">199</span>          ProtobufUtil.getOnlineRegions(hrs.getRSRpcServices())) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        if (hri.getTable().equals(table)) {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          // splitRegion doesn't work if startkey/endkey are null<a name="line.201"></a>
-<span class="sourceLineNo">202</span>          ProtobufUtil.split(null, hrs.getRSRpcServices(), hri, rowkey(ROWCOUNT / 2));<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      }<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>      // verify that split completed.<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      int regions;<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      do {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        regions = 0;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        for (HRegionInfo hri :<a name="line.210"></a>
-<span class="sourceLineNo">211</span>            ProtobufUtil.getOnlineRegions(hrs.getRSRpcServices())) {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>          if (hri.getTable().equals(table)) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>            regions++;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>          }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>        }<a name="line.215"></a>
-<span class="sourceLineNo">216</span>        if (regions != 2) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>          LOG.info("Taking some time to complete split...");<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          Thread.sleep(250);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        }<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      } while (regions != 2);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    } catch (IOException e) {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      e.printStackTrace();<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    } catch (InterruptedException e) {<a name="line.223"></a>
+<span class="sourceLineNo">077</span>import com.google.common.collect.Multimap;<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException;<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>/**<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * Test cases for the atomic load error handling of the bulk load functionality.<a name="line.83"></a>
+<span class="sourceLineNo">084</span> */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>@Category({MapReduceTests.class, LargeTests.class})<a name="line.85"></a>
+<span class="sourceLineNo">086</span>public class TestLoadIncrementalHFilesSplitRecovery {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  private static final Log LOG = LogFactory.getLog(TestHRegionServerBulkLoad.class);<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>  static HBaseTestingUtility util;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  //used by secure subclass<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  static boolean useSecure = false;<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>  final static int NUM_CFS = 10;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  final static byte[] QUAL = Bytes.toBytes("qual");<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  final static int ROWCOUNT = 100;<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  private final static byte[][] families = new byte[NUM_CFS][];<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  static {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    for (int i = 0; i &lt; NUM_CFS; i++) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      families[i] = Bytes.toBytes(family(i));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  static byte[] rowkey(int i) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    return Bytes.toBytes(String.format("row_%08d", i));<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>  static String family(int i) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    return String.format("family_%04d", i);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>  static byte[] value(int i) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    return Bytes.toBytes(String.format("%010d", i));<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  public static void buildHFiles(FileSystem fs, Path dir, int value)<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      throws IOException {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    byte[] val = value(value);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    for (int i = 0; i &lt; NUM_CFS; i++) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      Path testIn = new Path(dir, family(i));<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>      TestHRegionServerBulkLoad.createHFile(fs, new Path(testIn, "hfile_" + i),<a name="line.122"></a>
+<span class="sourceLineNo">123</span>          Bytes.toBytes(family(i)), QUAL, val, ROWCOUNT);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>  /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   * Creates a table with given table name and specified number of column<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * families if the table does not already exist.<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   */<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  private void setupTable(final Connection connection, TableName table, int cfs)<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  throws IOException {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    try {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      LOG.info("Creating table " + table);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      HTableDescriptor htd = new HTableDescriptor(table);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      for (int i = 0; i &lt; cfs; i++) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        htd.addFamily(new HColumnDescriptor(family(i)));<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      try (Admin admin = connection.getAdmin()) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        admin.createTable(htd);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    } catch (TableExistsException tee) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      LOG.info("Table " + table + " already exists");<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>  /**<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   * Creates a table with given table name,specified number of column families&lt;br&gt;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * and splitkeys if the table does not already exist.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * @param table<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   * @param cfs<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * @param SPLIT_KEYS<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   */<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  private void setupTableWithSplitkeys(TableName table, int cfs, byte[][] SPLIT_KEYS)<a name="line.154"></a>
+<span class="sourceLineNo">155</span>      throws IOException {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    try {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      LOG.info("Creating table " + table);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      HTableDescriptor htd = new HTableDescriptor(table);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      for (int i = 0; i &lt; cfs; i++) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        htd.addFamily(new HColumnDescriptor(family(i)));<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      }<a name="line.161"></a>
+<span class="sourceLineNo">162</span><a name="line.162"></a>
+<span class="sourceLineNo">163</span>      util.createTable(htd, SPLIT_KEYS);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    } catch (TableExistsException tee) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      LOG.info("Table " + table + " already exists");<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  }<a name="line.167"></a>
+<span class="sourceLineNo">168</span><a name="line.168"></a>
+<span class="sourceLineNo">169</span>  private Path buildBulkFiles(TableName table, int value) throws Exception {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    Path dir = util.getDataTestDirOnTestFS(table.getNameAsString());<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    Path bulk1 = new Path(dir, table.getNameAsString() + value);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    FileSystem fs = util.getTestFileSystem();<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    buildHFiles(fs, bulk1, value);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    return bulk1;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>  /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * Populate table with known values.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   */<a name="line.179"></a>
+<span class="sourceLineNo">180</span>  private void populateTable(final Connection connection, TableName table, int value)<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  throws Exception {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    // create HFiles for different column families<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    LoadIncrementalHFiles lih = new LoadIncrementalHFiles(util.getConfiguration());<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    Path bulk1 = buildBulkFiles(table, value);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    try (Table t = connection.getTable(table);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        RegionLocator locator = connection.getRegionLocator(table);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        Admin admin = connection.getAdmin()) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        lih.doBulkLoad(bulk1, admin, t, locator);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  /**<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   * Split the known table in half.  (this is hard coded for this test suite)<a name="line.193"></a>
+<span class="sourceLineNo">194</span>   */<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  private void forceSplit(TableName table) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    try {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      // need to call regions server to by synchronous but isn't visible.<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      HRegionServer hrs = util.getRSForFirstRegionInTable(table);<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>      for (HRegionInfo hri :<a name="line.200"></a>
+<span class="sourceLineNo">201</span>          ProtobufUtil.getOnlineRegions(hrs.getRSRpcServices())) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        if (hri.getTable().equals(table)) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>          // splitRegion doesn't work if startkey/endkey are null<a name="line.203"></a>
+<span class="sourceLineNo">204</span>          ProtobufUtil.split(null, hrs.getRSRpcServices(), hri, rowkey(ROWCOUNT / 2));<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        }<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>      // verify that split completed.<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      int regions;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      do {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        regions = 0;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        for (HRegionInfo hri :<a name="line.212"></a>
+<span class="sourceLineNo">213</span>            ProtobufUtil.getOnlineRegions(hrs.getRSRpcServices())) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>          if (hri.getTable().equals(table)) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>            regions++;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>          }<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        if (regions != 2) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          LOG.info("Taking some time to complete split...");<a name="line.219"></a>
+<span class="sourceLineNo">220</span>          Thread.sleep(250);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      } while (regions != 2);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    } catch (IOException e) {<a name="line.223"></a>
 <span class="sourceLineNo">224</span>      e.printStackTrace();<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  }<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>  @BeforeClass<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  public static void setupCluster() throws Exception {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    util = new HBaseTestingUtility();<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    util.getConfiguration().set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, "");<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    util.startMiniCluster(1);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>  @AfterClass<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  public static void teardownCluster() throws Exception {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    util.shutdownMiniCluster();<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>  /**<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   * Checks that all columns have the expected value and that there is the<a name="line.241"></a>
-<span class="sourceLineNo">242</span>   * expected number of rows.<a name="line.242"></a>
-<span class="sourceLineNo">243</span>   * @throws IOException<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   */<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  void assertExpectedTable(TableName table, int count, int value) throws IOException {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    HTableDescriptor [] htds = util.getHBaseAdmin().listTables(table.getNameAsString());<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    assertEquals(htds.length, 1);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    Table t = null;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    try {<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      t = util.getConnection().getTable(table);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      Scan s = new Scan();<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      ResultScanner sr = t.getScanner(s);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      int i = 0;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      for (Result r : sr) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        i++;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        for (NavigableMap&lt;byte[], byte[]&gt; nm : r.getNoVersionMap().values()) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>          for (byte[] val : nm.values()) {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>            assertTrue(Bytes.equals(val, value(value)));<a name="line.258"></a>
-<span class="sourceLineNo">259</span>          }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>        }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      }<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      assertEquals(count, i);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    } catch (IOException e) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      fail("Failed due to exception");<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    } finally {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      if (t != null) t.close();<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
-<span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>  /**<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * Test that shows that exception thrown from the RS side will result in an<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * exception on the LIHFile client.<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  @Test(expected=IOException.class, timeout=120000)<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  public void testBulkLoadPhaseFailure() throws Exception {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    TableName table = TableName.valueOf("bulkLoadPhaseFailure");<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    final AtomicInteger attmptedCalls = new AtomicInteger();<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    final AtomicInteger failedCalls = new AtomicInteger();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    util.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 2);<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    try (Connection connection = ConnectionFactory.createConnection(this.util.getConfiguration())) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      setupTable(connection, table, 10);<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      LoadIncrementalHFiles lih = new LoadIncrementalHFiles(util.getConfiguration()) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        @Override<a name="line.283"></a>
-<span class="sourceLineNo">284</span>        protected List&lt;LoadQueueItem&gt; tryAtomicRegionLoad(final Connection conn,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>            TableName tableName, final byte[] first, Collection&lt;LoadQueueItem&gt; lqis,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>            boolean copyFile) throws IOException {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>          int i = attmptedCalls.incrementAndGet();<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          if (i == 1) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            Connection errConn;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>            try {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>              errConn = getMockedConnection(util.getConfiguration());<a name="line.291"></a>
-<span class="sourceLineNo">292</span>            } catch (Exception e) {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>              LOG.fatal("mocking cruft, should never happen", e);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>              throw new RuntimeException("mocking cruft, should never happen");<a name="line.294"></a>
-<span class="sourceLineNo">295</span>            }<a name="line.295"></a>
-<span class="sourceLineNo">296</span>            failedCalls.incrementAndGet();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>            return super.tryAtomicRegionLoad(errConn, tableName, first, lqis, copyFile);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>          }<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>          return super.tryAtomicRegionLoad(conn, tableName, first, lqis, copyFile);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      };<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      try {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>        // create HFiles for different column families<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        Path dir = buildBulkFiles(table, 1);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        try (Table t = connection.getTable(table);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>            RegionLocator locator = connection.getRegionLocator(table);<a name="line.307"></a>
-<span class="sourceLineNo">308</span>            Admin admin = connection.getAdmin()) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>          lih.doBulkLoad(dir, admin, t, locator);<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        }<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      } finally {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        util.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>            HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      }<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      fail("doBulkLoad should have thrown an exception");<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  }<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  @SuppressWarnings("deprecation")<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private ClusterConnection getMockedConnection(final Configuration conf)<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  throws IOException, org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    ClusterConnection c = Mockito.mock(ClusterConnection.class);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    Mockito.when(c.getConfiguration()).thenReturn(conf);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    Mockito.doNothing().when(c).close();<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    // Make it so we return a particular location when asked.<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    final HRegionLocation loc = new HRegionLocation(HRegionInfo.FIRST_META_REGIONINFO,<a name="line.326"></a>
-<span class="sourceLineNo">327</span>        ServerName.valueOf("example.org", 1234, 0));<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    Mockito.when(c.getRegionLocation((TableName) Mockito.any(),<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        (byte[]) Mockito.any(), Mockito.anyBoolean())).<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      thenReturn(loc);<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    Mockito.when(c.locateRegion((TableName) Mockito.any(), (byte[]) Mockito.any())).<a name="line.331"></a>
+<span class="sourceLineNo">225</span>    } catch (InterruptedException e) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      e.printStackTrace();<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  }<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>  @BeforeClass<a name="line.230"></a>
+<span class="sourceLineNo">231</span>  public static void setupCluster() throws Exception {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    util = new HBaseTestingUtility();<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    util.getConfiguration().set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, "");<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    util.startMiniCluster(1);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>  @AfterClass<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  public static void teardownCluster() throws Exception {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    util.shutdownMiniCluster();<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>  /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   * Checks that all columns have the expected value and that there is the<a name="line.243"></a>
+<span class="sourceLineNo">244</span>   * expected number of rows.<a name="line.244"></a>
+<span class="sourceLineNo">245</span>   * @throws IOException<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  void assertExpectedTable(TableName table, int count, int value) throws IOException {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    HTableDescriptor [] htds = util.getHBaseAdmin().listTables(table.getNameAsString());<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    assertEquals(htds.length, 1);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    Table t = null;<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    try {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      t = util.getConnection().getTable(table);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      Scan s = new Scan();<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      ResultScanner sr = t.getScanner(s);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      int i = 0;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      for (Result r : sr) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        i++;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        for (NavigableMap&lt;byte[], byte[]&gt; nm : r.getNoVersionMap().values()) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>          for (byte[] val : nm.values()) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>            assertTrue(Bytes.equals(val, value(value)));<a name="line.260"></a>
+<span class="sourceLineNo">261</span>          }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      assertEquals(count, i);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    } catch (IOException e) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      fail("Failed due to exception");<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    } finally {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      if (t != null) t.close();<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  }<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>  /**<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   * Test that shows that exception thrown from the RS side will result in an<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   * exception on the LIHFile client.<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   */<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  @Test(expected=IOException.class, timeout=120000)<a name="line.276"></a>
+<span class="sourceLineNo">277</span>  public void testBulkLoadPhaseFailure() throws Exception {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    TableName table = TableName.valueOf("bulkLoadPhaseFailure");<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    final AtomicInteger attmptedCalls = new AtomicInteger();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    final AtomicInteger failedCalls = new AtomicInteger();<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    util.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 2);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    try (Connection connection = ConnectionFactory.createConnection(this.util.getConfiguration())) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      setupTable(connection, table, 10);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      LoadIncrementalHFiles lih = new LoadIncrementalHFiles(util.getConfiguration()) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        @Override<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        protected List&lt;LoadQueueItem&gt; tryAtomicRegionLoad(final Connection conn,<a name="line.286"></a>
+<span class="sourceLineNo">287</span>            TableName tableName, final byte[] first, Collection&lt;LoadQueueItem&gt; lqis,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>            boolean copyFile) throws IOException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>          int i = attmptedCalls.incrementAndGet();<a name="line.289"></a>
+<span class="sourceLineNo">290</span>          if (i == 1) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>            Connection errConn;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>            try {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>              errConn = getMockedConnection(util.getConfiguration());<a name="line.293"></a>
+<span class="sourceLineNo">294</span>            } catch (Exception e) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>              LOG.fatal("mocking cruft, should never happen", e);<a name="line.295"></a>
+<span class="sourceLineNo">296</span>              throw new RuntimeException("mocking cruft, should never happen");<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            }<a name="line.297"></a>
+<span class="sourceLineNo">298</span>            failedCalls.incrementAndGet();<a name="line.298"></a>
+<span class="sourceLineNo">299</span>            return super.tryAtomicRegionLoad(errConn, tableName, first, lqis, copyFile);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>          }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>          return super.tryAtomicRegionLoad(conn, tableName, first, lqis, copyFile);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        }<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      };<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      try {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        // create HFiles for different column families<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        Path dir = buildBulkFiles(table, 1);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        try (Table t = connection.getTable(table);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>            RegionLocator locator = connection.getRegionLocator(table);<a name="line.309"></a>
+<span class="sourceLineNo">310</span>            Admin admin = connection.getAdmin()) {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          lih.doBulkLoad(dir, admin, t, locator);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        }<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      } finally {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        util.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.314"></a>
+<span class="sourceLineNo">315</span>            HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      fail("doBulkLoad should have thrown an exception");<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    }<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  @SuppressWarnings("deprecation")<a name="line.321"></a>
+<span class="sourceLineNo">322</span>  private ClusterConnection getMockedConnection(final Configuration conf)<a name="line.322"></a>
+<span class="sourceLineNo">323</span>  throws IOException, org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    ClusterConnection c = Mockito.mock(ClusterConnection.class);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    Mockito.when(c.getConfiguration()).thenReturn(conf);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    Mockito.doNothing().when(c).close();<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    // Make it so we return a particular location when asked.<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    final HRegionLocation loc = new HRegionLocation(HRegionInfo.FIRST_META_REGIONINFO,<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        ServerName.valueOf("example.org", 1234, 0));<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    Mockito.when(c.getRegionLocation((TableName) Mockito.any(),<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        (byte[]) Mockito.any(), Mockito.anyBoolean())).<a name="line.331"></a>
 <span class="sourceLineNo">332</span>      thenReturn(loc);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    ClientProtos.ClientService.BlockingInterface hri =<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      Mockito.mock(ClientProtos.ClientService.BlockingInterface.class);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    Mockito.when(hri.bulkLoadHFile((RpcController)Mockito.any(), (BulkLoadHFileRequest)Mockito.any())).<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      thenThrow(new ServiceException(new IOException("injecting bulk load error")));<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    Mockito.when(c.getClient(Mockito.any(ServerName.class))).<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      thenReturn(hri);<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return c;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  /**<a name="line.342"></a>
-<span class="sourceLineNo">343</span>   * This test exercises the path where there is a split after initial<a name="line.343"></a>
-<span class="sourceLineNo">344</span>   * validation but before the atomic bulk load call. We cannot use presplitting<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   * to test this path, so we actually inject a split just before the atomic<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   * region load.<a name="line.346"></a>
-<span class="sourceLineNo">347</span>   */<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  @Test (timeout=120000)<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  public void testSplitWhileBulkLoadPhase() throws Exception {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    final TableName table = TableName.valueOf("splitWhileBulkloadPhase");<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    try (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      setupTable(connection, table, 10);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      populateTable(connection, table,1);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      assertExpectedTable(table, ROWCOUNT, 1);<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>      // Now let's cause trouble.  This will occur after checks and cause bulk<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      // files to fail when attempt to atomically import.  This is recoverable.<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      final AtomicInteger attemptedCalls = new AtomicInteger();<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      LoadIncrementalHFiles lih2 = new LoadIncrementalHFiles(util.getConfiguration()) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        @Override<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        protected void bulkLoadPhase(final Table htable, final Connection conn,<a name="line.361"></a>
-<span class="sourceLineNo">362</span>            ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.362"></a>
-<span class="sourceLineNo">363</span>            final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, boolean copyFile)<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                throws IOException {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>          int i = attemptedCalls.incrementAndGet();<a name="line.365"></a>
-<span class="sourceLineNo">366</span>          if (i == 1) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>            // On first attempt force a split.<a name="line.367"></a>
-<span class="sourceLineNo">368</span>            forceSplit(table);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>          }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>          super.bulkLoadPhase(htable, conn, pool, queue, regionGroups, copyFile);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        }<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      };<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>      // create HFiles for different column families<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      try (Table t = connection.getTable(table);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          RegionLocator locator = connection.getRegionLocator(table);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>          Admin admin = connection.getAdmin()) {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        Path bulk = buildBulkFiles(table, 2);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        lih2.doBulkLoad(bulk, admin, t, locator);<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      }<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>      // check that data was loaded<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      // The three expected attempts are 1) failure because need to split, 2)<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      // load of split top 3) load of split bottom<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      assertEquals(attemptedCalls.get(), 3);<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      assertExpectedTable(table, ROWCOUNT, 2);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  }<a name="line.388"></a>
-<span class="sourceLineNo">389</span><a name="line.389"></a>
-<span class="sourceLineNo">390</span>  /**<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * This test splits a table and attempts to bulk load.  The bulk import files<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * should be split before atomically importing.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   */<a name="line.393"></a>
-<span class="sourceLineNo">394</span>  @Test (timeout=120000)<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  public void testGroupOrSplitPresplit() throws Exception {<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    final TableName table = TableName.valueOf("groupOrSplitPresplit");<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    try (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      setupTable(connection, table, 10);<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      populateTable(connection, table, 1);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      assertExpectedTable(connection, table, ROWCOUNT, 1);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>      forceSplit(table);<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>      final AtomicInteger countedLqis= new AtomicInteger();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      LoadIncrementalHFiles lih = new LoadIncrementalHFiles(<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          util.getConfiguration()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>        @Override<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        protected Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; groupOrSplit(<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups,<a name="line.408"></a>
-<span class="sourceLineNo">409</span>            final LoadQueueItem item, final Table htable,<a name="line.409"></a>
-<span class="sourceLineNo">410</span>            final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; lqis = super.groupOrSplit(regionGroups, item, htable,<a name="line.411"></a>
-<span class="sourceLineNo">412</span>              startEndKeys);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>          if (lqis != null &amp;&amp; lqis.getFirst() != null) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>            countedLqis.addAndGet(lqis.getFirst().size());<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          }<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          return lqis;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        }<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      };<a name="line.418"></a>
-<span class="sourceLineNo">419</span><a name="line.419"></a>
-<span class="sourceLineNo">420</span>      // create HFiles for different column families<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      Path bulk = buildBulkFiles(table, 2);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      try (Table t = connection.getTable(table);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          RegionLocator locator = connection.getRegionLocator(table);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>          Admin admin = connection.getAdmin()) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        lih.doBulkLoad(bulk, admin, t, locator);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      assertExpectedTable(connection, table, ROWCOUNT, 2);<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      assertEquals(20, countedLqis.get());<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    }<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  }<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>  /**<a name="line.432"></a>
-<span class="sourceLineNo">433</span>   * This test creates a table with many small regions.  The bulk load files<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   * would be splitted multiple times before all of them can be loaded successfully.<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   */<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  @Test (timeout=120000)<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  public void testSplitTmpFileCleanUp() throws Exception {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    final TableName table = TableName.valueOf("splitTmpFileCleanUp");<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    byte[][] SPLIT_KEYS = new byte[][] { Bytes.toBytes("row_00000010"),<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        Bytes.toBytes("row_00000020"), Bytes.toBytes("row_00000030"),<a name="line.440"></a>
-<span class="sourceLineNo">441</span>        Bytes.toBytes("row_00000040"), Bytes.toBytes("row_00000050")};<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    try (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      setupTableWithSplitkeys(table, 10, SPLIT_KEYS);<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>      LoadIncrementalHFiles lih = new LoadIncrementalHFiles(util.getConfiguration());<a name="line.445"></a>
-<span class="sourceLineNo">446</span><a name="line.446"></a>
-<span class="sourceLineNo">447</span>      // create HFiles<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      Path bulk = buildBulkFiles(table, 2);<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      try (Table t = connection.getTable(table);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>          RegionLocator locator = connection.getRegionLocator(table);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          Admin admin = connection.getAdmin()) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        lih.doBulkLoad(bulk, admin, t, locator);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      }<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      // family path<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      Path tmpPath = new Path(bulk, family(0));<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      // TMP_DIR under family path<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      tmpPath = new Path(tmpPath, LoadIncrementalHFiles.TMP_DIR);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      FileSystem fs = bulk.getFileSystem(util.getConfiguration());<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      // HFiles have been splitted, there is TMP_DIR<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      assertTrue(fs.exists(tmpPath));<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      // TMP_DIR should have been cleaned-up<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      assertNull(LoadIncrementalHFiles.TMP_DIR + " should be empty.",<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        FSUtils.listStatus(fs, tmpPath));<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      assertExpectedTable(connection, table, ROWCOUNT, 2);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
-<span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span>  /**<a name="line.468"></a>
-<span class="sourceLineNo">469</span>   * This simulates an remote exception which should cause LIHF to exit with an<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   * exception.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>   */<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  @Test(expected = IOException.class, timeout=120000)<a name="line.472"></a>
-<span class="sourceLineNo">473</span>  public void testGroupOrSplitFailure() throws Exception {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    TableName table = TableName.valueOf("groupOrSplitFailure");<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    try (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      setupTable(connection, table, 10);<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>      LoadIncrementalHFiles lih = new LoadIncrementalHFiles(<a name="line.478"></a>
-<span class="sourceLineNo">479</span>          util.getConfiguration()) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        int i = 0;<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>        @Override<a name="line.482"></a>
-<span class="sourceLineNo">483</span>        protected Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; groupOrSplit(<a name="line.483"></a>
-<span class="sourceLineNo">484</span>            Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups,<a name="line.484"></a>
-<span class="sourceLineNo">485</span>            final LoadQueueItem item, final Table table,<a name="line.485"></a>
-<span class="sourceLineNo">486</span>            final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>          i++;<a name="line.487"></a>
-<span class="sourceLineNo">488</span><a name="line.488"></a>
-<span class="sourceLineNo">489</span>          if (i == 5) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>            throw new IOException("failure");<a name="line.490"></a>
-<span class="sourceLineNo">491</span>          }<a name="line.491"></a>
-<span class="sourceLineNo">492</span>          return super.groupOrSplit(regionGroups, item, table, startEndKeys);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>        }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      };<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>      // create HFiles for different column families<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      Path dir = buildBulkFiles(table,1);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      try (Table t = connection.getTable(table);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>          RegionLocator locator = connection.getRegionLocator(table);<a name="line.499"></a>
-<span class="sourceLineNo">500</span>          Admin admin = connection.getAdmin()) {<a name="line.500"></a>
-<span class="sourceLineNo">501</span>        lih.doBulkLoad(dir, admin, t, locator);<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      }<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>    fail("doBulkLoad should have thrown an exception");<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  }<a name="line.506"></a>
+<span class="sourceLineNo">333</span>    Mockito.when(c.locateRegion((TableName) Mockito.any(), (byte[]) Mockito.any())).<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      thenReturn(loc);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    ClientProtos.ClientService.BlockingInterface hri =<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      Mockito.mock(ClientProtos.ClientService.BlockingInterface.class);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    Mockito.when(hri.bulkLoadHFile((RpcController)Mockito.any(), (BulkLoadHFileRequest)Mockito.any())).<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      thenThrow(new ServiceException(new IOException("injecting bulk load error")));<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    Mockito.when(c.getClient(Mockito.any(ServerName.class))).<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      thenReturn(hri);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    return c;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>  /**<a name="line.344"></a>
+<span class="sourceLineNo">345</span>   * This test exercises the path where there is a split after initial<a name="line.345"></a>
+<span class="sourceLineNo">346</span>   * validation but before the atomic bulk load call. We cannot use presplitting<a name="line.346"></a>
+<span class="sourceLineNo">347</span>   * to test this path, so we actually inject a split just before the atomic<a name="line.347"></a>
+<span class="sourceLineNo">348</span>   * region load.<a name="line.348"></a>
+<span class="sourceLineNo">349</span>   */<a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Test (timeout=120000)<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public void testSplitWhileBulkLoadPhase() throws Exception {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    final TableName table = TableName.valueOf("splitWhileBulkloadPhase");<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    try (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      setupTable(connection, table, 10);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      populateTable(connection, table,1);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      assertExpectedTable(table, ROWCOUNT, 1);<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span>      // Now let's cause trouble.  This will occur after checks and cause bulk<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      // files to fail when attempt to atomically import.  This is recoverable.<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      final AtomicInteger attemptedCalls = new AtomicInteger();<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      LoadIncrementalHFiles lih2 = new LoadIncrementalHFiles(util.getConfiguration()) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        @Override<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        protected void bulkLoadPhase(final Table htable, final Connection conn,<a name="line.363"></a>
+<span class="sourceLineNo">364</span>            ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.364"></a>
+<span class="sourceLineNo">365</span>            final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, boolean copyFile,<a name="line.365"></a>
+<span class="sourceLineNo">366</span>            Map&lt;LoadQueueItem, ByteBuffer&gt; item2RegionMap)<a name="line.366"></a>
+<span class="sourceLineNo">367</span>                throws IOException {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>          int i = attemptedCalls.incrementAndGet();<a name="line.368"></a>
+<span class="sourceLineNo">369</span>          if (i == 1) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>            // On first attempt force a split.<a name="line.370"></a>
+<span class="sourceLineNo">371</span>            forceSplit(table);<a name="line.371"></a>
+<span class="sourceLineNo">372</span>          }<a name="line.372"></a>
+<span class="sourceLineNo">373</span>          super.bulkLoadPhase(htable, conn, pool, queue, regionGroups, copyFile, item2RegionMap);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      };<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>      // create HFiles for different column families<a name="line.377"></a>
+<span class="sourceLineNo">378</span>      try (Table t = connection.getTable(table);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>          RegionLocator locator = connection.getRegionLocator(table);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>          Admin admin = connection.getAdmin()) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        Path bulk = buildBulkFiles(table, 2);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        lih2.doBulkLoad(bulk, admin, t, locator);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>      // check that data was loaded<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      // The three expected attempts are 1) failure because need to split, 2)<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      // load of split top 3) load of split bottom<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      assertEquals(attemptedCalls.get(), 3);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      assertExpectedTable(table, ROWCOUNT, 2);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    }<a name="line.390"></a>
+<span class="sourceLineNo">391</span>  }<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>  /**<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   * This test splits a table and attempts to bulk load.  The bulk import files<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * should be split before atomically importing.<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   */<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  @Test (timeout=120000)<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  public void testGroupOrSplitPresplit() throws Exception {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    final TableName table = TableName.valueOf("groupOrSplitPresplit");<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    try (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      setupTable(connection, table, 10);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>      populateTable(connection, table, 1);<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      assertExpectedTable(connection, table, ROWCOUNT, 1);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      forceSplit(table);<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>      final AtomicInteger countedLqis= new AtomicInteger();<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      LoadIncrementalHFiles lih = new LoadIncrementalHFiles(<a name="line.407"></a>
+<span class="sourceLineNo">408</span>          util.getConfiguration()) {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        @Override<a name="line.409"></a>
+<span class="sourceLineNo">410</span>        protected Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; groupOrSplit(<a name="line.410"></a>
+<span class="sourceLineNo">411</span>            Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups,<a name="line.411"></a>
+<span class="sourceLineNo">412</span>            final LoadQueueItem item, final Table htable,<a name="line.412"></a>
+<span class="sourceLineNo">413</span>            final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>          Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; lqis = super.groupOrSplit(regionGroups, item, htable,<a name="line.414"></a>
+<span class="sourceLineNo">415</span>              startEndKeys);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          if (lqis != null &amp;&amp; lqis.getFirst() != null) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>            countedLqis.addAndGet(lqis.getFirst().size());<a name="line.417"></a>
+<span class="sourceLineNo">418</span>          }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>          return lqis;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>        }<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      };<a name="line.421"></a>
+<span class="sourceLineNo">422</span><a name="line.422"></a>
+<span class="sourceLineNo">423</span>      // create HFiles for different column families<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      Path bulk = buildBulkFiles(table, 2);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      try (Table t = connection.getTable(table);<a name="line.425"></a>
+<span class="sourceLineNo">426</span>          RegionLocator locator = connection.getRegionLocator(table);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>          Admin admin = connection.getAdmin()) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>        lih.doBulkLoad(bulk, admin, t, locator);<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      assertExpectedTable(connection, table, ROWCOUNT, 2);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      assertEquals(20, countedLqis.get());<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>  }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span>  /**<a name="line.435"></a>
+<span class="sourceLineNo">436</span>   * This test creates a table with many small regions.  The bulk load files<a name="line.436"></a>
+<span class="sourceLineNo">437</span>   * would be splitted multiple times before all of them can be loaded successfully.<a name="line.437"></a>
+<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
+<span class="sourceLineNo">439</span>  @Test (timeout=120000)<a name="line.439"></a>
+<span class="sourceLineNo">440</span>  public void testSplitTmpFileCleanUp() throws Exception {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    final TableName ta

<TRUNCATED>

[26/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html b/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html
index 8870c77..19815f3 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.1040">RegionSplitter.UniformSplit</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.1033">RegionSplitter.UniformSplit</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a></pre>
 <div class="block">A SplitAlgorithm that divides the space of possible keys evenly. Useful
@@ -281,7 +281,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>xFF</h4>
-<pre>static final&nbsp;byte <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1041">xFF</a></pre>
+<pre>static final&nbsp;byte <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1034">xFF</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.util.RegionSplitter.UniformSplit.xFF">Constant Field Values</a></dd>
@@ -294,7 +294,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>firstRowBytes</h4>
-<pre>byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1042">firstRowBytes</a></pre>
+<pre>byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1035">firstRowBytes</a></pre>
 </li>
 </ul>
 <a name="lastRowBytes">
@@ -303,7 +303,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockListLast">
 <li class="blockList">
 <h4>lastRowBytes</h4>
-<pre>byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1043">lastRowBytes</a></pre>
+<pre>byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1036">lastRowBytes</a></pre>
 </li>
 </ul>
 </li>
@@ -320,7 +320,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockListLast">
 <li class="blockList">
 <h4>UniformSplit</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1040">UniformSplit</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1033">UniformSplit</a>()</pre>
 </li>
 </ul>
 </li>
@@ -337,7 +337,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>split</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1045">split</a>(byte[]&nbsp;start,
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1038">split</a>(byte[]&nbsp;start,
                     byte[]&nbsp;end)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#split-byte:A-byte:A-">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">Split a pre-existing region into 2 regions.</div>
@@ -358,7 +358,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>split</h4>
-<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1050">split</a>(int&nbsp;numRegions)</pre>
+<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1043">split</a>(int&nbsp;numRegions)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#split-int-">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">Split an entire table.</div>
 <dl>
@@ -378,7 +378,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>firstRow</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1068">firstRow</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1061">firstRow</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#firstRow--">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">In HBase, the first row is represented by an empty byte array. This might
  cause problems with your split algorithm or row printing. All your APIs
@@ -397,7 +397,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>lastRow</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1073">lastRow</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1066">lastRow</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#lastRow--">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">In HBase, the last row is represented by an empty byte array. This might
  cause problems with your split algorithm or row printing. All your APIs
@@ -416,7 +416,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>setFirstRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1078">setFirstRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userInput)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1071">setFirstRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userInput)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#setFirstRow-java.lang.String-">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">In HBase, the last row is represented by an empty byte array. Set this
  value to help the split code understand how to evenly divide the first
@@ -435,7 +435,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>setLastRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1083">setLastRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userInput)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1076">setLastRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userInput)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#setLastRow-java.lang.String-">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">In HBase, the last row is represented by an empty byte array. Set this
  value to help the split code understand how to evenly divide the last
@@ -455,7 +455,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>setFirstRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1089">setFirstRow</a>(byte[]&nbsp;userInput)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1082">setFirstRow</a>(byte[]&nbsp;userInput)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#setFirstRow-byte:A-">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">Set the first row</div>
 <dl>
@@ -472,7 +472,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>setLastRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1094">setLastRow</a>(byte[]&nbsp;userInput)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1087">setLastRow</a>(byte[]&nbsp;userInput)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#setLastRow-byte:A-">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">Set the last row</div>
 <dl>
@@ -489,7 +489,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>strToRow</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1099">strToRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;input)</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1092">strToRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;input)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#strToRow-java.lang.String-">strToRow</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a></code></dd>
@@ -506,7 +506,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>rowToStr</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1104">rowToStr</a>(byte[]&nbsp;row)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1097">rowToStr</a>(byte[]&nbsp;row)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#rowToStr-byte:A-">rowToStr</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a></code></dd>
@@ -523,7 +523,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>separator</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1109">separator</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1102">separator</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#separator--">separator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a></code></dd>
@@ -538,7 +538,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1114">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html#line.1107">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.html b/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.html
index 0c05b41..3b8feff 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.143">RegionSplitter</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.142">RegionSplitter</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">The <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.html" title="class in org.apache.hadoop.hbase.util"><code>RegionSplitter</code></a> class provides several utilities to help in the
  administration lifecycle for developers who choose to manually split regions
@@ -351,7 +351,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.144">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.143">LOG</a></pre>
 </li>
 </ul>
 </li>
@@ -368,7 +368,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionSplitter</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.143">RegionSplitter</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.142">RegionSplitter</a>()</pre>
 </li>
 </ul>
 </li>
@@ -385,7 +385,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.288">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.287">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>,
                         org.apache.commons.cli.ParseException</pre>
@@ -429,7 +429,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createPresplitTable</h4>
-<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.371">createPresplitTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.370">createPresplitTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                 <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a>&nbsp;splitAlgo,
                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;columnFamilies,
                                 org.apache.hadoop.conf.Configuration&nbsp;conf)
@@ -448,7 +448,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerCount</h4>
-<pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.417">getRegionServerCount</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;connection)
+<pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.416">getRegionServerCount</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;connection)
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Alternative getCurrentNrHRS which is no longer available.</div>
 <dl>
@@ -467,7 +467,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>readFile</h4>
-<pre>private static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.425">readFile</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>private static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.424">readFile</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                org.apache.hadoop.fs.Path&nbsp;path)
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -482,7 +482,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>rollingSplit</h4>
-<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.436">rollingSplit</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.435">rollingSplit</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a>&nbsp;splitAlgo,
                          org.apache.hadoop.conf.Configuration&nbsp;conf)
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
@@ -500,7 +500,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>newSplitAlgoInstance</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.646">newSplitAlgoInstance</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.639">newSplitAlgoInstance</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;splitClassName)
                                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -516,7 +516,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>splitScan</h4>
-<pre>static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],byte[]&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.677">splitScan</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],byte[]&gt;&gt;&nbsp;regionList,
+<pre>static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],byte[]&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.670">splitScan</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],byte[]&gt;&gt;&nbsp;regionList,
                                                  <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;connection,
                                                  <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                  <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a>&nbsp;splitAlgo)
@@ -535,7 +535,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDirAndSplitFile</h4>
-<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.772">getTableDirAndSplitFile</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.765">getTableDirAndSplitFile</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                                                                  <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                                                                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -555,7 +555,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getSplits</h4>
-<pre>static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],byte[]&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.781">getSplits</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;connection,
+<pre>static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util">LinkedList</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],byte[]&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.774">getSplits</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;connection,
                                                  <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                  <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a>&nbsp;splitAlgo)
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html b/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html
index c03e627..5fcd435 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html
@@ -803,7 +803,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#groupOrSplitPhase-org.apache.hadoop.hbase.client.Table-java.util.concurrent.ExecutorService-java.util.Deque-org.apache.hadoop.hbase.util.Pair-">groupOrSplitPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
@@ -835,7 +835,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#groupOrSplitPhase-org.apache.hadoop.hbase.client.Table-java.util.concurrent.ExecutorService-java.util.Deque-org.apache.hadoop.hbase.util.Pair-">groupOrSplitPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
@@ -1343,8 +1343,8 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">ReplicationQueuesZKImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#moveQueueUsingMulti-java.lang.String-java.lang.String-">moveQueueUsingMulti</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;znode,
                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
-<div class="block">It "atomically" copies all the wals queues from another region server and returns them all
- sorted per peer cluster (appended with the dead server's znode).</div>
+<div class="block">It "atomically" copies one peer's wals queue from another dead region server and returns them
+ all sorted.</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index 581d243..a7a12f9 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <span class="sourceLineNo">010</span>  public static final String version = "2.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "8a6d6aa23944bbfd5047cf0c09fb4d8045735dab";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "9250bf809155ebe93fd6ae8a0485b22c744fdf70";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Fri Nov 11 14:29:04 UTC 2016";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Mon Nov 14 14:27:04 UTC 2016";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://asf912.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "681093e9797dd6baf3dff8627bd19b06";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "26adfd25faf563ea02f464d54c1596b1";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 


[20/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
index 36f2731..23fce63 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
@@ -34,9 +34,9 @@
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
 <span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "filter", type = "String")})<a name="line.31"></a>
+<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.29"></a>
+<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "format", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
 <span class="sourceLineNo">034</span>{<a name="line.34"></a>
@@ -94,57 +94,57 @@
 <span class="sourceLineNo">086</span>      return m_bcv__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
 <span class="sourceLineNo">088</span>    private boolean m_bcv__IsNotDefault;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    // 23, 1<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    public void setBcn(String bcn)<a name="line.90"></a>
+<span class="sourceLineNo">089</span>    // 21, 1<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void setFilter(String filter)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // 23, 1<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      m_bcn = bcn;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      m_bcn__IsNotDefault = true;<a name="line.94"></a>
+<span class="sourceLineNo">092</span>      // 21, 1<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      m_filter = filter;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      m_filter__IsNotDefault = true;<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    public String getBcn()<a name="line.96"></a>
+<span class="sourceLineNo">096</span>    public String getFilter()<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return m_bcn;<a name="line.98"></a>
+<span class="sourceLineNo">098</span>      return m_filter;<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    private String m_bcn;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean getBcn__IsNotDefault()<a name="line.101"></a>
+<span class="sourceLineNo">100</span>    private String m_filter;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public boolean getFilter__IsNotDefault()<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return m_bcn__IsNotDefault;<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      return m_filter__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    private boolean m_bcn__IsNotDefault;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // 22, 1<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public void setFormat(String format)<a name="line.107"></a>
+<span class="sourceLineNo">105</span>    private boolean m_filter__IsNotDefault;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // 23, 1<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    public void setBcn(String bcn)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // 22, 1<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      m_format = format;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      m_format__IsNotDefault = true;<a name="line.111"></a>
+<span class="sourceLineNo">109</span>      // 23, 1<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      m_bcn = bcn;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      m_bcn__IsNotDefault = true;<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    public String getFormat()<a name="line.113"></a>
+<span class="sourceLineNo">113</span>    public String getBcn()<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return m_format;<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      return m_bcn;<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    private String m_format;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public boolean getFormat__IsNotDefault()<a name="line.118"></a>
+<span class="sourceLineNo">117</span>    private String m_bcn;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    public boolean getBcn__IsNotDefault()<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return m_format__IsNotDefault;<a name="line.120"></a>
+<span class="sourceLineNo">120</span>      return m_bcn__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    private boolean m_format__IsNotDefault;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // 21, 1<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setFilter(String filter)<a name="line.124"></a>
+<span class="sourceLineNo">122</span>    private boolean m_bcn__IsNotDefault;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // 22, 1<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void setFormat(String format)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // 21, 1<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      m_filter = filter;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      m_filter__IsNotDefault = true;<a name="line.128"></a>
+<span class="sourceLineNo">126</span>      // 22, 1<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      m_format = format;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      m_format__IsNotDefault = true;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    public String getFilter()<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    public String getFormat()<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return m_filter;<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      return m_format;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private String m_filter;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public boolean getFilter__IsNotDefault()<a name="line.135"></a>
+<span class="sourceLineNo">134</span>    private String m_format;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    public boolean getFormat__IsNotDefault()<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return m_filter__IsNotDefault;<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      return m_format__IsNotDefault;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    private boolean m_filter__IsNotDefault;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>    private boolean m_format__IsNotDefault;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>  }<a name="line.140"></a>
 <span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
 <span class="sourceLineNo">142</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.142"></a>
@@ -163,24 +163,24 @@
 <span class="sourceLineNo">155</span>    return this;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>  }<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  <a name="line.157"></a>
-<span class="sourceLineNo">158</span>  protected String bcn;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.159"></a>
+<span class="sourceLineNo">158</span>  protected String filter;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.159"></a>
 <span class="sourceLineNo">160</span>  {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    (getImplData()).setBcn(p_bcn);<a name="line.161"></a>
+<span class="sourceLineNo">161</span>    (getImplData()).setFilter(p_filter);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    return this;<a name="line.162"></a>
 <span class="sourceLineNo">163</span>  }<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  <a name="line.164"></a>
-<span class="sourceLineNo">165</span>  protected String format;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  protected String bcn;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    (getImplData()).setFormat(p_format);<a name="line.168"></a>
+<span class="sourceLineNo">168</span>    (getImplData()).setBcn(p_bcn);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>    return this;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  }<a name="line.170"></a>
 <span class="sourceLineNo">171</span>  <a name="line.171"></a>
-<span class="sourceLineNo">172</span>  protected String filter;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.173"></a>
+<span class="sourceLineNo">172</span>  protected String format;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    (getImplData()).setFilter(p_filter);<a name="line.175"></a>
+<span class="sourceLineNo">175</span>    (getImplData()).setFormat(p_format);<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span>  <a name="line.178"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
index 36f2731..23fce63 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
@@ -34,9 +34,9 @@
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
 <span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "filter", type = "String")})<a name="line.31"></a>
+<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.29"></a>
+<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "format", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
 <span class="sourceLineNo">034</span>{<a name="line.34"></a>
@@ -94,57 +94,57 @@
 <span class="sourceLineNo">086</span>      return m_bcv__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
 <span class="sourceLineNo">088</span>    private boolean m_bcv__IsNotDefault;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    // 23, 1<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    public void setBcn(String bcn)<a name="line.90"></a>
+<span class="sourceLineNo">089</span>    // 21, 1<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void setFilter(String filter)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // 23, 1<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      m_bcn = bcn;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      m_bcn__IsNotDefault = true;<a name="line.94"></a>
+<span class="sourceLineNo">092</span>      // 21, 1<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      m_filter = filter;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      m_filter__IsNotDefault = true;<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    public String getBcn()<a name="line.96"></a>
+<span class="sourceLineNo">096</span>    public String getFilter()<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return m_bcn;<a name="line.98"></a>
+<span class="sourceLineNo">098</span>      return m_filter;<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    private String m_bcn;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean getBcn__IsNotDefault()<a name="line.101"></a>
+<span class="sourceLineNo">100</span>    private String m_filter;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public boolean getFilter__IsNotDefault()<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return m_bcn__IsNotDefault;<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      return m_filter__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    private boolean m_bcn__IsNotDefault;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // 22, 1<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public void setFormat(String format)<a name="line.107"></a>
+<span class="sourceLineNo">105</span>    private boolean m_filter__IsNotDefault;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // 23, 1<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    public void setBcn(String bcn)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // 22, 1<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      m_format = format;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      m_format__IsNotDefault = true;<a name="line.111"></a>
+<span class="sourceLineNo">109</span>      // 23, 1<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      m_bcn = bcn;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      m_bcn__IsNotDefault = true;<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    public String getFormat()<a name="line.113"></a>
+<span class="sourceLineNo">113</span>    public String getBcn()<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return m_format;<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      return m_bcn;<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    private String m_format;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public boolean getFormat__IsNotDefault()<a name="line.118"></a>
+<span class="sourceLineNo">117</span>    private String m_bcn;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    public boolean getBcn__IsNotDefault()<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return m_format__IsNotDefault;<a name="line.120"></a>
+<span class="sourceLineNo">120</span>      return m_bcn__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    private boolean m_format__IsNotDefault;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // 21, 1<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setFilter(String filter)<a name="line.124"></a>
+<span class="sourceLineNo">122</span>    private boolean m_bcn__IsNotDefault;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // 22, 1<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void setFormat(String format)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // 21, 1<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      m_filter = filter;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      m_filter__IsNotDefault = true;<a name="line.128"></a>
+<span class="sourceLineNo">126</span>      // 22, 1<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      m_format = format;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      m_format__IsNotDefault = true;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    public String getFilter()<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    public String getFormat()<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return m_filter;<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      return m_format;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private String m_filter;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public boolean getFilter__IsNotDefault()<a name="line.135"></a>
+<span class="sourceLineNo">134</span>    private String m_format;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    public boolean getFormat__IsNotDefault()<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return m_filter__IsNotDefault;<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      return m_format__IsNotDefault;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    private boolean m_filter__IsNotDefault;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>    private boolean m_format__IsNotDefault;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>  }<a name="line.140"></a>
 <span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
 <span class="sourceLineNo">142</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.142"></a>
@@ -163,24 +163,24 @@
 <span class="sourceLineNo">155</span>    return this;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>  }<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  <a name="line.157"></a>
-<span class="sourceLineNo">158</span>  protected String bcn;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.159"></a>
+<span class="sourceLineNo">158</span>  protected String filter;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.159"></a>
 <span class="sourceLineNo">160</span>  {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    (getImplData()).setBcn(p_bcn);<a name="line.161"></a>
+<span class="sourceLineNo">161</span>    (getImplData()).setFilter(p_filter);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    return this;<a name="line.162"></a>
 <span class="sourceLineNo">163</span>  }<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  <a name="line.164"></a>
-<span class="sourceLineNo">165</span>  protected String format;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  protected String bcn;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    (getImplData()).setFormat(p_format);<a name="line.168"></a>
+<span class="sourceLineNo">168</span>    (getImplData()).setBcn(p_bcn);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>    return this;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  }<a name="line.170"></a>
 <span class="sourceLineNo">171</span>  <a name="line.171"></a>
-<span class="sourceLineNo">172</span>  protected String filter;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.173"></a>
+<span class="sourceLineNo">172</span>  protected String format;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    (getImplData()).setFilter(p_filter);<a name="line.175"></a>
+<span class="sourceLineNo">175</span>    (getImplData()).setFormat(p_format);<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span>  <a name="line.178"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
index 36f2731..23fce63 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
@@ -34,9 +34,9 @@
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
 <span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.28"></a>
-<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "filter", type = "String")})<a name="line.31"></a>
+<span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.29"></a>
+<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "format", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
 <span class="sourceLineNo">034</span>{<a name="line.34"></a>
@@ -94,57 +94,57 @@
 <span class="sourceLineNo">086</span>      return m_bcv__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
 <span class="sourceLineNo">088</span>    private boolean m_bcv__IsNotDefault;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    // 23, 1<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    public void setBcn(String bcn)<a name="line.90"></a>
+<span class="sourceLineNo">089</span>    // 21, 1<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void setFilter(String filter)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      // 23, 1<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      m_bcn = bcn;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      m_bcn__IsNotDefault = true;<a name="line.94"></a>
+<span class="sourceLineNo">092</span>      // 21, 1<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      m_filter = filter;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      m_filter__IsNotDefault = true;<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    public String getBcn()<a name="line.96"></a>
+<span class="sourceLineNo">096</span>    public String getFilter()<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return m_bcn;<a name="line.98"></a>
+<span class="sourceLineNo">098</span>      return m_filter;<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    private String m_bcn;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean getBcn__IsNotDefault()<a name="line.101"></a>
+<span class="sourceLineNo">100</span>    private String m_filter;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public boolean getFilter__IsNotDefault()<a name="line.101"></a>
 <span class="sourceLineNo">102</span>    {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      return m_bcn__IsNotDefault;<a name="line.103"></a>
+<span class="sourceLineNo">103</span>      return m_filter__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    private boolean m_bcn__IsNotDefault;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // 22, 1<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public void setFormat(String format)<a name="line.107"></a>
+<span class="sourceLineNo">105</span>    private boolean m_filter__IsNotDefault;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    // 23, 1<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    public void setBcn(String bcn)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // 22, 1<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      m_format = format;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      m_format__IsNotDefault = true;<a name="line.111"></a>
+<span class="sourceLineNo">109</span>      // 23, 1<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      m_bcn = bcn;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      m_bcn__IsNotDefault = true;<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    public String getFormat()<a name="line.113"></a>
+<span class="sourceLineNo">113</span>    public String getBcn()<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return m_format;<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      return m_bcn;<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    private String m_format;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public boolean getFormat__IsNotDefault()<a name="line.118"></a>
+<span class="sourceLineNo">117</span>    private String m_bcn;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    public boolean getBcn__IsNotDefault()<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return m_format__IsNotDefault;<a name="line.120"></a>
+<span class="sourceLineNo">120</span>      return m_bcn__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    private boolean m_format__IsNotDefault;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // 21, 1<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setFilter(String filter)<a name="line.124"></a>
+<span class="sourceLineNo">122</span>    private boolean m_bcn__IsNotDefault;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // 22, 1<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void setFormat(String format)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // 21, 1<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      m_filter = filter;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      m_filter__IsNotDefault = true;<a name="line.128"></a>
+<span class="sourceLineNo">126</span>      // 22, 1<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      m_format = format;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      m_format__IsNotDefault = true;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    public String getFilter()<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    public String getFormat()<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return m_filter;<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      return m_format;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private String m_filter;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public boolean getFilter__IsNotDefault()<a name="line.135"></a>
+<span class="sourceLineNo">134</span>    private String m_format;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    public boolean getFormat__IsNotDefault()<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return m_filter__IsNotDefault;<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      return m_format__IsNotDefault;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    private boolean m_filter__IsNotDefault;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>    private boolean m_format__IsNotDefault;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>  }<a name="line.140"></a>
 <span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
 <span class="sourceLineNo">142</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.142"></a>
@@ -163,24 +163,24 @@
 <span class="sourceLineNo">155</span>    return this;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>  }<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  <a name="line.157"></a>
-<span class="sourceLineNo">158</span>  protected String bcn;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.159"></a>
+<span class="sourceLineNo">158</span>  protected String filter;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.159"></a>
 <span class="sourceLineNo">160</span>  {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    (getImplData()).setBcn(p_bcn);<a name="line.161"></a>
+<span class="sourceLineNo">161</span>    (getImplData()).setFilter(p_filter);<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    return this;<a name="line.162"></a>
 <span class="sourceLineNo">163</span>  }<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  <a name="line.164"></a>
-<span class="sourceLineNo">165</span>  protected String format;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  protected String bcn;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    (getImplData()).setFormat(p_format);<a name="line.168"></a>
+<span class="sourceLineNo">168</span>    (getImplData()).setBcn(p_bcn);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>    return this;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  }<a name="line.170"></a>
 <span class="sourceLineNo">171</span>  <a name="line.171"></a>
-<span class="sourceLineNo">172</span>  protected String filter;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.173"></a>
+<span class="sourceLineNo">172</span>  protected String format;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    (getImplData()).setFilter(p_filter);<a name="line.175"></a>
+<span class="sourceLineNo">175</span>    (getImplData()).setFormat(p_format);<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span>  <a name="line.178"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
index 20fbaf1..b794ecf 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
@@ -35,26 +35,26 @@
 <span class="sourceLineNo">027</span>{<a name="line.27"></a>
 <span class="sourceLineNo">028</span>  private final HRegionServer regionServer;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>  private final String bcv;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>  private final String bcn;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>  private final String format;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>  private final String filter;<a name="line.32"></a>
+<span class="sourceLineNo">030</span>  private final String filter;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>  private final String bcn;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>  private final String format;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  protected static org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData p_implData)<a name="line.33"></a>
 <span class="sourceLineNo">034</span>  {<a name="line.34"></a>
 <span class="sourceLineNo">035</span>    if(! p_implData.getBcv__IsNotDefault())<a name="line.35"></a>
 <span class="sourceLineNo">036</span>    {<a name="line.36"></a>
 <span class="sourceLineNo">037</span>      p_implData.setBcv("");<a name="line.37"></a>
 <span class="sourceLineNo">038</span>    }<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    if(! p_implData.getBcn__IsNotDefault())<a name="line.39"></a>
+<span class="sourceLineNo">039</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.39"></a>
 <span class="sourceLineNo">040</span>    {<a name="line.40"></a>
-<span class="sourceLineNo">041</span>      p_implData.setBcn("");<a name="line.41"></a>
+<span class="sourceLineNo">041</span>      p_implData.setFilter("general");<a name="line.41"></a>
 <span class="sourceLineNo">042</span>    }<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.43"></a>
+<span class="sourceLineNo">043</span>    if(! p_implData.getBcn__IsNotDefault())<a name="line.43"></a>
 <span class="sourceLineNo">044</span>    {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>      p_implData.setFormat("html");<a name="line.45"></a>
+<span class="sourceLineNo">045</span>      p_implData.setBcn("");<a name="line.45"></a>
 <span class="sourceLineNo">046</span>    }<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.47"></a>
+<span class="sourceLineNo">047</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.47"></a>
 <span class="sourceLineNo">048</span>    {<a name="line.48"></a>
-<span class="sourceLineNo">049</span>      p_implData.setFilter("general");<a name="line.49"></a>
+<span class="sourceLineNo">049</span>      p_implData.setFormat("html");<a name="line.49"></a>
 <span class="sourceLineNo">050</span>    }<a name="line.50"></a>
 <span class="sourceLineNo">051</span>    return p_implData;<a name="line.51"></a>
 <span class="sourceLineNo">052</span>  }<a name="line.52"></a>
@@ -63,9 +63,9 @@
 <span class="sourceLineNo">055</span>    super(p_templateManager, __jamon_setOptionalArguments(p_implData));<a name="line.55"></a>
 <span class="sourceLineNo">056</span>    regionServer = p_implData.getRegionServer();<a name="line.56"></a>
 <span class="sourceLineNo">057</span>    bcv = p_implData.getBcv();<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    bcn = p_implData.getBcn();<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    format = p_implData.getFormat();<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    filter = p_implData.getFilter();<a name="line.60"></a>
+<span class="sourceLineNo">058</span>    filter = p_implData.getFilter();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    bcn = p_implData.getBcn();<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    format = p_implData.getFormat();<a name="line.60"></a>
 <span class="sourceLineNo">061</span>  }<a name="line.61"></a>
 <span class="sourceLineNo">062</span>  <a name="line.62"></a>
 <span class="sourceLineNo">063</span>  @Override public void renderNoFlush(final java.io.Writer jamonWriter)<a name="line.63"></a>


[17/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html
index 89b0f0c..df6f4e7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.UniformSplit.html
@@ -28,1103 +28,1096 @@
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.math.BigInteger;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.Arrays;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.Collection;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.Collections;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.Comparator;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.LinkedList;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.List;<a name="line.28"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.Arrays;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Collection;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.LinkedList;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.Map;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>import java.util.Set;<a name="line.29"></a>
 <span class="sourceLineNo">030</span>import java.util.TreeMap;<a name="line.30"></a>
-<span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.commons.cli.CommandLine;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.commons.cli.GnuParser;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.commons.cli.HelpFormatter;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.commons.cli.OptionBuilder;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.commons.cli.Options;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.commons.cli.ParseException;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.commons.lang.ArrayUtils;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.commons.lang.StringUtils;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.commons.logging.Log;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.commons.logging.LogFactory;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.conf.Configuration;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.fs.FileSystem;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.fs.Path;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.ClusterStatus;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.TableName;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.client.NoServerForRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.client.Table;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;<a name="line.64"></a>
-<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>import com.google.common.base.Preconditions;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import com.google.common.collect.Lists;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import com.google.common.collect.Maps;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import com.google.common.collect.Sets;<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> * The {@link RegionSplitter} class provides several utilities to help in the<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * administration lifecycle for developers who choose to manually split regions<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * instead of having HBase handle that automatically. The most useful utilities<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * are:<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;ul&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;li&gt;Create a table with a specified number of pre-split regions<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * &lt;li&gt;Execute a rolling split of all regions on an existing table<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * &lt;/ul&gt;<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * &lt;p&gt;<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * Both operations can be safely done on a live server.<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * &lt;p&gt;<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * &lt;b&gt;Question:&lt;/b&gt; How do I turn off automatic splitting? &lt;br&gt;<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * &lt;b&gt;Answer:&lt;/b&gt; Automatic splitting is determined by the configuration value<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;i&gt;HConstants.HREGION_MAX_FILESIZE&lt;/i&gt;. It is not recommended that you set this<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * to Long.MAX_VALUE in case you forget about manual splits. A suggested setting<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * is 100GB, which would result in &amp;gt; 1hr major compactions if reached.<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * &lt;p&gt;<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * &lt;b&gt;Question:&lt;/b&gt; Why did the original authors decide to manually split? &lt;br&gt;<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * &lt;b&gt;Answer:&lt;/b&gt; Specific workload characteristics of our use case allowed us<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * to benefit from a manual split system.<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;p&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * &lt;ul&gt;<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * &lt;li&gt;Data (~1k) that would grow instead of being replaced<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;li&gt;Data growth was roughly uniform across all regions<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * &lt;li&gt;OLTP workload. Data loss is a big deal.<a name="line.97"></a>
-<span class="sourceLineNo">098</span> * &lt;/ul&gt;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * &lt;p&gt;<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * &lt;b&gt;Question:&lt;/b&gt; Why is manual splitting good for this workload? &lt;br&gt;<a name="line.100"></a>
-<span class="sourceLineNo">101</span> * &lt;b&gt;Answer:&lt;/b&gt; Although automated splitting is not a bad option, there are<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * benefits to manual splitting.<a name="line.102"></a>
-<span class="sourceLineNo">103</span> * &lt;p&gt;<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * &lt;ul&gt;<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * &lt;li&gt;With growing amounts of data, splits will continually be needed. Since<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * you always know exactly what regions you have, long-term debugging and<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * profiling is much easier with manual splits. It is hard to trace the logs to<a name="line.107"></a>
-<span class="sourceLineNo">108</span> * understand region level problems if it keeps splitting and getting renamed.<a name="line.108"></a>
-<span class="sourceLineNo">109</span> * &lt;li&gt;Data offlining bugs + unknown number of split regions == oh crap! If an<a name="line.109"></a>
-<span class="sourceLineNo">110</span> * WAL or StoreFile was mistakenly unprocessed by HBase due to a weird bug and<a name="line.110"></a>
-<span class="sourceLineNo">111</span> * you notice it a day or so later, you can be assured that the regions<a name="line.111"></a>
-<span class="sourceLineNo">112</span> * specified in these files are the same as the current regions and you have<a name="line.112"></a>
-<span class="sourceLineNo">113</span> * less headaches trying to restore/replay your data.<a name="line.113"></a>
-<span class="sourceLineNo">114</span> * &lt;li&gt;You can finely tune your compaction algorithm. With roughly uniform data<a name="line.114"></a>
-<span class="sourceLineNo">115</span> * growth, it's easy to cause split / compaction storms as the regions all<a name="line.115"></a>
-<span class="sourceLineNo">116</span> * roughly hit the same data size at the same time. With manual splits, you can<a name="line.116"></a>
-<span class="sourceLineNo">117</span> * let staggered, time-based major compactions spread out your network IO load.<a name="line.117"></a>
-<span class="sourceLineNo">118</span> * &lt;/ul&gt;<a name="line.118"></a>
-<span class="sourceLineNo">119</span> * &lt;p&gt;<a name="line.119"></a>
-<span class="sourceLineNo">120</span> * &lt;b&gt;Question:&lt;/b&gt; What's the optimal number of pre-split regions to create? &lt;br&gt;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> * &lt;b&gt;Answer:&lt;/b&gt; Mileage will vary depending upon your application.<a name="line.121"></a>
-<span class="sourceLineNo">122</span> * &lt;p&gt;<a name="line.122"></a>
-<span class="sourceLineNo">123</span> * The short answer for our application is that we started with 10 pre-split<a name="line.123"></a>
-<span class="sourceLineNo">124</span> * regions / server and watched our data growth over time. It's better to err on<a name="line.124"></a>
-<span class="sourceLineNo">125</span> * the side of too little regions and rolling split later.<a name="line.125"></a>
-<span class="sourceLineNo">126</span> * &lt;p&gt;<a name="line.126"></a>
-<span class="sourceLineNo">127</span> * The more complicated answer is that this depends upon the largest storefile<a name="line.127"></a>
-<span class="sourceLineNo">128</span> * in your region. With a growing data size, this will get larger over time. You<a name="line.128"></a>
-<span class="sourceLineNo">129</span> * want the largest region to be just big enough that the<a name="line.129"></a>
-<span class="sourceLineNo">130</span> * {@link org.apache.hadoop.hbase.regionserver.HStore} compact<a name="line.130"></a>
-<span class="sourceLineNo">131</span> * selection algorithm only compacts it due to a timed major. If you don't, your<a name="line.131"></a>
-<span class="sourceLineNo">132</span> * cluster can be prone to compaction storms as the algorithm decides to run<a name="line.132"></a>
-<span class="sourceLineNo">133</span> * major compactions on a large series of regions all at once. Note that<a name="line.133"></a>
-<span class="sourceLineNo">134</span> * compaction storms are due to the uniform data growth, not the manual split<a name="line.134"></a>
-<span class="sourceLineNo">135</span> * decision.<a name="line.135"></a>
-<span class="sourceLineNo">136</span> * &lt;p&gt;<a name="line.136"></a>
-<span class="sourceLineNo">137</span> * If you pre-split your regions too thin, you can increase the major compaction<a name="line.137"></a>
-<span class="sourceLineNo">138</span> * interval by configuring HConstants.MAJOR_COMPACTION_PERIOD. If your data size<a name="line.138"></a>
-<span class="sourceLineNo">139</span> * grows too large, use this script to perform a network IO safe rolling split<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * of all regions.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> */<a name="line.141"></a>
-<span class="sourceLineNo">142</span>@InterfaceAudience.Private<a name="line.142"></a>
-<span class="sourceLineNo">143</span>public class RegionSplitter {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private static final Log LOG = LogFactory.getLog(RegionSplitter.class);<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  /**<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   * A generic interface for the RegionSplitter code to use for all it's<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * functionality. Note that the original authors of this code use<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * {@link HexStringSplit} to partition their table and set it as default, but<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * provided this for your custom algorithm. To use, create a new derived class<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * from this interface and call {@link RegionSplitter#createPresplitTable} or<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * RegionSplitter#rollingSplit(TableName, SplitAlgorithm, Configuration) with the<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * argument splitClassName giving the name of your class.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   */<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  public interface SplitAlgorithm {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    /**<a name="line.156"></a>
-<span class="sourceLineNo">157</span>     * Split a pre-existing region into 2 regions.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>     *<a name="line.158"></a>
-<span class="sourceLineNo">159</span>     * @param start<a name="line.159"></a>
-<span class="sourceLineNo">160</span>     *          first row (inclusive)<a name="line.160"></a>
-<span class="sourceLineNo">161</span>     * @param end<a name="line.161"></a>
-<span class="sourceLineNo">162</span>     *          last row (exclusive)<a name="line.162"></a>
-<span class="sourceLineNo">163</span>     * @return the split row to use<a name="line.163"></a>
-<span class="sourceLineNo">164</span>     */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    byte[] split(byte[] start, byte[] end);<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>    /**<a name="line.167"></a>
-<span class="sourceLineNo">168</span>     * Split an entire table.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>     *<a name="line.169"></a>
-<span class="sourceLineNo">170</span>     * @param numRegions<a name="line.170"></a>
-<span class="sourceLineNo">171</span>     *          number of regions to split the table into<a name="line.171"></a>
-<span class="sourceLineNo">172</span>     *<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * @throws RuntimeException<a name="line.173"></a>
-<span class="sourceLineNo">174</span>     *           user input is validated at this time. may throw a runtime<a name="line.174"></a>
-<span class="sourceLineNo">175</span>     *           exception in response to a parse failure<a name="line.175"></a>
-<span class="sourceLineNo">176</span>     * @return array of split keys for the initial regions of the table. The<a name="line.176"></a>
-<span class="sourceLineNo">177</span>     *         length of the returned array should be numRegions-1.<a name="line.177"></a>
-<span class="sourceLineNo">178</span>     */<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    byte[][] split(int numRegions);<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>    /**<a name="line.181"></a>
-<span class="sourceLineNo">182</span>     * In HBase, the first row is represented by an empty byte array. This might<a name="line.182"></a>
-<span class="sourceLineNo">183</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.183"></a>
-<span class="sourceLineNo">184</span>     * will be passed firstRow() instead of empty array.<a name="line.184"></a>
-<span class="sourceLineNo">185</span>     *<a name="line.185"></a>
-<span class="sourceLineNo">186</span>     * @return your representation of your first row<a name="line.186"></a>
-<span class="sourceLineNo">187</span>     */<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    byte[] firstRow();<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>    /**<a name="line.190"></a>
-<span class="sourceLineNo">191</span>     * In HBase, the last row is represented by an empty byte array. This might<a name="line.191"></a>
-<span class="sourceLineNo">192</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.192"></a>
-<span class="sourceLineNo">193</span>     * will be passed firstRow() instead of empty array.<a name="line.193"></a>
-<span class="sourceLineNo">194</span>     *<a name="line.194"></a>
-<span class="sourceLineNo">195</span>     * @return your representation of your last row<a name="line.195"></a>
-<span class="sourceLineNo">196</span>     */<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    byte[] lastRow();<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    /**<a name="line.199"></a>
-<span class="sourceLineNo">200</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.200"></a>
-<span class="sourceLineNo">201</span>     * value to help the split code understand how to evenly divide the first<a name="line.201"></a>
-<span class="sourceLineNo">202</span>     * region.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>     *<a name="line.203"></a>
-<span class="sourceLineNo">204</span>     * @param userInput<a name="line.204"></a>
-<span class="sourceLineNo">205</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.205"></a>
-<span class="sourceLineNo">206</span>     */<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    void setFirstRow(String userInput);<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>    /**<a name="line.209"></a>
-<span class="sourceLineNo">210</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.210"></a>
-<span class="sourceLineNo">211</span>     * value to help the split code understand how to evenly divide the last<a name="line.211"></a>
-<span class="sourceLineNo">212</span>     * region. Note that this last row is inclusive for all rows sharing the<a name="line.212"></a>
-<span class="sourceLineNo">213</span>     * same prefix.<a name="line.213"></a>
-<span class="sourceLineNo">214</span>     *<a name="line.214"></a>
-<span class="sourceLineNo">215</span>     * @param userInput<a name="line.215"></a>
-<span class="sourceLineNo">216</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.216"></a>
-<span class="sourceLineNo">217</span>     */<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    void setLastRow(String userInput);<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>    /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span>     * @param input<a name="line.221"></a>
-<span class="sourceLineNo">222</span>     *          user or file input for row<a name="line.222"></a>
-<span class="sourceLineNo">223</span>     * @return byte array representation of this row for HBase<a name="line.223"></a>
-<span class="sourceLineNo">224</span>     */<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    byte[] strToRow(String input);<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>    /**<a name="line.227"></a>
-<span class="sourceLineNo">228</span>     * @param row<a name="line.228"></a>
-<span class="sourceLineNo">229</span>     *          byte array representing a row in HBase<a name="line.229"></a>
-<span class="sourceLineNo">230</span>     * @return String to use for debug &amp;amp; file printing<a name="line.230"></a>
-<span class="sourceLineNo">231</span>     */<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    String rowToStr(byte[] row);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    /**<a name="line.234"></a>
-<span class="sourceLineNo">235</span>     * @return the separator character to use when storing / printing the row<a name="line.235"></a>
-<span class="sourceLineNo">236</span>     */<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    String separator();<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    /**<a name="line.239"></a>
-<span class="sourceLineNo">240</span>     * Set the first row<a name="line.240"></a>
-<span class="sourceLineNo">241</span>     * @param userInput byte array of the row key.<a name="line.241"></a>
-<span class="sourceLineNo">242</span>     */<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    void setFirstRow(byte[] userInput);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>    /**<a name="line.245"></a>
-<span class="sourceLineNo">246</span>     * Set the last row<a name="line.246"></a>
-<span class="sourceLineNo">247</span>     * @param userInput byte array of the row key.<a name="line.247"></a>
-<span class="sourceLineNo">248</span>     */<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    void setLastRow(byte[] userInput);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>  }<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>  /**<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * The main function for the RegionSplitter application. Common uses:<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * &lt;p&gt;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * &lt;ul&gt;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   * &lt;li&gt;create a table named 'myTable' with 60 pre-split regions containing 2<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * column families 'test' &amp;amp; 'rs', assuming the keys are hex-encoded ASCII:<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * &lt;ul&gt;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -c 60 -f test:rs<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   * myTable HexStringSplit<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   * &lt;/ul&gt;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>   * &lt;li&gt;perform a rolling split of 'myTable' (i.e. 60 =&amp;gt; 120 regions), # 2<a name="line.262"></a>
-<span class="sourceLineNo">263</span>   * outstanding splits at a time, assuming keys are uniformly distributed<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * bytes:<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * &lt;ul&gt;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -r -o 2 myTable<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * UniformSplit<a name="line.267"></a>
+<span class="sourceLineNo">031</span>import org.apache.commons.cli.CommandLine;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.commons.cli.GnuParser;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.commons.cli.HelpFormatter;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.commons.cli.OptionBuilder;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.commons.cli.Options;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.commons.cli.ParseException;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.commons.lang.ArrayUtils;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.commons.lang.StringUtils;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.commons.logging.Log;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.commons.logging.LogFactory;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.conf.Configuration;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.fs.FileSystem;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.fs.Path;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ClusterStatus;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.TableName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.NoServerForRegionException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.client.Table;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>import com.google.common.base.Preconditions;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import com.google.common.collect.Lists;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import com.google.common.collect.Maps;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import com.google.common.collect.Sets;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>/**<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * The {@link RegionSplitter} class provides several utilities to help in the<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * administration lifecycle for developers who choose to manually split regions<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * instead of having HBase handle that automatically. The most useful utilities<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * are:<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;ul&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * &lt;li&gt;Create a table with a specified number of pre-split regions<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;li&gt;Execute a rolling split of all regions on an existing table<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * &lt;/ul&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * &lt;p&gt;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * Both operations can be safely done on a live server.<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * &lt;p&gt;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * &lt;b&gt;Question:&lt;/b&gt; How do I turn off automatic splitting? &lt;br&gt;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * &lt;b&gt;Answer:&lt;/b&gt; Automatic splitting is determined by the configuration value<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * &lt;i&gt;HConstants.HREGION_MAX_FILESIZE&lt;/i&gt;. It is not recommended that you set this<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * to Long.MAX_VALUE in case you forget about manual splits. A suggested setting<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * is 100GB, which would result in &amp;gt; 1hr major compactions if reached.<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;p&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * &lt;b&gt;Question:&lt;/b&gt; Why did the original authors decide to manually split? &lt;br&gt;<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * &lt;b&gt;Answer:&lt;/b&gt; Specific workload characteristics of our use case allowed us<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * to benefit from a manual split system.<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * &lt;p&gt;<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * &lt;ul&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;li&gt;Data (~1k) that would grow instead of being replaced<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * &lt;li&gt;Data growth was roughly uniform across all regions<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * &lt;li&gt;OLTP workload. Data loss is a big deal.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/ul&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;p&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * &lt;b&gt;Question:&lt;/b&gt; Why is manual splitting good for this workload? &lt;br&gt;<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * &lt;b&gt;Answer:&lt;/b&gt; Although automated splitting is not a bad option, there are<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * benefits to manual splitting.<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * &lt;p&gt;<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * &lt;ul&gt;<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * &lt;li&gt;With growing amounts of data, splits will continually be needed. Since<a name="line.104"></a>
+<span class="sourceLineNo">105</span> * you always know exactly what regions you have, long-term debugging and<a name="line.105"></a>
+<span class="sourceLineNo">106</span> * profiling is much easier with manual splits. It is hard to trace the logs to<a name="line.106"></a>
+<span class="sourceLineNo">107</span> * understand region level problems if it keeps splitting and getting renamed.<a name="line.107"></a>
+<span class="sourceLineNo">108</span> * &lt;li&gt;Data offlining bugs + unknown number of split regions == oh crap! If an<a name="line.108"></a>
+<span class="sourceLineNo">109</span> * WAL or StoreFile was mistakenly unprocessed by HBase due to a weird bug and<a name="line.109"></a>
+<span class="sourceLineNo">110</span> * you notice it a day or so later, you can be assured that the regions<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * specified in these files are the same as the current regions and you have<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * less headaches trying to restore/replay your data.<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * &lt;li&gt;You can finely tune your compaction algorithm. With roughly uniform data<a name="line.113"></a>
+<span class="sourceLineNo">114</span> * growth, it's easy to cause split / compaction storms as the regions all<a name="line.114"></a>
+<span class="sourceLineNo">115</span> * roughly hit the same data size at the same time. With manual splits, you can<a name="line.115"></a>
+<span class="sourceLineNo">116</span> * let staggered, time-based major compactions spread out your network IO load.<a name="line.116"></a>
+<span class="sourceLineNo">117</span> * &lt;/ul&gt;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> * &lt;p&gt;<a name="line.118"></a>
+<span class="sourceLineNo">119</span> * &lt;b&gt;Question:&lt;/b&gt; What's the optimal number of pre-split regions to create? &lt;br&gt;<a name="line.119"></a>
+<span class="sourceLineNo">120</span> * &lt;b&gt;Answer:&lt;/b&gt; Mileage will vary depending upon your application.<a name="line.120"></a>
+<span class="sourceLineNo">121</span> * &lt;p&gt;<a name="line.121"></a>
+<span class="sourceLineNo">122</span> * The short answer for our application is that we started with 10 pre-split<a name="line.122"></a>
+<span class="sourceLineNo">123</span> * regions / server and watched our data growth over time. It's better to err on<a name="line.123"></a>
+<span class="sourceLineNo">124</span> * the side of too little regions and rolling split later.<a name="line.124"></a>
+<span class="sourceLineNo">125</span> * &lt;p&gt;<a name="line.125"></a>
+<span class="sourceLineNo">126</span> * The more complicated answer is that this depends upon the largest storefile<a name="line.126"></a>
+<span class="sourceLineNo">127</span> * in your region. With a growing data size, this will get larger over time. You<a name="line.127"></a>
+<span class="sourceLineNo">128</span> * want the largest region to be just big enough that the<a name="line.128"></a>
+<span class="sourceLineNo">129</span> * {@link org.apache.hadoop.hbase.regionserver.HStore} compact<a name="line.129"></a>
+<span class="sourceLineNo">130</span> * selection algorithm only compacts it due to a timed major. If you don't, your<a name="line.130"></a>
+<span class="sourceLineNo">131</span> * cluster can be prone to compaction storms as the algorithm decides to run<a name="line.131"></a>
+<span class="sourceLineNo">132</span> * major compactions on a large series of regions all at once. Note that<a name="line.132"></a>
+<span class="sourceLineNo">133</span> * compaction storms are due to the uniform data growth, not the manual split<a name="line.133"></a>
+<span class="sourceLineNo">134</span> * decision.<a name="line.134"></a>
+<span class="sourceLineNo">135</span> * &lt;p&gt;<a name="line.135"></a>
+<span class="sourceLineNo">136</span> * If you pre-split your regions too thin, you can increase the major compaction<a name="line.136"></a>
+<span class="sourceLineNo">137</span> * interval by configuring HConstants.MAJOR_COMPACTION_PERIOD. If your data size<a name="line.137"></a>
+<span class="sourceLineNo">138</span> * grows too large, use this script to perform a network IO safe rolling split<a name="line.138"></a>
+<span class="sourceLineNo">139</span> * of all regions.<a name="line.139"></a>
+<span class="sourceLineNo">140</span> */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>@InterfaceAudience.Private<a name="line.141"></a>
+<span class="sourceLineNo">142</span>public class RegionSplitter {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  private static final Log LOG = LogFactory.getLog(RegionSplitter.class);<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>  /**<a name="line.145"></a>
+<span class="sourceLineNo">146</span>   * A generic interface for the RegionSplitter code to use for all it's<a name="line.146"></a>
+<span class="sourceLineNo">147</span>   * functionality. Note that the original authors of this code use<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   * {@link HexStringSplit} to partition their table and set it as default, but<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * provided this for your custom algorithm. To use, create a new derived class<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * from this interface and call {@link RegionSplitter#createPresplitTable} or<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   * RegionSplitter#rollingSplit(TableName, SplitAlgorithm, Configuration) with the<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * argument splitClassName giving the name of your class.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   */<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  public interface SplitAlgorithm {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    /**<a name="line.155"></a>
+<span class="sourceLineNo">156</span>     * Split a pre-existing region into 2 regions.<a name="line.156"></a>
+<span class="sourceLineNo">157</span>     *<a name="line.157"></a>
+<span class="sourceLineNo">158</span>     * @param start<a name="line.158"></a>
+<span class="sourceLineNo">159</span>     *          first row (inclusive)<a name="line.159"></a>
+<span class="sourceLineNo">160</span>     * @param end<a name="line.160"></a>
+<span class="sourceLineNo">161</span>     *          last row (exclusive)<a name="line.161"></a>
+<span class="sourceLineNo">162</span>     * @return the split row to use<a name="line.162"></a>
+<span class="sourceLineNo">163</span>     */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    byte[] split(byte[] start, byte[] end);<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>    /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>     * Split an entire table.<a name="line.167"></a>
+<span class="sourceLineNo">168</span>     *<a name="line.168"></a>
+<span class="sourceLineNo">169</span>     * @param numRegions<a name="line.169"></a>
+<span class="sourceLineNo">170</span>     *          number of regions to split the table into<a name="line.170"></a>
+<span class="sourceLineNo">171</span>     *<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     * @throws RuntimeException<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     *           user input is validated at this time. may throw a runtime<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     *           exception in response to a parse failure<a name="line.174"></a>
+<span class="sourceLineNo">175</span>     * @return array of split keys for the initial regions of the table. The<a name="line.175"></a>
+<span class="sourceLineNo">176</span>     *         length of the returned array should be numRegions-1.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>     */<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    byte[][] split(int numRegions);<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>    /**<a name="line.180"></a>
+<span class="sourceLineNo">181</span>     * In HBase, the first row is represented by an empty byte array. This might<a name="line.181"></a>
+<span class="sourceLineNo">182</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.182"></a>
+<span class="sourceLineNo">183</span>     * will be passed firstRow() instead of empty array.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>     *<a name="line.184"></a>
+<span class="sourceLineNo">185</span>     * @return your representation of your first row<a name="line.185"></a>
+<span class="sourceLineNo">186</span>     */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    byte[] firstRow();<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>    /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>     * In HBase, the last row is represented by an empty byte array. This might<a name="line.190"></a>
+<span class="sourceLineNo">191</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.191"></a>
+<span class="sourceLineNo">192</span>     * will be passed firstRow() instead of empty array.<a name="line.192"></a>
+<span class="sourceLineNo">193</span>     *<a name="line.193"></a>
+<span class="sourceLineNo">194</span>     * @return your representation of your last row<a name="line.194"></a>
+<span class="sourceLineNo">195</span>     */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    byte[] lastRow();<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>    /**<a name="line.198"></a>
+<span class="sourceLineNo">199</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.199"></a>
+<span class="sourceLineNo">200</span>     * value to help the split code understand how to evenly divide the first<a name="line.200"></a>
+<span class="sourceLineNo">201</span>     * region.<a name="line.201"></a>
+<span class="sourceLineNo">202</span>     *<a name="line.202"></a>
+<span class="sourceLineNo">203</span>     * @param userInput<a name="line.203"></a>
+<span class="sourceLineNo">204</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.204"></a>
+<span class="sourceLineNo">205</span>     */<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    void setFirstRow(String userInput);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.209"></a>
+<span class="sourceLineNo">210</span>     * value to help the split code understand how to evenly divide the last<a name="line.210"></a>
+<span class="sourceLineNo">211</span>     * region. Note that this last row is inclusive for all rows sharing the<a name="line.211"></a>
+<span class="sourceLineNo">212</span>     * same prefix.<a name="line.212"></a>
+<span class="sourceLineNo">213</span>     *<a name="line.213"></a>
+<span class="sourceLineNo">214</span>     * @param userInput<a name="line.214"></a>
+<span class="sourceLineNo">215</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.215"></a>
+<span class="sourceLineNo">216</span>     */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    void setLastRow(String userInput);<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    /**<a name="line.219"></a>
+<span class="sourceLineNo">220</span>     * @param input<a name="line.220"></a>
+<span class="sourceLineNo">221</span>     *          user or file input for row<a name="line.221"></a>
+<span class="sourceLineNo">222</span>     * @return byte array representation of this row for HBase<a name="line.222"></a>
+<span class="sourceLineNo">223</span>     */<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    byte[] strToRow(String input);<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>    /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>     * @param row<a name="line.227"></a>
+<span class="sourceLineNo">228</span>     *          byte array representing a row in HBase<a name="line.228"></a>
+<span class="sourceLineNo">229</span>     * @return String to use for debug &amp;amp; file printing<a name="line.229"></a>
+<span class="sourceLineNo">230</span>     */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    String rowToStr(byte[] row);<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>    /**<a name="line.233"></a>
+<span class="sourceLineNo">234</span>     * @return the separator character to use when storing / printing the row<a name="line.234"></a>
+<span class="sourceLineNo">235</span>     */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    String separator();<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>    /**<a name="line.238"></a>
+<span class="sourceLineNo">239</span>     * Set the first row<a name="line.239"></a>
+<span class="sourceLineNo">240</span>     * @param userInput byte array of the row key.<a name="line.240"></a>
+<span class="sourceLineNo">241</span>     */<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    void setFirstRow(byte[] userInput);<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>    /**<a name="line.244"></a>
+<span class="sourceLineNo">245</span>     * Set the last row<a name="line.245"></a>
+<span class="sourceLineNo">246</span>     * @param userInput byte array of the row key.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>     */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    void setLastRow(byte[] userInput);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>  /**<a name="line.251"></a>
+<span class="sourceLineNo">252</span>   * The main function for the RegionSplitter application. Common uses:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * &lt;p&gt;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * &lt;ul&gt;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * &lt;li&gt;create a table named 'myTable' with 60 pre-split regions containing 2<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * column families 'test' &amp;amp; 'rs', assuming the keys are hex-encoded ASCII:<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * &lt;ul&gt;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -c 60 -f test:rs<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * myTable HexStringSplit<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * &lt;/ul&gt;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   * &lt;li&gt;perform a rolling split of 'myTable' (i.e. 60 =&amp;gt; 120 regions), # 2<a name="line.261"></a>
+<span class="sourceLineNo">262</span>   * outstanding splits at a time, assuming keys are uniformly distributed<a name="line.262"></a>
+<span class="sourceLineNo">263</span>   * bytes:<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   * &lt;ul&gt;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -r -o 2 myTable<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * UniformSplit<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * &lt;/ul&gt;<a name="line.267"></a>
 <span class="sourceLineNo">268</span>   * &lt;/ul&gt;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * &lt;/ul&gt;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   *<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * There are two SplitAlgorithms built into RegionSplitter, HexStringSplit<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * and UniformSplit. These are different strategies for choosing region<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * boundaries. See their source code for details.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   *<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * @param args<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   *          Usage: RegionSplitter &amp;lt;TABLE&amp;gt; &amp;lt;SPLITALGORITHM&amp;gt;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   *          &amp;lt;-c &amp;lt;# regions&amp;gt; -f &amp;lt;family:family:...&amp;gt; | -r<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   *          [-o &amp;lt;# outstanding splits&amp;gt;]&amp;gt;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   *          [-D &amp;lt;conf.param=value&amp;gt;]<a name="line.279"></a>
-<span class="sourceLineNo">280</span>   * @throws IOException<a name="line.280"></a>
-<span class="sourceLineNo">281</span>   *           HBase IO problem<a name="line.281"></a>
-<span class="sourceLineNo">282</span>   * @throws InterruptedException<a name="line.282"></a>
-<span class="sourceLineNo">283</span>   *           user requested exit<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * @throws ParseException<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   *           problem parsing user input<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  @SuppressWarnings("static-access")<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  public static void main(String[] args) throws IOException,<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      InterruptedException, ParseException {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    Configuration conf = HBaseConfiguration.create();<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // parse user input<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    Options opt = new Options();<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    opt.addOption(OptionBuilder.withArgName("property=value").hasArg()<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        .withDescription("Override HBase Configuration Settings").create("D"));<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    opt.addOption(OptionBuilder.withArgName("region count").hasArg()<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        .withDescription(<a name="line.297"></a>
-<span class="sourceLineNo">298</span>            "Create a new table with a pre-split number of regions")<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        .create("c"));<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    opt.addOption(OptionBuilder.withArgName("family:family:...").hasArg()<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .withDescription(<a name="line.301"></a>
-<span class="sourceLineNo">302</span>            "Column Families to create with new table.  Required with -c")<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        .create("f"));<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    opt.addOption("h", false, "Print this usage help");<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    opt.addOption("r", false, "Perform a rolling split of an existing region");<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    opt.addOption(OptionBuilder.withArgName("count").hasArg().withDescription(<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        "Max outstanding splits that have unfinished major compactions")<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        .create("o"));<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    opt.addOption(null, "firstrow", true,<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        "First Row in Table for Split Algorithm");<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    opt.addOption(null, "lastrow", true,<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        "Last Row in Table for Split Algorithm");<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    opt.addOption(null, "risky", false,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        "Skip verification steps to complete quickly."<a name="line.314"></a>
-<span class="sourceLineNo">315</span>            + "STRONGLY DISCOURAGED for production systems.  ");<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    CommandLine cmd = new GnuParser().parse(opt, args);<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>    if (cmd.hasOption("D")) {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      for (String confOpt : cmd.getOptionValues("D")) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        String[] kv = confOpt.split("=", 2);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        if (kv.length == 2) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          conf.set(kv[0], kv[1]);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          LOG.debug("-D configuration override: " + kv[0] + "=" + kv[1]);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>        } else {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>          throw new ParseException("-D option format invalid: " + confOpt);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>        }<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      }<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    }<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span>    if (cmd.hasOption("risky")) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      conf.setBoolean("split.verify", false);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>    boolean createTable = cmd.hasOption("c") &amp;&amp; cmd.hasOption("f");<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    boolean rollingSplit = cmd.hasOption("r");<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    boolean oneOperOnly = createTable ^ rollingSplit;<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>    if (2 != cmd.getArgList().size() || !oneOperOnly || cmd.hasOption("h")) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      new HelpFormatter().printHelp("RegionSplitter &lt;TABLE&gt; &lt;SPLITALGORITHM&gt;\n"+<a name="line.339"></a>
-<span class="sourceLineNo">340</span>          "SPLITALGORITHM is a java class name of a class implementing " +<a name="line.340"></a>
-<span class="sourceLineNo">341</span>          "SplitAlgorithm, or one of the special strings HexStringSplit " +<a name="line.341"></a>
-<span class="sourceLineNo">342</span>          "or UniformSplit, which are built-in split algorithms. " +<a name="line.342"></a>
-<span class="sourceLineNo">343</span>          "HexStringSplit treats keys as hexadecimal ASCII, and " +<a name="line.343"></a>
-<span class="sourceLineNo">344</span>          "UniformSplit treats keys as arbitrary bytes.", opt);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      return;<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    TableName tableName = TableName.valueOf(cmd.getArgs()[0]);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    String splitClass = cmd.getArgs()[1];<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    SplitAlgorithm splitAlgo = newSplitAlgoInstance(conf, splitClass);<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    if (cmd.hasOption("firstrow")) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      splitAlgo.setFirstRow(cmd.getOptionValue("firstrow"));<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    if (cmd.hasOption("lastrow")) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      splitAlgo.setLastRow(cmd.getOptionValue("lastrow"));<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    if (createTable) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      conf.set("split.count", cmd.getOptionValue("c"));<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      createPresplitTable(tableName, splitAlgo, cmd.getOptionValue("f").split(":"), conf);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span>    if (rollingSplit) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      if (cmd.hasOption("o")) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        conf.set("split.outstanding", cmd.getOptionValue("o"));<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      rollingSplit(tableName, splitAlgo, conf);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>  static void createPresplitTable(TableName tableName, SplitAlgorithm splitAlgo,<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          String[] columnFamilies, Configuration conf)<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  throws IOException, InterruptedException {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    final int splitCount = conf.getInt("split.count", 0);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    Preconditions.checkArgument(splitCount &gt; 1, "Split count must be &gt; 1");<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>    Preconditions.checkArgument(columnFamilies.length &gt; 0,<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        "Must specify at least one column family. ");<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    LOG.debug("Creating table " + tableName + " with " + columnFamilies.length<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        + " column families.  Presplitting to " + splitCount + " regions");<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    for (String cf : columnFamilies) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      desc.addFamily(new HColumnDescriptor(Bytes.toBytes(cf)));<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    try (Connection connection = ConnectionFactory.createConnection(conf)) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      Admin admin = connection.getAdmin();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      try {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        Preconditions.checkArgument(!admin.tableExists(tableName),<a name="line.389"></a>
-<span class="sourceLineNo">390</span>          "Table already exists: " + tableName);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        admin.createTable(desc, splitAlgo.split(splitCount));<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      } finally {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>        admin.close();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      }<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      LOG.debug("Table created!  Waiting for regions to show online in META...");<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      if (!conf.getBoolean("split.verify", true)) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        // NOTE: createTable is synchronous on the table, but not on the regions<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        int onlineRegions = 0;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        while (onlineRegions &lt; splitCount) {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          onlineRegions = MetaTableAccessor.getRegionCount(connection, tableName);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          LOG.debug(onlineRegions + " of " + splitCount + " regions online...");<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          if (onlineRegions &lt; splitCount) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            Thread.sleep(10 * 1000); // sleep<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        }<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      LOG.debug("Finished creating table with " + splitCount + " regions");<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>  /**<a name="line.411"></a>
-<span class="sourceLineNo">412</span>   * Alternative getCurrentNrHRS which is no longer available.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>   * @param connection<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   * @return Rough count of regionservers out on cluster.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>   * @throws IOException <a name="line.415"></a>
-<span class="sourceLineNo">416</span>   */<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private static int getRegionServerCount(final Connection connection) throws IOException {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    try (Admin admin = connection.getAdmin()) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      ClusterStatus status = admin.getClusterStatus();<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      Collection&lt;ServerName&gt; servers = status.getServers();<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      return servers == null || servers.isEmpty()? 0: servers.size();<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
-<span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>  private static byte [] readFile(final FileSystem fs, final Path path) throws IOException {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    FSDataInputStream tmpIn = fs.open(path);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      byte [] rawData = new byte[tmpIn.available()];<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      tmpIn.readFully(rawData);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      return rawData;<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    } finally {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      tmpIn.close();<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  static void rollingSplit(TableName tableName, SplitAlgorithm splitAlgo, Configuration conf)<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  throws IOException, InterruptedException {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    final int minOS = conf.getInt("split.outstanding", 2);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    try (Connection connection = ConnectionFactory.createConnection(conf)) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      // Max outstanding splits. default == 50% of servers<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      final int MAX_OUTSTANDING = Math.max(getRegionServerCount(connection) / 2, minOS);<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>      Path hbDir = FSUtils.getRootDir(conf);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      Path tableDir = FSUtils.getTableDir(hbDir, tableName);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      Path splitFile = new Path(tableDir, "_balancedSplit");<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      FileSystem fs = FileSystem.get(conf);<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>      // Get a list of daughter regions to create<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; tmpRegionSet = null;<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      try (Table table = connection.getTable(tableName)) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        tmpRegionSet = getSplits(connection, tableName, splitAlgo);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      }<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; outstanding = Lists.newLinkedList();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      int splitCount = 0;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      final int origCount = tmpRegionSet.size();<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>      // all splits must compact &amp; we have 1 compact thread, so 2 split<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      // requests to the same RS can stall the outstanding split queue.<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      // To fix, group the regions into an RS pool and round-robin through it<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      LOG.debug("Bucketing regions by regionserver...");<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      TreeMap&lt;String, LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt;&gt; daughterRegions =<a name="line.461"></a>
-<span class="sourceLineNo">462</span>          Maps.newTreeMap();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      // Get a regionLocator.  Need it in below.<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      try (RegionLocator regionLocator = connection.getRegionLocator(tableName)) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>        for (Pair&lt;byte[], byte[]&gt; dr : tmpRegionSet) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>          String rsLocation = regionLocator.getRegionLocation(dr.getSecond()).getHostnamePort();<a name="line.466"></a>
-<span class="sourceLineNo">467</span>          if (!daughterRegions.containsKey(rsLocation)) {<a name="line.467"></a>
-<span class="sourceLineNo">468</span>            LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; entry = Lists.newLinkedList();<a name="line.468"></a>
-<span class="sourceLineNo">469</span>            daughterRegions.put(rsLocation, entry);<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          }<a name="line.470"></a>
-<span class="sourceLineNo">471</span>          daughterRegions.get(rsLocation).add(dr);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>        }<a name="line.472"></a>
-<span class="sourceLineNo">473</span>        LOG.debug("Done with bucketing.  Split time!");<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        long startTime = System.currentTimeMillis();<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>        // Open the split file and modify it as splits finish<a name="line.476"></a>
-<span class="sourceLineNo">477</span>        byte[] rawData = readFile(fs, splitFile);<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>        FSDataOutputStream splitOut = fs.create(splitFile);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        try {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>          splitOut.write(rawData);<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>          try {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>            // *** split code ***<a name="line.484"></a>
-<span class="sourceLineNo">485</span>            while (!daughterRegions.isEmpty()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>              LOG.debug(daughterRegions.size() + " RS have regions to splt.");<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>              // Get ServerName to region count mapping<a name="line.488"></a>
-<span class="sourceLineNo">489</span>              final TreeMap&lt;ServerName, Integer&gt; rsSizes = Maps.newTreeMap();<a name="line.489"></a>
-<span class="sourceLineNo">490</span>              List&lt;HRegionLocation&gt; hrls = regionLocator.getAllRegionLocations();<a name="line.490"></a>
-<span class="sourceLineNo">491</span>              for (HRegionLocation hrl: hrls) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>                ServerName sn = hrl.getServerName();<a name="line.492"></a>
-<span class="sourceLineNo">493</span>                if (rsSizes.containsKey(sn)) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>                  rsSizes.put(sn, rsSizes.get(sn) + 1);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>                } else {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>                  rsSizes.put(sn, 1);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>                }<a name="line.497"></a>
-<span class="sourceLineNo">498</span>              }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>              // Sort the ServerNames by the number of regions they have<a name="line.500"></a>
-<span class="sourceLineNo">501</span>              List&lt;String&gt; serversLeft = Lists.newArrayList(daughterRegions .keySet());<a name="line.501"></a>
-<span class="sourceLineNo">502</span>              Collections.sort(serversLeft, new Comparator&lt;String&gt;() {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>                public int compare(String o1, String o2) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>                  return rsSizes.get(o1).compareTo(rsSizes.get(o2));<a name="line.504"></a>
-<span class="sourceLineNo">505</span>                }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>              });<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>              // Round-robin through the ServerName list. Choose the lightest-loaded servers<a name="line.508"></a>
-<span class="sourceLineNo">509</span>              // first to keep the master from load-balancing regions as we split.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>              for (String rsLoc : serversLeft) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>                Pair&lt;byte[], byte[]&gt; dr = null;<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>                // Find a region in the ServerName list that hasn't been moved<a name="line.513"></a>
-<span class="sourceLineNo">514</span>                LOG.debug("Finding a region on " + rsLoc);<a name="line.514"></a>
-<span class="sourceLineNo">515</span>                LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; regionList = daughterRegions.get(rsLoc);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>                while (!regionList.isEmpty()) {<a name="line.516"></a>
-<span class="sourceLineNo">517</span>                  dr = regionList.pop();<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>                  // get current region info<a name="line.519"></a>
-<span class="sourceLineNo">520</span>                  byte[] split = dr.getSecond();<a name="line.520"></a>
-<span class="sourceLineNo">521</span>                  HRegionLocation regionLoc = regionLocator.getRegionLocation(split);<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>                  // if this region moved locations<a name="line.523"></a>
-<span class="sourceLineNo">524</span>                  String newRs = regionLoc.getHostnamePort();<a name="line.524"></a>
-<span class="sourceLineNo">525</span>                  if (newRs.compareTo(rsLoc) != 0) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>                    LOG.debug("Region with " + splitAlgo.rowToStr(split)<a name="line.526"></a>
-<span class="sourceLineNo">527</span>                        + " moved to " + newRs + ". Relocating...");<a name="line.527"></a>
-<span class="sourceLineNo">528</span>                    // relocate it, don't use it right now<a name="line.528"></a>
-<span class="sourceLineNo">529</span>                    if (!daughterRegions.containsKey(newRs)) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>                      LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; entry = Lists.newLinkedList();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>                      daughterRegions.put(newRs, entry);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>                    }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>                    daughterRegions.get(newRs).add(dr);<a name="line.533"></a>
-<span class="sourceLineNo">534</span>                    dr = null;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>                    continue;<a name="line.535"></a>
-<span class="sourceLineNo">536</span>                  }<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span>                  // make sure this region wasn't already split<a name="line.538"></a>
-<span class="sourceLineNo">539</span>                  byte[] sk = regionLoc.getRegionInfo().getStartKey();<a name="line.539"></a>
-<span class="sourceLineNo">540</span>                  if (sk.length != 0) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>                    if (Bytes.equals(split, sk)) {<a name="line.541"></a>
-<span class="sourceLineNo">542</span>                      LOG.debug("Region already split on "<a name="line.542"></a>
-<span class="sourceLineNo">543</span>                          + splitAlgo.rowToStr(split) + ".  Skipping this region...");<a name="line.543"></a>
-<span class="sourceLineNo">544</span>                      ++splitCount;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>                      dr = null;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>                      continue;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>                    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>                    byte[] start = dr.getFirst();<a name="line.548"></a>
-<span class="sourceLineNo">549</span>                    Preconditions.checkArgument(Bytes.equals(start, sk), splitAlgo<a name="line.549"></a>
-<span class="sourceLineNo">550</span>                        .rowToStr(start) + " != " + splitAlgo.rowToStr(sk));<a name="line.550"></a>
-<span class="sourceLineNo">551</span>                  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>                  // passed all checks! found a good region<a name="line.553"></a>
-<span class="sourceLineNo">554</span>                  break;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>                }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>                if (regionList.isEmpty()) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>                  daughterRegions.remove(rsLoc);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>                }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>                if (dr == null)<a name="line.559"></a>
-<span class="sourceLineNo">560</span>                  continue;<a name="line.560"></a>
+<span class="sourceLineNo">269</span>   *<a name="line.269"></a>
+<span class="sourceLineNo">270</span>   * There are two SplitAlgorithms built into RegionSplitter, HexStringSplit<a name="line.270"></a>
+<span class="sourceLineNo">271</span>   * and UniformSplit. These are different strategies for choosing region<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   * boundaries. See their source code for details.<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   *<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   * @param args<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   *          Usage: RegionSplitter &amp;lt;TABLE&amp;gt; &amp;lt;SPLITALGORITHM&amp;gt;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   *          &amp;lt;-c &amp;lt;# regions&amp;gt; -f &amp;lt;family:family:...&amp;gt; | -r<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   *          [-o &amp;lt;# outstanding splits&amp;gt;]&amp;gt;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   *          [-D &amp;lt;conf.param=value&amp;gt;]<a name="line.278"></a>
+<span class="sourceLineNo">279</span>   * @throws IOException<a name="line.279"></a>
+<span class="sourceLineNo">280</span>   *           HBase IO problem<a name="line.280"></a>
+<span class="sourceLineNo">281</span>   * @throws InterruptedException<a name="line.281"></a>
+<span class="sourceLineNo">282</span>   *           user requested exit<a name="line.282"></a>
+<span class="sourceLineNo">283</span>   * @throws ParseException<a name="line.283"></a>
+<span class="sourceLineNo">284</span>   *           problem parsing user input<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  @SuppressWarnings("static-access")<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  public static void main(String[] args) throws IOException,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      InterruptedException, ParseException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    Configuration conf = HBaseConfiguration.create();<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>    // parse user input<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    Options opt = new Options();<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    opt.addOption(OptionBuilder.withArgName("property=value").hasArg()<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        .withDescription("Override HBase Configuration Settings").create("D"));<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    opt.addOption(OptionBuilder.withArgName("region count").hasArg()<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        .withDescription(<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            "Create a new table with a pre-split number of regions")<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        .create("c"));<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    opt.addOption(OptionBuilder.withArgName("family:family:...").hasArg()<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        .withDescription(<a name="line.300"></a>
+<span class="sourceLineNo">301</span>            "Column Families to create with new table.  Required with -c")<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        .create("f"));<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    opt.addOption("h", false, "Print this usage help");<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    opt.addOption("r", false, "Perform a rolling split of an existing region");<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    opt.addOption(OptionBuilder.withArgName("count").hasArg().withDescription(<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        "Max outstanding splits that have unfinished major compactions")<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        .create("o"));<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    opt.addOption(null, "firstrow", true,<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        "First Row in Table for Split Algorithm");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    opt.addOption(null, "lastrow", true,<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        "Last Row in Table for Split Algorithm");<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    opt.addOption(null, "risky", false,<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        "Skip verification steps to complete quickly."<a name="line.313"></a>
+<span class="sourceLineNo">314</span>            + "STRONGLY DISCOURAGED for production systems.  ");<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    CommandLine cmd = new GnuParser().parse(opt, args);<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (cmd.hasOption("D")) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      for (String confOpt : cmd.getOptionValues("D")) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        String[] kv = confOpt.split("=", 2);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        if (kv.length == 2) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          conf.set(kv[0], kv[1]);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>          LOG.debug("-D configuration override: " + kv[0] + "=" + kv[1]);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>        } else {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          throw new ParseException("-D option format invalid: " + confOpt);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>    if (cmd.hasOption("risky")) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      conf.setBoolean("split.verify", false);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>    boolean createTable = cmd.hasOption("c") &amp;&amp; cmd.hasOption("f");<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    boolean rollingSplit = cmd.hasOption("r");<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    boolean oneOperOnly = createTable ^ rollingSplit;<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>    if (2 != cmd.getArgList().size() || !oneOperOnly || cmd.hasOption("h")) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      new HelpFormatter().printHelp("RegionSplitter &lt;TABLE&gt; &lt;SPLITALGORITHM&gt;\n"+<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          "SPLITALGORITHM is a java class name of a class implementing " +<a name="line.339"></a>
+<span class="sourceLineNo">340</span>          "SplitAlgorithm, or one of the special strings HexStringSplit " +<a name="line.340"></a>
+<span class="sourceLineNo">341</span>          "or UniformSplit, which are built-in split algorithms. " +<a name="line.341"></a>
+<span class="sourceLineNo">342</span>          "HexStringSplit treats keys as hexadeci

<TRUNCATED>

[07/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref-test/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html b/xref-test/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html
index e0d658a..e348ec6 100644
--- a/xref-test/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html
+++ b/xref-test/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html
@@ -34,723 +34,730 @@
 <a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.fail;
 <a class="jxr_linenumber" name="25" href="#25">25</a>  
 <a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
-<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Locale;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.TreeMap;
-<a class="jxr_linenumber" name="32" href="#32">32</a>
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FSDataOutputStream;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FileStatus;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FileSystem;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.Path;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseTestingUtility;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HConstants;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.NamespaceDescriptor;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableNotFoundException;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.codec.KeyValueCodecWithTags;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.CoprocessorHost;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.io.hfile.CacheConfig;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.io.hfile.HFile;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.io.hfile.HFileScanner;
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.BloomType;
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.testclassification.LargeTests;
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.testclassification.MapReduceTests;
-<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.FSUtils;
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.HFileTestUtil;
-<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.junit.AfterClass;
-<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.junit.BeforeClass;
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.junit.Rule;
-<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
-<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.junit.experimental.categories.Category;
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.junit.rules.TestName;
-<a class="jxr_linenumber" name="64" href="#64">64</a>
-<a class="jxr_linenumber" name="65" href="#65">65</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="66" href="#66">66</a>  <em class="jxr_javadoccomment"> * Test cases for the "load" half of the HFileOutputFormat bulk load</em>
-<a class="jxr_linenumber" name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> * functionality. These tests run faster than the full MR cluster</em>
-<a class="jxr_linenumber" name="68" href="#68">68</a>  <em class="jxr_javadoccomment"> * tests in TestHFileOutputFormat</em>
-<a class="jxr_linenumber" name="69" href="#69">69</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="70" href="#70">70</a>  @Category({MapReduceTests.<strong class="jxr_keyword">class</strong>, LargeTests.<strong class="jxr_keyword">class</strong>})
-<a class="jxr_linenumber" name="71" href="#71">71</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html">TestLoadIncrementalHFiles</a> {
-<a class="jxr_linenumber" name="72" href="#72">72</a>    @Rule
-<a class="jxr_linenumber" name="73" href="#73">73</a>    <strong class="jxr_keyword">public</strong> TestName tn = <strong class="jxr_keyword">new</strong> TestName();
-<a class="jxr_linenumber" name="74" href="#74">74</a>
-<a class="jxr_linenumber" name="75" href="#75">75</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] QUALIFIER = Bytes.toBytes(<span class="jxr_string">"myqual"</span>);
-<a class="jxr_linenumber" name="76" href="#76">76</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] FAMILY = Bytes.toBytes(<span class="jxr_string">"myfam"</span>);
-<a class="jxr_linenumber" name="77" href="#77">77</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NAMESPACE = <span class="jxr_string">"bulkNS"</span>;
-<a class="jxr_linenumber" name="78" href="#78">78</a>
-<a class="jxr_linenumber" name="79" href="#79">79</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EXPECTED_MSG_FOR_NON_EXISTING_FAMILY = <span class="jxr_string">"Unmatched family names found"</span>;
-<a class="jxr_linenumber" name="80" href="#80">80</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> MAX_FILES_PER_REGION_PER_FAMILY = 4;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.nio.ByteBuffer;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Deque;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Locale;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.TreeMap;
+<a class="jxr_linenumber" name="34" href="#34">34</a>
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FSDataOutputStream;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FileStatus;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FileSystem;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.Path;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseTestingUtility;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HConstants;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.NamespaceDescriptor;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableNotFoundException;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.codec.KeyValueCodecWithTags;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.CoprocessorHost;
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.io.hfile.CacheConfig;
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.io.hfile.HFile;
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.io.hfile.HFileScanner;
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem;
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.BloomType;
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.testclassification.LargeTests;
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.testclassification.MapReduceTests;
+<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.FSUtils;
+<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.HFileTestUtil;
+<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.junit.AfterClass;
+<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.junit.BeforeClass;
+<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.junit.Rule;
+<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
+<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.junit.experimental.categories.Category;
+<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.junit.rules.TestName;
+<a class="jxr_linenumber" name="67" href="#67">67</a>
+<a class="jxr_linenumber" name="68" href="#68">68</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="69" href="#69">69</a>  <em class="jxr_javadoccomment"> * Test cases for the "load" half of the HFileOutputFormat bulk load</em>
+<a class="jxr_linenumber" name="70" href="#70">70</a>  <em class="jxr_javadoccomment"> * functionality. These tests run faster than the full MR cluster</em>
+<a class="jxr_linenumber" name="71" href="#71">71</a>  <em class="jxr_javadoccomment"> * tests in TestHFileOutputFormat</em>
+<a class="jxr_linenumber" name="72" href="#72">72</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="73" href="#73">73</a>  @Category({MapReduceTests.<strong class="jxr_keyword">class</strong>, LargeTests.<strong class="jxr_keyword">class</strong>})
+<a class="jxr_linenumber" name="74" href="#74">74</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html">TestLoadIncrementalHFiles</a> {
+<a class="jxr_linenumber" name="75" href="#75">75</a>    @Rule
+<a class="jxr_linenumber" name="76" href="#76">76</a>    <strong class="jxr_keyword">public</strong> TestName tn = <strong class="jxr_keyword">new</strong> TestName();
+<a class="jxr_linenumber" name="77" href="#77">77</a>
+<a class="jxr_linenumber" name="78" href="#78">78</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] QUALIFIER = Bytes.toBytes(<span class="jxr_string">"myqual"</span>);
+<a class="jxr_linenumber" name="79" href="#79">79</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] FAMILY = Bytes.toBytes(<span class="jxr_string">"myfam"</span>);
+<a class="jxr_linenumber" name="80" href="#80">80</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NAMESPACE = <span class="jxr_string">"bulkNS"</span>;
 <a class="jxr_linenumber" name="81" href="#81">81</a>
-<a class="jxr_linenumber" name="82" href="#82">82</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[][] SPLIT_KEYS = <strong class="jxr_keyword">new</strong> byte[][] {
-<a class="jxr_linenumber" name="83" href="#83">83</a>      Bytes.toBytes(<span class="jxr_string">"ddd"</span>),
-<a class="jxr_linenumber" name="84" href="#84">84</a>      Bytes.toBytes(<span class="jxr_string">"ppp"</span>)
-<a class="jxr_linenumber" name="85" href="#85">85</a>    };
-<a class="jxr_linenumber" name="86" href="#86">86</a>
-<a class="jxr_linenumber" name="87" href="#87">87</a>    <strong class="jxr_keyword">static</strong> <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html">HBaseTestingUtility</a> util = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html">HBaseTestingUtility</a>();
-<a class="jxr_linenumber" name="88" href="#88">88</a>
-<a class="jxr_linenumber" name="89" href="#89">89</a>    @BeforeClass
-<a class="jxr_linenumber" name="90" href="#90">90</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setUpBeforeClass() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="91" href="#91">91</a>      util.getConfiguration().set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY,<span class="jxr_string">""</span>);
-<a class="jxr_linenumber" name="92" href="#92">92</a>      util.getConfiguration().setInt(
-<a class="jxr_linenumber" name="93" href="#93">93</a>        LoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY,
-<a class="jxr_linenumber" name="94" href="#94">94</a>        MAX_FILES_PER_REGION_PER_FAMILY);
-<a class="jxr_linenumber" name="95" href="#95">95</a>      <em class="jxr_comment">// change default behavior so that tag values are returned with normal rpcs</em>
-<a class="jxr_linenumber" name="96" href="#96">96</a>      util.getConfiguration().set(HConstants.RPC_CODEC_CONF_KEY,
-<a class="jxr_linenumber" name="97" href="#97">97</a>          KeyValueCodecWithTags.<strong class="jxr_keyword">class</strong>.getCanonicalName());
-<a class="jxr_linenumber" name="98" href="#98">98</a>      util.startMiniCluster();
-<a class="jxr_linenumber" name="99" href="#99">99</a>
-<a class="jxr_linenumber" name="100" href="#100">100</a>     setupNamespace();
-<a class="jxr_linenumber" name="101" href="#101">101</a>   }
+<a class="jxr_linenumber" name="82" href="#82">82</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EXPECTED_MSG_FOR_NON_EXISTING_FAMILY = <span class="jxr_string">"Unmatched family names found"</span>;
+<a class="jxr_linenumber" name="83" href="#83">83</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> MAX_FILES_PER_REGION_PER_FAMILY = 4;
+<a class="jxr_linenumber" name="84" href="#84">84</a>
+<a class="jxr_linenumber" name="85" href="#85">85</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[][] SPLIT_KEYS = <strong class="jxr_keyword">new</strong> byte[][] {
+<a class="jxr_linenumber" name="86" href="#86">86</a>      Bytes.toBytes(<span class="jxr_string">"ddd"</span>),
+<a class="jxr_linenumber" name="87" href="#87">87</a>      Bytes.toBytes(<span class="jxr_string">"ppp"</span>)
+<a class="jxr_linenumber" name="88" href="#88">88</a>    };
+<a class="jxr_linenumber" name="89" href="#89">89</a>
+<a class="jxr_linenumber" name="90" href="#90">90</a>    <strong class="jxr_keyword">static</strong> <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html">HBaseTestingUtility</a> util = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html">HBaseTestingUtility</a>();
+<a class="jxr_linenumber" name="91" href="#91">91</a>
+<a class="jxr_linenumber" name="92" href="#92">92</a>    @BeforeClass
+<a class="jxr_linenumber" name="93" href="#93">93</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setUpBeforeClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="94" href="#94">94</a>      util.getConfiguration().set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY,<span class="jxr_string">""</span>);
+<a class="jxr_linenumber" name="95" href="#95">95</a>      util.getConfiguration().setInt(
+<a class="jxr_linenumber" name="96" href="#96">96</a>        LoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY,
+<a class="jxr_linenumber" name="97" href="#97">97</a>        MAX_FILES_PER_REGION_PER_FAMILY);
+<a class="jxr_linenumber" name="98" href="#98">98</a>      <em class="jxr_comment">// change default behavior so that tag values are returned with normal rpcs</em>
+<a class="jxr_linenumber" name="99" href="#99">99</a>      util.getConfiguration().set(HConstants.RPC_CODEC_CONF_KEY,
+<a class="jxr_linenumber" name="100" href="#100">100</a>         KeyValueCodecWithTags.<strong class="jxr_keyword">class</strong>.getCanonicalName());
+<a class="jxr_linenumber" name="101" href="#101">101</a>     util.startMiniCluster();
 <a class="jxr_linenumber" name="102" href="#102">102</a>
-<a class="jxr_linenumber" name="103" href="#103">103</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setupNamespace() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="104" href="#104">104</a>     util.getHBaseAdmin().createNamespace(NamespaceDescriptor.create(NAMESPACE).build());
-<a class="jxr_linenumber" name="105" href="#105">105</a>   }
-<a class="jxr_linenumber" name="106" href="#106">106</a>
-<a class="jxr_linenumber" name="107" href="#107">107</a>   @AfterClass
-<a class="jxr_linenumber" name="108" href="#108">108</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> tearDownAfterClass() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="109" href="#109">109</a>     util.shutdownMiniCluster();
-<a class="jxr_linenumber" name="110" href="#110">110</a>   }
-<a class="jxr_linenumber" name="111" href="#111">111</a>
-<a class="jxr_linenumber" name="112" href="#112">112</a>   @Test(timeout = 120000)
-<a class="jxr_linenumber" name="113" href="#113">113</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSimpleLoadWithMap() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="114" href="#114">114</a>     runTest(<span class="jxr_string">"testSimpleLoadWithMap"</span>, BloomType.NONE,
-<a class="jxr_linenumber" name="115" href="#115">115</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
-<a class="jxr_linenumber" name="116" href="#116">116</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"cccc"</span>) },
-<a class="jxr_linenumber" name="117" href="#117">117</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"ddd"</span>), Bytes.toBytes(<span class="jxr_string">"ooo"</span>) },
-<a class="jxr_linenumber" name="118" href="#118">118</a>     },  <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="119" href="#119">119</a>   }
-<a class="jxr_linenumber" name="120" href="#120">120</a>
-<a class="jxr_linenumber" name="121" href="#121">121</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="122" href="#122">122</a> <em class="jxr_javadoccomment">   * Test case that creates some regions and loads</em>
-<a class="jxr_linenumber" name="123" href="#123">123</a> <em class="jxr_javadoccomment">   * HFiles that fit snugly inside those regions</em>
-<a class="jxr_linenumber" name="124" href="#124">124</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="125" href="#125">125</a>   @Test(timeout = 120000)
-<a class="jxr_linenumber" name="126" href="#126">126</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSimpleLoad() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="127" href="#127">127</a>     runTest(<span class="jxr_string">"testSimpleLoad"</span>, BloomType.NONE,
-<a class="jxr_linenumber" name="128" href="#128">128</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
-<a class="jxr_linenumber" name="129" href="#129">129</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"cccc"</span>) },
-<a class="jxr_linenumber" name="130" href="#130">130</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"ddd"</span>), Bytes.toBytes(<span class="jxr_string">"ooo"</span>) },
-<a class="jxr_linenumber" name="131" href="#131">131</a>     });
-<a class="jxr_linenumber" name="132" href="#132">132</a>   }
-<a class="jxr_linenumber" name="133" href="#133">133</a>
-<a class="jxr_linenumber" name="134" href="#134">134</a>   @Test(timeout = 120000)
-<a class="jxr_linenumber" name="135" href="#135">135</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSimpleLoadWithFileCopy() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="136" href="#136">136</a>     String testName = <span class="jxr_string">"mytable_testSimpleLoadWithFileCopy"</span>;
-<a class="jxr_linenumber" name="137" href="#137">137</a>     <strong class="jxr_keyword">final</strong> byte[] TABLE_NAME = Bytes.toBytes(<span class="jxr_string">"mytable_"</span> + testName);
-<a class="jxr_linenumber" name="138" href="#138">138</a>     runTest(testName, buildHTD(TableName.valueOf(TABLE_NAME), BloomType.NONE), BloomType.NONE,
-<a class="jxr_linenumber" name="139" href="#139">139</a>         false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> byte[][][] {
-<a class="jxr_linenumber" name="140" href="#140">140</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"cccc"</span>) },
-<a class="jxr_linenumber" name="141" href="#141">141</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"ddd"</span>), Bytes.toBytes(<span class="jxr_string">"ooo"</span>) },
-<a class="jxr_linenumber" name="142" href="#142">142</a>     }, false, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="143" href="#143">143</a>   }
-<a class="jxr_linenumber" name="144" href="#144">144</a>
-<a class="jxr_linenumber" name="145" href="#145">145</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="146" href="#146">146</a> <em class="jxr_javadoccomment">   * Test case that creates some regions and loads</em>
-<a class="jxr_linenumber" name="147" href="#147">147</a> <em class="jxr_javadoccomment">   * HFiles that cross the boundaries of those regions</em>
-<a class="jxr_linenumber" name="148" href="#148">148</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="149" href="#149">149</a>   @Test(timeout = 120000)
-<a class="jxr_linenumber" name="150" href="#150">150</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingLoad() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="151" href="#151">151</a>     runTest(<span class="jxr_string">"testRegionCrossingLoad"</span>, BloomType.NONE,
-<a class="jxr_linenumber" name="152" href="#152">152</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
-<a class="jxr_linenumber" name="153" href="#153">153</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"eee"</span>) },
-<a class="jxr_linenumber" name="154" href="#154">154</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"fff"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>) },
-<a class="jxr_linenumber" name="155" href="#155">155</a>     });
-<a class="jxr_linenumber" name="156" href="#156">156</a>   }
-<a class="jxr_linenumber" name="157" href="#157">157</a>
-<a class="jxr_linenumber" name="158" href="#158">158</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="159" href="#159">159</a> <em class="jxr_javadoccomment">   * Test loading into a column family that has a ROW bloom filter.</em>
-<a class="jxr_linenumber" name="160" href="#160">160</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="161" href="#161">161</a>   @Test(timeout = 60000)
-<a class="jxr_linenumber" name="162" href="#162">162</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingRowBloom() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="163" href="#163">163</a>     runTest(<span class="jxr_string">"testRegionCrossingLoadRowBloom"</span>, BloomType.ROW,
-<a class="jxr_linenumber" name="164" href="#164">164</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
-<a class="jxr_linenumber" name="165" href="#165">165</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"eee"</span>) },
-<a class="jxr_linenumber" name="166" href="#166">166</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"fff"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>) },
-<a class="jxr_linenumber" name="167" href="#167">167</a>     });
-<a class="jxr_linenumber" name="168" href="#168">168</a>   }
-<a class="jxr_linenumber" name="169" href="#169">169</a>
-<a class="jxr_linenumber" name="170" href="#170">170</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment">   * Test loading into a column family that has a ROWCOL bloom filter.</em>
-<a class="jxr_linenumber" name="172" href="#172">172</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="173" href="#173">173</a>   @Test(timeout = 120000)
-<a class="jxr_linenumber" name="174" href="#174">174</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingRowColBloom() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="175" href="#175">175</a>     runTest(<span class="jxr_string">"testRegionCrossingLoadRowColBloom"</span>, BloomType.ROWCOL,
-<a class="jxr_linenumber" name="176" href="#176">176</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
-<a class="jxr_linenumber" name="177" href="#177">177</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"eee"</span>) },
-<a class="jxr_linenumber" name="178" href="#178">178</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"fff"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>) },
-<a class="jxr_linenumber" name="179" href="#179">179</a>     });
-<a class="jxr_linenumber" name="180" href="#180">180</a>   }
-<a class="jxr_linenumber" name="181" href="#181">181</a>
-<a class="jxr_linenumber" name="182" href="#182">182</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="183" href="#183">183</a> <em class="jxr_javadoccomment">   * Test case that creates some regions and loads HFiles that have</em>
-<a class="jxr_linenumber" name="184" href="#184">184</a> <em class="jxr_javadoccomment">   * different region boundaries than the table pre-split.</em>
-<a class="jxr_linenumber" name="185" href="#185">185</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="186" href="#186">186</a>   @Test(timeout = 120000)
-<a class="jxr_linenumber" name="187" href="#187">187</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSimpleHFileSplit() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="188" href="#188">188</a>     runTest(<span class="jxr_string">"testHFileSplit"</span>, BloomType.NONE,
-<a class="jxr_linenumber" name="189" href="#189">189</a>         <strong class="jxr_keyword">new</strong> byte[][] {
-<a class="jxr_linenumber" name="190" href="#190">190</a>           Bytes.toBytes(<span class="jxr_string">"aaa"</span>), Bytes.toBytes(<span class="jxr_string">"fff"</span>), Bytes.toBytes(<span class="jxr_string">"jjj"</span>),
-<a class="jxr_linenumber" name="191" href="#191">191</a>           Bytes.toBytes(<span class="jxr_string">"ppp"</span>), Bytes.toBytes(<span class="jxr_string">"uuu"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>),
-<a class="jxr_linenumber" name="192" href="#192">192</a>         },
-<a class="jxr_linenumber" name="193" href="#193">193</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
-<a class="jxr_linenumber" name="194" href="#194">194</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"lll"</span>) },
-<a class="jxr_linenumber" name="195" href="#195">195</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"mmm"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>) },
-<a class="jxr_linenumber" name="196" href="#196">196</a>         }
-<a class="jxr_linenumber" name="197" href="#197">197</a>     );
-<a class="jxr_linenumber" name="198" href="#198">198</a>   }
-<a class="jxr_linenumber" name="199" href="#199">199</a>
-<a class="jxr_linenumber" name="200" href="#200">200</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="201" href="#201">201</a> <em class="jxr_javadoccomment">   * Test case that creates some regions and loads HFiles that cross the boundaries</em>
-<a class="jxr_linenumber" name="202" href="#202">202</a> <em class="jxr_javadoccomment">   * and have different region boundaries than the table pre-split.</em>
-<a class="jxr_linenumber" name="203" href="#203">203</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="204" href="#204">204</a>   @Test(timeout = 60000)
-<a class="jxr_linenumber" name="205" href="#205">205</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingHFileSplit() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="206" href="#206">206</a>     testRegionCrossingHFileSplit(BloomType.NONE);
-<a class="jxr_linenumber" name="207" href="#207">207</a>   }
-<a class="jxr_linenumber" name="208" href="#208">208</a>
-<a class="jxr_linenumber" name="209" href="#209">209</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="210" href="#210">210</a> <em class="jxr_javadoccomment">   * Test case that creates some regions and loads HFiles that cross the boundaries</em>
-<a class="jxr_linenumber" name="211" href="#211">211</a> <em class="jxr_javadoccomment">   * have a ROW bloom filter and a different region boundaries than the table pre-split.</em>
-<a class="jxr_linenumber" name="212" href="#212">212</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="213" href="#213">213</a>   @Test(timeout = 120000)
-<a class="jxr_linenumber" name="214" href="#214">214</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingHFileSplitRowBloom() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="215" href="#215">215</a>     testRegionCrossingHFileSplit(BloomType.ROW);
-<a class="jxr_linenumber" name="216" href="#216">216</a>   }
-<a class="jxr_linenumber" name="217" href="#217">217</a>
-<a class="jxr_linenumber" name="218" href="#218">218</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="219" href="#219">219</a> <em class="jxr_javadoccomment">   * Test case that creates some regions and loads HFiles that cross the boundaries</em>
-<a class="jxr_linenumber" name="220" href="#220">220</a> <em class="jxr_javadoccomment">   * have a ROWCOL bloom filter and a different region boundaries than the table pre-split.</em>
-<a class="jxr_linenumber" name="221" href="#221">221</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="222" href="#222">222</a>   @Test(timeout = 120000)
-<a class="jxr_linenumber" name="223" href="#223">223</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingHFileSplitRowColBloom() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="224" href="#224">224</a>     testRegionCrossingHFileSplit(BloomType.ROWCOL);
-<a class="jxr_linenumber" name="225" href="#225">225</a>   }
-<a class="jxr_linenumber" name="226" href="#226">226</a>
-<a class="jxr_linenumber" name="227" href="#227">227</a>   @Test
-<a class="jxr_linenumber" name="228" href="#228">228</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSplitALot() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="229" href="#229">229</a>     runTest(<span class="jxr_string">"testSplitALot"</span>, BloomType.NONE,
-<a class="jxr_linenumber" name="230" href="#230">230</a>       <strong class="jxr_keyword">new</strong> byte[][] {
-<a class="jxr_linenumber" name="231" href="#231">231</a>         Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"bbb"</span>),
-<a class="jxr_linenumber" name="232" href="#232">232</a>         Bytes.toBytes(<span class="jxr_string">"ccc"</span>), Bytes.toBytes(<span class="jxr_string">"ddd"</span>),
-<a class="jxr_linenumber" name="233" href="#233">233</a>         Bytes.toBytes(<span class="jxr_string">"eee"</span>), Bytes.toBytes(<span class="jxr_string">"fff"</span>),
-<a class="jxr_linenumber" name="234" href="#234">234</a>         Bytes.toBytes(<span class="jxr_string">"ggg"</span>), Bytes.toBytes(<span class="jxr_string">"hhh"</span>),
-<a class="jxr_linenumber" name="235" href="#235">235</a>         Bytes.toBytes(<span class="jxr_string">"iii"</span>), Bytes.toBytes(<span class="jxr_string">"lll"</span>),
-<a class="jxr_linenumber" name="236" href="#236">236</a>         Bytes.toBytes(<span class="jxr_string">"mmm"</span>), Bytes.toBytes(<span class="jxr_string">"nnn"</span>),
-<a class="jxr_linenumber" name="237" href="#237">237</a>         Bytes.toBytes(<span class="jxr_string">"ooo"</span>), Bytes.toBytes(<span class="jxr_string">"ppp"</span>),
-<a class="jxr_linenumber" name="238" href="#238">238</a>         Bytes.toBytes(<span class="jxr_string">"qqq"</span>), Bytes.toBytes(<span class="jxr_string">"rrr"</span>),
-<a class="jxr_linenumber" name="239" href="#239">239</a>         Bytes.toBytes(<span class="jxr_string">"sss"</span>), Bytes.toBytes(<span class="jxr_string">"ttt"</span>),
-<a class="jxr_linenumber" name="240" href="#240">240</a>         Bytes.toBytes(<span class="jxr_string">"uuu"</span>), Bytes.toBytes(<span class="jxr_string">"vvv"</span>),
-<a class="jxr_linenumber" name="241" href="#241">241</a>         Bytes.toBytes(<span class="jxr_string">"zzz"</span>),
-<a class="jxr_linenumber" name="242" href="#242">242</a>       },
-<a class="jxr_linenumber" name="243" href="#243">243</a>       <strong class="jxr_keyword">new</strong> byte[][][] {
-<a class="jxr_linenumber" name="244" href="#244">244</a>         <strong class="jxr_keyword">new</strong> byte[][] { Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>) },
-<a class="jxr_linenumber" name="245" href="#245">245</a>       }
-<a class="jxr_linenumber" name="246" href="#246">246</a>     );
-<a class="jxr_linenumber" name="247" href="#247">247</a>   }
-<a class="jxr_linenumber" name="248" href="#248">248</a>
-<a class="jxr_linenumber" name="249" href="#249">249</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingHFileSplit(BloomType bloomType) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="250" href="#250">250</a>     runTest(<span class="jxr_string">"testHFileSplit"</span> + bloomType + <span class="jxr_string">"Bloom"</span>, bloomType,
-<a class="jxr_linenumber" name="251" href="#251">251</a>         <strong class="jxr_keyword">new</strong> byte[][] {
-<a class="jxr_linenumber" name="252" href="#252">252</a>           Bytes.toBytes(<span class="jxr_string">"aaa"</span>), Bytes.toBytes(<span class="jxr_string">"fff"</span>), Bytes.toBytes(<span class="jxr_string">"jjj"</span>),
-<a class="jxr_linenumber" name="253" href="#253">253</a>           Bytes.toBytes(<span class="jxr_string">"ppp"</span>), Bytes.toBytes(<span class="jxr_string">"uuu"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>),
-<a class="jxr_linenumber" name="254" href="#254">254</a>         },
-<a class="jxr_linenumber" name="255" href="#255">255</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
-<a class="jxr_linenumber" name="256" href="#256">256</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"eee"</span>) },
-<a class="jxr_linenumber" name="257" href="#257">257</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"fff"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>) },
-<a class="jxr_linenumber" name="258" href="#258">258</a>         }
-<a class="jxr_linenumber" name="259" href="#259">259</a>     );
-<a class="jxr_linenumber" name="260" href="#260">260</a>   }
-<a class="jxr_linenumber" name="261" href="#261">261</a>
-<a class="jxr_linenumber" name="262" href="#262">262</a>   <strong class="jxr_keyword">private</strong> HTableDescriptor buildHTD(TableName tableName, BloomType bloomType) {
-<a class="jxr_linenumber" name="263" href="#263">263</a>     HTableDescriptor htd = <strong class="jxr_keyword">new</strong> HTableDescriptor(tableName);
-<a class="jxr_linenumber" name="264" href="#264">264</a>     HColumnDescriptor familyDesc = <strong class="jxr_keyword">new</strong> HColumnDescriptor(FAMILY);
-<a class="jxr_linenumber" name="265" href="#265">265</a>     familyDesc.setBloomFilterType(bloomType);
-<a class="jxr_linenumber" name="266" href="#266">266</a>     htd.addFamily(familyDesc);
-<a class="jxr_linenumber" name="267" href="#267">267</a>     <strong class="jxr_keyword">return</strong> htd;
-<a class="jxr_linenumber" name="268" href="#268">268</a>   }
-<a class="jxr_linenumber" name="269" href="#269">269</a>
-<a class="jxr_linenumber" name="270" href="#270">270</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runTest(String testName, BloomType bloomType,
-<a class="jxr_linenumber" name="271" href="#271">271</a>       byte[][][] hfileRanges) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="272" href="#272">272</a>     runTest(testName, bloomType, <strong class="jxr_keyword">null</strong>, hfileRanges);
-<a class="jxr_linenumber" name="273" href="#273">273</a>   }
-<a class="jxr_linenumber" name="274" href="#274">274</a>
-<a class="jxr_linenumber" name="275" href="#275">275</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runTest(String testName, BloomType bloomType,
-<a class="jxr_linenumber" name="276" href="#276">276</a>       byte[][][] hfileRanges, <strong class="jxr_keyword">boolean</strong> useMap) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="277" href="#277">277</a>     runTest(testName, bloomType, <strong class="jxr_keyword">null</strong>, hfileRanges, useMap);
-<a class="jxr_linenumber" name="278" href="#278">278</a>   }
-<a class="jxr_linenumber" name="279" href="#279">279</a>
-<a class="jxr_linenumber" name="280" href="#280">280</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runTest(String testName, BloomType bloomType,
-<a class="jxr_linenumber" name="281" href="#281">281</a>       byte[][] tableSplitKeys, byte[][][] hfileRanges) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="282" href="#282">282</a>     runTest(testName, bloomType, tableSplitKeys, hfileRanges, false);
-<a class="jxr_linenumber" name="283" href="#283">283</a>   }
-<a class="jxr_linenumber" name="284" href="#284">284</a>
-<a class="jxr_linenumber" name="285" href="#285">285</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runTest(String testName, BloomType bloomType,
-<a class="jxr_linenumber" name="286" href="#286">286</a>       byte[][] tableSplitKeys, byte[][][] hfileRanges, <strong class="jxr_keyword">boolean</strong> useMap) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="287" href="#287">287</a>     <strong class="jxr_keyword">final</strong> byte[] TABLE_NAME = Bytes.toBytes(<span class="jxr_string">"mytable_"</span>+testName);
-<a class="jxr_linenumber" name="288" href="#288">288</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> preCreateTable = tableSplitKeys != <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="289" href="#289">289</a>
-<a class="jxr_linenumber" name="290" href="#290">290</a>     <em class="jxr_comment">// Run the test bulkloading the table to the default namespace</em>
-<a class="jxr_linenumber" name="291" href="#291">291</a>     <strong class="jxr_keyword">final</strong> TableName TABLE_WITHOUT_NS = TableName.valueOf(TABLE_NAME);
-<a class="jxr_linenumber" name="292" href="#292">292</a>     runTest(testName, TABLE_WITHOUT_NS, bloomType, preCreateTable, tableSplitKeys, hfileRanges,
-<a class="jxr_linenumber" name="293" href="#293">293</a>         useMap);
-<a class="jxr_linenumber" name="294" href="#294">294</a>
-<a class="jxr_linenumber" name="295" href="#295">295</a>     <em class="jxr_comment">// Run the test bulkloading the table to the specified namespace</em>
-<a class="jxr_linenumber" name="296" href="#296">296</a>     <strong class="jxr_keyword">final</strong> TableName TABLE_WITH_NS = TableName.valueOf(Bytes.toBytes(NAMESPACE), TABLE_NAME);
-<a class="jxr_linenumber" name="297" href="#297">297</a>     runTest(testName, TABLE_WITH_NS, bloomType, preCreateTable, tableSplitKeys, hfileRanges,
-<a class="jxr_linenumber" name="298" href="#298">298</a>         useMap);
-<a class="jxr_linenumber" name="299" href="#299">299</a>   }
-<a class="jxr_linenumber" name="300" href="#300">300</a>
-<a class="jxr_linenumber" name="301" href="#301">301</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runTest(String testName, TableName tableName, BloomType bloomType,
-<a class="jxr_linenumber" name="302" href="#302">302</a>       <strong class="jxr_keyword">boolean</strong> preCreateTable, byte[][] tableSplitKeys, byte[][][] hfileRanges, <strong class="jxr_keyword">boolean</strong> useMap)
-<a class="jxr_linenumber" name="303" href="#303">303</a>           <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="304" href="#304">304</a>     HTableDescriptor htd = buildHTD(tableName, bloomType);
-<a class="jxr_linenumber" name="305" href="#305">305</a>     runTest(testName, htd, bloomType, preCreateTable, tableSplitKeys, hfileRanges, useMap, false);
-<a class="jxr_linenumber" name="306" href="#306">306</a>   }
-<a class="jxr_linenumber" name="307" href="#307">307</a>
-<a class="jxr_linenumber" name="308" href="#308">308</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runTest(String testName, HTableDescriptor htd, BloomType bloomType,
-<a class="jxr_linenumber" name="309" href="#309">309</a>       <strong class="jxr_keyword">boolean</strong> preCreateTable, byte[][] tableSplitKeys, byte[][][] hfileRanges, <strong class="jxr_keyword">boolean</strong> useMap,
-<a class="jxr_linenumber" name="310" href="#310">310</a>       <strong class="jxr_keyword">boolean</strong> copyFiles) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="311" href="#311">311</a>     Path dir = util.getDataTestDirOnTestFS(testName);
-<a class="jxr_linenumber" name="312" href="#312">312</a>     FileSystem fs = util.getTestFileSystem();
-<a class="jxr_linenumber" name="313" href="#313">313</a>     dir = dir.makeQualified(fs);
-<a class="jxr_linenumber" name="314" href="#314">314</a>     Path familyDir = <strong class="jxr_keyword">new</strong> Path(dir, Bytes.toString(FAMILY));
-<a class="jxr_linenumber" name="315" href="#315">315</a>
-<a class="jxr_linenumber" name="316" href="#316">316</a>     <strong class="jxr_keyword">int</strong> hfileIdx = 0;
-<a class="jxr_linenumber" name="317" href="#317">317</a>     Map&lt;byte[], List&lt;Path&gt;&gt; map = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="318" href="#318">318</a>     List&lt;Path&gt; list = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="319" href="#319">319</a>     <strong class="jxr_keyword">if</strong> (useMap || copyFiles) {
-<a class="jxr_linenumber" name="320" href="#320">320</a>       list = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
-<a class="jxr_linenumber" name="321" href="#321">321</a>     }
-<a class="jxr_linenumber" name="322" href="#322">322</a>     <strong class="jxr_keyword">if</strong> (useMap) {
-<a class="jxr_linenumber" name="323" href="#323">323</a>       map = <strong class="jxr_keyword">new</strong> TreeMap&lt;byte[], List&lt;Path&gt;&gt;(Bytes.BYTES_COMPARATOR);
-<a class="jxr_linenumber" name="324" href="#324">324</a>       map.put(FAMILY, list);
-<a class="jxr_linenumber" name="325" href="#325">325</a>     }
-<a class="jxr_linenumber" name="326" href="#326">326</a>     Path last = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="327" href="#327">327</a>     <strong class="jxr_keyword">for</strong> (byte[][] range : hfileRanges) {
-<a class="jxr_linenumber" name="328" href="#328">328</a>       byte[] from = range[0];
-<a class="jxr_linenumber" name="329" href="#329">329</a>       byte[] to = range[1];
-<a class="jxr_linenumber" name="330" href="#330">330</a>       Path path = <strong class="jxr_keyword">new</strong> Path(familyDir, <span class="jxr_string">"hfile_"</span> + hfileIdx++);
-<a class="jxr_linenumber" name="331" href="#331">331</a>       HFileTestUtil.createHFile(util.getConfiguration(), fs, path, FAMILY, QUALIFIER, from, to, 1000);
-<a class="jxr_linenumber" name="332" href="#332">332</a>       <strong class="jxr_keyword">if</strong> (useMap) {
-<a class="jxr_linenumber" name="333" href="#333">333</a>         last = path;
-<a class="jxr_linenumber" name="334" href="#334">334</a>         list.add(path);
-<a class="jxr_linenumber" name="335" href="#335">335</a>       }
-<a class="jxr_linenumber" name="336" href="#336">336</a>     }
-<a class="jxr_linenumber" name="337" href="#337">337</a>     <strong class="jxr_keyword">int</strong> expectedRows = hfileIdx * 1000;
-<a class="jxr_linenumber" name="338" href="#338">338</a>
-<a class="jxr_linenumber" name="339" href="#339">339</a>     <strong class="jxr_keyword">if</strong> (preCreateTable || map != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="340" href="#340">340</a>       util.getHBaseAdmin().createTable(htd, tableSplitKeys);
-<a class="jxr_linenumber" name="341" href="#341">341</a>     }
-<a class="jxr_linenumber" name="342" href="#342">342</a>
-<a class="jxr_linenumber" name="343" href="#343">343</a>     <strong class="jxr_keyword">final</strong> TableName tableName = htd.getTableName();
-<a class="jxr_linenumber" name="344" href="#344">344</a>     Configuration conf = util.getConfiguration();
-<a class="jxr_linenumber" name="345" href="#345">345</a>     <strong class="jxr_keyword">if</strong> (copyFiles) {
-<a class="jxr_linenumber" name="346" href="#346">346</a>       conf.setBoolean(LoadIncrementalHFiles.ALWAYS_COPY_FILES, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="347" href="#347">347</a>     }
-<a class="jxr_linenumber" name="348" href="#348">348</a>     LoadIncrementalHFiles loader = <strong class="jxr_keyword">new</strong> LoadIncrementalHFiles(conf);
-<a class="jxr_linenumber" name="349" href="#349">349</a>     String [] args= {dir.toString(), tableName.toString()};
-<a class="jxr_linenumber" name="350" href="#350">350</a>     <strong class="jxr_keyword">if</strong> (useMap) {
-<a class="jxr_linenumber" name="351" href="#351">351</a>       fs.delete(last);
-<a class="jxr_linenumber" name="352" href="#352">352</a>       List&lt;String&gt; missingHFiles = loader.run(<strong class="jxr_keyword">null</strong>, map, tableName);
-<a class="jxr_linenumber" name="353" href="#353">353</a>       expectedRows -= 1000;
-<a class="jxr_linenumber" name="354" href="#354">354</a>       assertTrue(missingHFiles.contains(last.getName()));
-<a class="jxr_linenumber" name="355" href="#355">355</a>     } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="356" href="#356">356</a>       loader.run(args);
-<a class="jxr_linenumber" name="357" href="#357">357</a>     }
-<a class="jxr_linenumber" name="358" href="#358">358</a>
-<a class="jxr_linenumber" name="359" href="#359">359</a>     <strong class="jxr_keyword">if</strong> (copyFiles) {
-<a class="jxr_linenumber" name="360" href="#360">360</a>       <strong class="jxr_keyword">for</strong> (Path p : list) {
-<a class="jxr_linenumber" name="361" href="#361">361</a>         assertTrue(fs.exists(p));
-<a class="jxr_linenumber" name="362" href="#362">362</a>       }
-<a class="jxr_linenumber" name="363" href="#363">363</a>     }
-<a class="jxr_linenumber" name="364" href="#364">364</a>
-<a class="jxr_linenumber" name="365" href="#365">365</a>     Table table = util.getConnection().getTable(tableName);
-<a class="jxr_linenumber" name="366" href="#366">366</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="367" href="#367">367</a>       assertEquals(expectedRows, util.countRows(table));
-<a class="jxr_linenumber" name="368" href="#368">368</a>     } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="369" href="#369">369</a>       table.close();
+<a class="jxr_linenumber" name="103" href="#103">103</a>     setupNamespace();
+<a class="jxr_linenumber" name="104" href="#104">104</a>   }
+<a class="jxr_linenumber" name="105" href="#105">105</a>
+<a class="jxr_linenumber" name="106" href="#106">106</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setupNamespace() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="107" href="#107">107</a>     util.getHBaseAdmin().createNamespace(NamespaceDescriptor.create(NAMESPACE).build());
+<a class="jxr_linenumber" name="108" href="#108">108</a>   }
+<a class="jxr_linenumber" name="109" href="#109">109</a>
+<a class="jxr_linenumber" name="110" href="#110">110</a>   @AfterClass
+<a class="jxr_linenumber" name="111" href="#111">111</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> tearDownAfterClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="112" href="#112">112</a>     util.shutdownMiniCluster();
+<a class="jxr_linenumber" name="113" href="#113">113</a>   }
+<a class="jxr_linenumber" name="114" href="#114">114</a>
+<a class="jxr_linenumber" name="115" href="#115">115</a>   @Test(timeout = 120000)
+<a class="jxr_linenumber" name="116" href="#116">116</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSimpleLoadWithMap() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="117" href="#117">117</a>     runTest(<span class="jxr_string">"testSimpleLoadWithMap"</span>, BloomType.NONE,
+<a class="jxr_linenumber" name="118" href="#118">118</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
+<a class="jxr_linenumber" name="119" href="#119">119</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"cccc"</span>) },
+<a class="jxr_linenumber" name="120" href="#120">120</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"ddd"</span>), Bytes.toBytes(<span class="jxr_string">"ooo"</span>) },
+<a class="jxr_linenumber" name="121" href="#121">121</a>     },  <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="122" href="#122">122</a>   }
+<a class="jxr_linenumber" name="123" href="#123">123</a>
+<a class="jxr_linenumber" name="124" href="#124">124</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="125" href="#125">125</a> <em class="jxr_javadoccomment">   * Test case that creates some regions and loads</em>
+<a class="jxr_linenumber" name="126" href="#126">126</a> <em class="jxr_javadoccomment">   * HFiles that fit snugly inside those regions</em>
+<a class="jxr_linenumber" name="127" href="#127">127</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="128" href="#128">128</a>   @Test(timeout = 120000)
+<a class="jxr_linenumber" name="129" href="#129">129</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSimpleLoad() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="130" href="#130">130</a>     runTest(<span class="jxr_string">"testSimpleLoad"</span>, BloomType.NONE,
+<a class="jxr_linenumber" name="131" href="#131">131</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
+<a class="jxr_linenumber" name="132" href="#132">132</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"cccc"</span>) },
+<a class="jxr_linenumber" name="133" href="#133">133</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"ddd"</span>), Bytes.toBytes(<span class="jxr_string">"ooo"</span>) },
+<a class="jxr_linenumber" name="134" href="#134">134</a>     });
+<a class="jxr_linenumber" name="135" href="#135">135</a>   }
+<a class="jxr_linenumber" name="136" href="#136">136</a>
+<a class="jxr_linenumber" name="137" href="#137">137</a>   @Test(timeout = 120000)
+<a class="jxr_linenumber" name="138" href="#138">138</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSimpleLoadWithFileCopy() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="139" href="#139">139</a>     String testName = <span class="jxr_string">"mytable_testSimpleLoadWithFileCopy"</span>;
+<a class="jxr_linenumber" name="140" href="#140">140</a>     <strong class="jxr_keyword">final</strong> byte[] TABLE_NAME = Bytes.toBytes(<span class="jxr_string">"mytable_"</span> + testName);
+<a class="jxr_linenumber" name="141" href="#141">141</a>     runTest(testName, buildHTD(TableName.valueOf(TABLE_NAME), BloomType.NONE), BloomType.NONE,
+<a class="jxr_linenumber" name="142" href="#142">142</a>         false, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">new</strong> byte[][][] {
+<a class="jxr_linenumber" name="143" href="#143">143</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"cccc"</span>) },
+<a class="jxr_linenumber" name="144" href="#144">144</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"ddd"</span>), Bytes.toBytes(<span class="jxr_string">"ooo"</span>) },
+<a class="jxr_linenumber" name="145" href="#145">145</a>     }, false, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="146" href="#146">146</a>   }
+<a class="jxr_linenumber" name="147" href="#147">147</a>
+<a class="jxr_linenumber" name="148" href="#148">148</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="149" href="#149">149</a> <em class="jxr_javadoccomment">   * Test case that creates some regions and loads</em>
+<a class="jxr_linenumber" name="150" href="#150">150</a> <em class="jxr_javadoccomment">   * HFiles that cross the boundaries of those regions</em>
+<a class="jxr_linenumber" name="151" href="#151">151</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="152" href="#152">152</a>   @Test(timeout = 120000)
+<a class="jxr_linenumber" name="153" href="#153">153</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingLoad() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="154" href="#154">154</a>     runTest(<span class="jxr_string">"testRegionCrossingLoad"</span>, BloomType.NONE,
+<a class="jxr_linenumber" name="155" href="#155">155</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
+<a class="jxr_linenumber" name="156" href="#156">156</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"eee"</span>) },
+<a class="jxr_linenumber" name="157" href="#157">157</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"fff"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>) },
+<a class="jxr_linenumber" name="158" href="#158">158</a>     });
+<a class="jxr_linenumber" name="159" href="#159">159</a>   }
+<a class="jxr_linenumber" name="160" href="#160">160</a>
+<a class="jxr_linenumber" name="161" href="#161">161</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="162" href="#162">162</a> <em class="jxr_javadoccomment">   * Test loading into a column family that has a ROW bloom filter.</em>
+<a class="jxr_linenumber" name="163" href="#163">163</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="164" href="#164">164</a>   @Test(timeout = 60000)
+<a class="jxr_linenumber" name="165" href="#165">165</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingRowBloom() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="166" href="#166">166</a>     runTest(<span class="jxr_string">"testRegionCrossingLoadRowBloom"</span>, BloomType.ROW,
+<a class="jxr_linenumber" name="167" href="#167">167</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
+<a class="jxr_linenumber" name="168" href="#168">168</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"eee"</span>) },
+<a class="jxr_linenumber" name="169" href="#169">169</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"fff"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>) },
+<a class="jxr_linenumber" name="170" href="#170">170</a>     });
+<a class="jxr_linenumber" name="171" href="#171">171</a>   }
+<a class="jxr_linenumber" name="172" href="#172">172</a>
+<a class="jxr_linenumber" name="173" href="#173">173</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="174" href="#174">174</a> <em class="jxr_javadoccomment">   * Test loading into a column family that has a ROWCOL bloom filter.</em>
+<a class="jxr_linenumber" name="175" href="#175">175</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="176" href="#176">176</a>   @Test(timeout = 120000)
+<a class="jxr_linenumber" name="177" href="#177">177</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingRowColBloom() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="178" href="#178">178</a>     runTest(<span class="jxr_string">"testRegionCrossingLoadRowColBloom"</span>, BloomType.ROWCOL,
+<a class="jxr_linenumber" name="179" href="#179">179</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
+<a class="jxr_linenumber" name="180" href="#180">180</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"eee"</span>) },
+<a class="jxr_linenumber" name="181" href="#181">181</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"fff"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>) },
+<a class="jxr_linenumber" name="182" href="#182">182</a>     });
+<a class="jxr_linenumber" name="183" href="#183">183</a>   }
+<a class="jxr_linenumber" name="184" href="#184">184</a>
+<a class="jxr_linenumber" name="185" href="#185">185</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="186" href="#186">186</a> <em class="jxr_javadoccomment">   * Test case that creates some regions and loads HFiles that have</em>
+<a class="jxr_linenumber" name="187" href="#187">187</a> <em class="jxr_javadoccomment">   * different region boundaries than the table pre-split.</em>
+<a class="jxr_linenumber" name="188" href="#188">188</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="189" href="#189">189</a>   @Test(timeout = 120000)
+<a class="jxr_linenumber" name="190" href="#190">190</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSimpleHFileSplit() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="191" href="#191">191</a>     runTest(<span class="jxr_string">"testHFileSplit"</span>, BloomType.NONE,
+<a class="jxr_linenumber" name="192" href="#192">192</a>         <strong class="jxr_keyword">new</strong> byte[][] {
+<a class="jxr_linenumber" name="193" href="#193">193</a>           Bytes.toBytes(<span class="jxr_string">"aaa"</span>), Bytes.toBytes(<span class="jxr_string">"fff"</span>), Bytes.toBytes(<span class="jxr_string">"jjj"</span>),
+<a class="jxr_linenumber" name="194" href="#194">194</a>           Bytes.toBytes(<span class="jxr_string">"ppp"</span>), Bytes.toBytes(<span class="jxr_string">"uuu"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>),
+<a class="jxr_linenumber" name="195" href="#195">195</a>         },
+<a class="jxr_linenumber" name="196" href="#196">196</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
+<a class="jxr_linenumber" name="197" href="#197">197</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"lll"</span>) },
+<a class="jxr_linenumber" name="198" href="#198">198</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"mmm"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>) },
+<a class="jxr_linenumber" name="199" href="#199">199</a>         }
+<a class="jxr_linenumber" name="200" href="#200">200</a>     );
+<a class="jxr_linenumber" name="201" href="#201">201</a>   }
+<a class="jxr_linenumber" name="202" href="#202">202</a>
+<a class="jxr_linenumber" name="203" href="#203">203</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="204" href="#204">204</a> <em class="jxr_javadoccomment">   * Test case that creates some regions and loads HFiles that cross the boundaries</em>
+<a class="jxr_linenumber" name="205" href="#205">205</a> <em class="jxr_javadoccomment">   * and have different region boundaries than the table pre-split.</em>
+<a class="jxr_linenumber" name="206" href="#206">206</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="207" href="#207">207</a>   @Test(timeout = 60000)
+<a class="jxr_linenumber" name="208" href="#208">208</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingHFileSplit() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="209" href="#209">209</a>     testRegionCrossingHFileSplit(BloomType.NONE);
+<a class="jxr_linenumber" name="210" href="#210">210</a>   }
+<a class="jxr_linenumber" name="211" href="#211">211</a>
+<a class="jxr_linenumber" name="212" href="#212">212</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="213" href="#213">213</a> <em class="jxr_javadoccomment">   * Test case that creates some regions and loads HFiles that cross the boundaries</em>
+<a class="jxr_linenumber" name="214" href="#214">214</a> <em class="jxr_javadoccomment">   * have a ROW bloom filter and a different region boundaries than the table pre-split.</em>
+<a class="jxr_linenumber" name="215" href="#215">215</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="216" href="#216">216</a>   @Test(timeout = 120000)
+<a class="jxr_linenumber" name="217" href="#217">217</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingHFileSplitRowBloom() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="218" href="#218">218</a>     testRegionCrossingHFileSplit(BloomType.ROW);
+<a class="jxr_linenumber" name="219" href="#219">219</a>   }
+<a class="jxr_linenumber" name="220" href="#220">220</a>
+<a class="jxr_linenumber" name="221" href="#221">221</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="222" href="#222">222</a> <em class="jxr_javadoccomment">   * Test case that creates some regions and loads HFiles that cross the boundaries</em>
+<a class="jxr_linenumber" name="223" href="#223">223</a> <em class="jxr_javadoccomment">   * have a ROWCOL bloom filter and a different region boundaries than the table pre-split.</em>
+<a class="jxr_linenumber" name="224" href="#224">224</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="225" href="#225">225</a>   @Test(timeout = 120000)
+<a class="jxr_linenumber" name="226" href="#226">226</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingHFileSplitRowColBloom() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="227" href="#227">227</a>     testRegionCrossingHFileSplit(BloomType.ROWCOL);
+<a class="jxr_linenumber" name="228" href="#228">228</a>   }
+<a class="jxr_linenumber" name="229" href="#229">229</a>
+<a class="jxr_linenumber" name="230" href="#230">230</a>   @Test
+<a class="jxr_linenumber" name="231" href="#231">231</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSplitALot() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="232" href="#232">232</a>     runTest(<span class="jxr_string">"testSplitALot"</span>, BloomType.NONE,
+<a class="jxr_linenumber" name="233" href="#233">233</a>       <strong class="jxr_keyword">new</strong> byte[][] {
+<a class="jxr_linenumber" name="234" href="#234">234</a>         Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"bbb"</span>),
+<a class="jxr_linenumber" name="235" href="#235">235</a>         Bytes.toBytes(<span class="jxr_string">"ccc"</span>), Bytes.toBytes(<span class="jxr_string">"ddd"</span>),
+<a class="jxr_linenumber" name="236" href="#236">236</a>         Bytes.toBytes(<span class="jxr_string">"eee"</span>), Bytes.toBytes(<span class="jxr_string">"fff"</span>),
+<a class="jxr_linenumber" name="237" href="#237">237</a>         Bytes.toBytes(<span class="jxr_string">"ggg"</span>), Bytes.toBytes(<span class="jxr_string">"hhh"</span>),
+<a class="jxr_linenumber" name="238" href="#238">238</a>         Bytes.toBytes(<span class="jxr_string">"iii"</span>), Bytes.toBytes(<span class="jxr_string">"lll"</span>),
+<a class="jxr_linenumber" name="239" href="#239">239</a>         Bytes.toBytes(<span class="jxr_string">"mmm"</span>), Bytes.toBytes(<span class="jxr_string">"nnn"</span>),
+<a class="jxr_linenumber" name="240" href="#240">240</a>         Bytes.toBytes(<span class="jxr_string">"ooo"</span>), Bytes.toBytes(<span class="jxr_string">"ppp"</span>),
+<a class="jxr_linenumber" name="241" href="#241">241</a>         Bytes.toBytes(<span class="jxr_string">"qqq"</span>), Bytes.toBytes(<span class="jxr_string">"rrr"</span>),
+<a class="jxr_linenumber" name="242" href="#242">242</a>         Bytes.toBytes(<span class="jxr_string">"sss"</span>), Bytes.toBytes(<span class="jxr_string">"ttt"</span>),
+<a class="jxr_linenumber" name="243" href="#243">243</a>         Bytes.toBytes(<span class="jxr_string">"uuu"</span>), Bytes.toBytes(<span class="jxr_string">"vvv"</span>),
+<a class="jxr_linenumber" name="244" href="#244">244</a>         Bytes.toBytes(<span class="jxr_string">"zzz"</span>),
+<a class="jxr_linenumber" name="245" href="#245">245</a>       },
+<a class="jxr_linenumber" name="246" href="#246">246</a>       <strong class="jxr_keyword">new</strong> byte[][][] {
+<a class="jxr_linenumber" name="247" href="#247">247</a>         <strong class="jxr_keyword">new</strong> byte[][] { Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>) },
+<a class="jxr_linenumber" name="248" href="#248">248</a>       }
+<a class="jxr_linenumber" name="249" href="#249">249</a>     );
+<a class="jxr_linenumber" name="250" href="#250">250</a>   }
+<a class="jxr_linenumber" name="251" href="#251">251</a>
+<a class="jxr_linenumber" name="252" href="#252">252</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testRegionCrossingHFileSplit(BloomType bloomType) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="253" href="#253">253</a>     runTest(<span class="jxr_string">"testHFileSplit"</span> + bloomType + <span class="jxr_string">"Bloom"</span>, bloomType,
+<a class="jxr_linenumber" name="254" href="#254">254</a>         <strong class="jxr_keyword">new</strong> byte[][] {
+<a class="jxr_linenumber" name="255" href="#255">255</a>           Bytes.toBytes(<span class="jxr_string">"aaa"</span>), Bytes.toBytes(<span class="jxr_string">"fff"</span>), Bytes.toBytes(<span class="jxr_string">"jjj"</span>),
+<a class="jxr_linenumber" name="256" href="#256">256</a>           Bytes.toBytes(<span class="jxr_string">"ppp"</span>), Bytes.toBytes(<span class="jxr_string">"uuu"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>),
+<a class="jxr_linenumber" name="257" href="#257">257</a>         },
+<a class="jxr_linenumber" name="258" href="#258">258</a>         <strong class="jxr_keyword">new</strong> byte[][][] {
+<a class="jxr_linenumber" name="259" href="#259">259</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"aaaa"</span>), Bytes.toBytes(<span class="jxr_string">"eee"</span>) },
+<a class="jxr_linenumber" name="260" href="#260">260</a>           <strong class="jxr_keyword">new</strong> byte[][]{ Bytes.toBytes(<span class="jxr_string">"fff"</span>), Bytes.toBytes(<span class="jxr_string">"zzz"</span>) },
+<a class="jxr_linenumber" name="261" href="#261">261</a>         }
+<a class="jxr_linenumber" name="262" href="#262">262</a>     );
+<a class="jxr_linenumber" name="263" href="#263">263</a>   }
+<a class="jxr_linenumber" name="264" href="#264">264</a>
+<a class="jxr_linenumber" name="265" href="#265">265</a>   <strong class="jxr_keyword">private</strong> HTableDescriptor buildHTD(TableName tableName, BloomType bloomType) {
+<a class="jxr_linenumber" name="266" href="#266">266</a>     HTableDescriptor htd = <strong class="jxr_keyword">new</strong> HTableDescriptor(tableName);
+<a class="jxr_linenumber" name="267" href="#267">267</a>     HColumnDescriptor familyDesc = <strong class="jxr_keyword">new</strong> HColumnDescriptor(FAMILY);
+<a class="jxr_linenumber" name="268" href="#268">268</a>     familyDesc.setBloomFilterType(bloomType);
+<a class="jxr_linenumber" name="269" href="#269">269</a>     htd.addFamily(familyDesc);
+<a class="jxr_linenumber" name="270" href="#270">270</a>     <strong class="jxr_keyword">return</strong> htd;
+<a class="jxr_linenumber" name="271" href="#271">271</a>   }
+<a class="jxr_linenumber" name="272" href="#272">272</a>
+<a class="jxr_linenumber" name="273" href="#273">273</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runTest(String testName, BloomType bloomType,
+<a class="jxr_linenumber" name="274" href="#274">274</a>       byte[][][] hfileRanges) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="275" href="#275">275</a>     runTest(testName, bloomType, <strong class="jxr_keyword">null</strong>, hfileRanges);
+<a class="jxr_linenumber" name="276" href="#276">276</a>   }
+<a class="jxr_linenumber" name="277" href="#277">277</a>
+<a class="jxr_linenumber" name="278" href="#278">278</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runTest(String testName, BloomType bloomType,
+<a class="jxr_linenumber" name="279" href="#279">279</a>       byte[][][] hfileRanges, <strong class="jxr_keyword">boolean</strong> useMap) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="280" href="#280">280</a>     runTest(testName, bloomType, <strong class="jxr_keyword">null</strong>, hfileRanges, useMap);
+<a class="jxr_linenumber" name="281" href="#281">281</a>   }
+<a class="jxr_linenumber" name="282" href="#282">282</a>
+<a class="jxr_linenumber" name="283" href="#283">283</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runTest(String testName, BloomType bloomType,
+<a class="jxr_linenumber" name="284" href="#284">284</a>       byte[][] tableSplitKeys, byte[][][] hfileRanges) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="285" href="#285">285</a>     runTest(testName, bloomType, tableSplitKeys, hfileRanges, false);
+<a class="jxr_linenumber" name="286" href="#286">286</a>   }
+<a class="jxr_linenumber" name="287" href="#287">287</a>
+<a class="jxr_linenumber" name="288" href="#288">288</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runTest(String testName, BloomType bloomType,
+<a class="jxr_linenumber" name="289" href="#289">289</a>       byte[][] tableSplitKeys, byte[][][] hfileRanges, <strong class="jxr_keyword">boolean</strong> useMap) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="290" href="#290">290</a>     <strong class="jxr_keyword">final</strong> byte[] TABLE_NAME = Bytes.toBytes(<span class="jxr_string">"mytable_"</span>+testName);
+<a class="jxr_linenumber" name="291" href="#291">291</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> preCreateTable = tableSplitKeys != <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="292" href="#292">292</a>
+<a class="jxr_linenumber" name="293" href="#293">293</a>     <em class="jxr_comment">// Run the test bulkloading the table to the default namespace</em>
+<a class="jxr_linenumber" name="294" href="#294">294</a>     <strong class="jxr_keyword">final</strong> TableName TABLE_WITHOUT_NS = TableName.valueOf(TABLE_NAME);
+<a class="jxr_linenumber" name="295" href="#295">295</a>     runTest(testName, TABLE_WITHOUT_NS, bloomType, preCreateTable, tableSplitKeys, hfileRanges,
+<a class="jxr_linenumber" name="296" href="#296">296</a>         useMap);
+<a class="jxr_linenumber" name="297" href="#297">297</a>
+<a class="jxr_linenumber" name="298" href="#298">298</a>     <em class="jxr_comment">// Run the test bulkloading the table to the specified namespace</em>
+<a class="jxr_linenumber" name="299" href="#299">299</a>     <strong class="jxr_keyword">final</strong> TableName TABLE_WITH_NS = TableName.valueOf(Bytes.toBytes(NAMESPACE), TABLE_NAME);
+<a class="jxr_linenumber" name="300" href="#300">300</a>     runTest(testName, TABLE_WITH_NS, bloomType, preCreateTable, tableSplitKeys, hfileRanges,
+<a class="jxr_linenumber" name="301" href="#301">301</a>         useMap);
+<a class="jxr_linenumber" name="302" href="#302">302</a>   }
+<a class="jxr_linenumber" name="303" href="#303">303</a>
+<a class="jxr_linenumber" name="304" href="#304">304</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runTest(String testName, TableName tableName, BloomType bloomType,
+<a class="jxr_linenumber" name="305" href="#305">305</a>       <strong class="jxr_keyword">boolean</strong> preCreateTable, byte[][] tableSplitKeys, byte[][][] hfileRanges, <strong class="jxr_keyword">boolean</strong> useMap)
+<a class="jxr_linenumber" name="306" href="#306">306</a>           <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="307" href="#307">307</a>     HTableDescriptor htd = buildHTD(tableName, bloomType);
+<a class="jxr_linenumber" name="308" href="#308">308</a>     runTest(testName, htd, bloomType, preCreateTable, tableSplitKeys, hfileRanges, useMap, false);
+<a class="jxr_linenumber" name="309" href="#309">309</a>   }
+<a class="jxr_linenumber" name="310" href="#310">310</a>
+<a class="jxr_linenumber" name="311" href="#311">311</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> runTest(String testName, HTableDescriptor htd, BloomType bloomType,
+<a class="jxr_linenumber" name="312" href="#312">312</a>       <strong class="jxr_keyword">boolean</strong> preCreateTable, byte[][] tableSplitKeys, byte[][][] hfileRanges, <strong class="jxr_keyword">boolean</strong> useMap,
+<a class="jxr_linenumber" name="313" href="#313">313</a>       <strong class="jxr_keyword">boolean</strong> copyFiles) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="314" href="#314">314</a>     Path dir = util.getDataTestDirOnTestFS(testName);
+<a class="jxr_linenumber" name="315" href="#315">315</a>     FileSystem fs = util.getTestFileSystem();
+<a class="jxr_linenumber" name="316" href="#316">316</a>     dir = dir.makeQualified(fs);
+<a class="jxr_linenumber" name="317" href="#317">317</a>     Path familyDir = <strong class="jxr_keyword">new</strong> Path(dir, Bytes.toString(FAMILY));
+<a class="jxr_linenumber" name="318" href="#318">318</a>
+<a class="jxr_linenumber" name="319" href="#319">319</a>     <strong class="jxr_keyword">int</strong> hfileIdx = 0;
+<a class="jxr_linenumber" name="320" href="#320">320</a>     Map&lt;byte[], List&lt;Path&gt;&gt; map = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="321" href="#321">321</a>     List&lt;Path&gt; list = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="322" href="#322">322</a>     <strong class="jxr_keyword">if</strong> (useMap || copyFiles) {
+<a class="jxr_linenumber" name="323" href="#323">323</a>       list = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
+<a class="jxr_linenumber" name="324" href="#324">324</a>     }
+<a class="jxr_linenumber" name="325" href="#325">325</a>     <strong class="jxr_keyword">if</strong> (useMap) {
+<a class="jxr_linenumber" name="326" href="#326">326</a>       map = <strong class="jxr_keyword">new</strong> TreeMap&lt;byte[], List&lt;Path&gt;&gt;(Bytes.BYTES_COMPARATOR);
+<a class="jxr_linenumber" name="327" href="#327">327</a>       map.put(FAMILY, list);
+<a class="jxr_linenumber" name="328" href="#328">328</a>     }
+<a class="jxr_linenumber" name="329" href="#329">329</a>     Path last = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="330" href="#330">330</a>     <strong class="jxr_keyword">for</strong> (byte[][] range : hfileRanges) {
+<a class="jxr_linenumber" name="331" href="#331">331</a>       byte[] from = range[0];
+<a class="jxr_linenumber" name="332" href="#332">332</a>       byte[] to = range[1];
+<a class="jxr_linenumber" name="333" href="#333">333</a>       Path path = <strong class="jxr_keyword">new</strong> Path(familyDir, <span class="jxr_string">"hfile_"</span> + hfileIdx++);
+<a class="jxr_linenumber" name="334" href="#334">334</a>       HFileTestUtil.createHFile(util.getConfiguration(), fs, path, FAMILY, QUALIFIER, from, to, 1000);
+<a class="jxr_linenumber" name="335" href="#335">335</a>       <strong class="jxr_keyword">if</strong> (useMap) {
+<a class="jxr_linenumber" name="336" href="#336">336</a>         last = path;
+<a class="jxr_linenumber" name="337" href="#337">337</a>         list.add(path);
+<a class="jxr_linenumber" name="338" href="#338">338</a>       }
+<a class="jxr_linenumber" name="339" href="#339">339</a>     }
+<a class="jxr_linenumber" name="340" href="#340">340</a>     <strong class="jxr_keyword">int</strong> expectedRows = hfileIdx * 1000;
+<a class="jxr_linenumber" name="341" href="#341">341</a>
+<a class="jxr_linenumber" name="342" href="#342">342</a>     <strong class="jxr_keyword">if</strong> (preCreateTable || map != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="343" href="#343">343</a>       util.getHBaseAdmin().createTable(htd, tableSplitKeys);
+<a class="jxr_linenumber" name="344" href="#344">344</a>     }
+<a class="jxr_linenumber" name="345" href="#345">345</a>
+<a class="jxr_linenumber" name="346" href="#346">346</a>     <strong class="jxr_keyword">final</strong> TableName tableName = htd.getTableName();
+<a class="jxr_linenumber" name="347" href="#347">347</a>     Configuration conf = util.getConfiguration();
+<a class="jxr_linenumber" name="348" href="#348">348</a>     <strong class="jxr_keyword">if</strong> (copyFiles) {
+<a class="jxr_linenumber" name="349" href="#349">349</a>       conf.setBoolean(LoadIncrementalHFiles.ALWAYS_COPY_FILES, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="350" href="#350">350</a>     }
+<a class="jxr_linenumber" name="351" href="#351">351</a>     LoadIncrementalHFiles loader = <strong class="jxr_keyword">new</strong> LoadIncrementalHFiles(conf);
+<a class="jxr_linenumber" name="352" href="#352">352</a>     String [] args= {dir.toString(), tableName.toString()};
+<a class="jxr_linenumber" name="353" href="#353">353</a>     <strong class="jxr_keyword">if</strong> (useMap) {
+<a class="jxr_linenumber" name="354" href="#354">354</a>       fs.delete(last);
+<a class="jxr_linenumber" name="355" href="#355">355</a>       Map&lt;LoadQueueItem, ByteBuffer&gt; loaded = loader.run(<strong class="jxr_keyword">null</strong>, map, tableName);
+<a class="jxr_linenumber" name="356" href="#356">356</a>       expectedRows -= 1000;
+<a class="jxr_linenumber" name="357" href="#357">357</a>       <strong class="jxr_keyword">for</strong> (LoadQueueItem item : loaded.keySet()) {
+<a class="jxr_linenumber" name="358" href="#358">358</a>         <strong class="jxr_keyword">if</strong> (item.hfilePath.getName().equals(last.getName())) {
+<a class="jxr_linenumber" name="359" href="#359">359</a>           fail(last + <span class="jxr_string">" should be missing"</span>);
+<a class="jxr_linenumber" name="360" href="#360">360</a>         }
+<a class="jxr_linenumber" name="361" href="#361">361</a>       }
+<a class="jxr_linenumber" name=

<TRUNCATED>

[32/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index f082317..11ac63a 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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -317,7 +317,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 


[28/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/mapreduce/class-use/LoadIncrementalHFiles.LoadQueueItem.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/class-use/LoadIncrementalHFiles.LoadQueueItem.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/class-use/LoadIncrementalHFiles.LoadQueueItem.html
index f674375..14e6f20 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/class-use/LoadIncrementalHFiles.LoadQueueItem.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/class-use/LoadIncrementalHFiles.LoadQueueItem.html
@@ -110,6 +110,18 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#doBulkLoad-java.util.Map-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-boolean-boolean-">doBulkLoad</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
+          <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+          <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+          <a href="../../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,
+          boolean&nbsp;silence,
+          boolean&nbsp;copyFile)</code>
+<div class="block">Perform a bulk load of the given directory into the given
+ pre-existing table.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#groupOrSplit-com.google.common.collect.Multimap-org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.util.Pair-">groupOrSplit</a></span>(com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups,
             <a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&nbsp;item,
@@ -118,21 +130,37 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Attempt to assign the given load queue item into its target region group.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#groupOrSplitPhase-org.apache.hadoop.hbase.client.Table-java.util.concurrent.ExecutorService-java.util.Deque-org.apache.hadoop.hbase.util.Pair-">groupOrSplitPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
                  <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[][],byte[][]&gt;&nbsp;startEndKeys)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#performBulkLoad-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-java.util.Deque-java.util.concurrent.ExecutorService-org.apache.hadoop.hbase.client.SecureBulkLoadClient-boolean-">performBulkLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+               <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+               <a href="../../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
+               <a href="../../../../../../org/apache/hadoop/hbase/client/SecureBulkLoadClient.html" title="class in org.apache.hadoop.hbase.client">SecureBulkLoadClient</a>&nbsp;secureClient,
+               boolean&nbsp;copyFile)</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#run-java.lang.String-java.util.Map-org.apache.hadoop.hbase.TableName-">run</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dirPath,
+   <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
+   <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#splitStoreFile-org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem-org.apache.hadoop.hbase.client.Table-byte:A-byte:A-">splitStoreFile</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&nbsp;item,
               <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
               byte[]&nbsp;startKey,
               byte[]&nbsp;splitKey)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#tryAtomicRegionLoad-org.apache.hadoop.hbase.client.Connection-org.apache.hadoop.hbase.TableName-byte:A-java.util.Collection-boolean-">tryAtomicRegionLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                    <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -178,40 +206,55 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
              <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
              com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups,
-             boolean&nbsp;copyFile)</code>
+             boolean&nbsp;copyFile,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;item2RegionMap)</code>
 <div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
  them.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
              <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
              com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups,
-             boolean&nbsp;copyFile)</code>
+             boolean&nbsp;copyFile,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;item2RegionMap)</code>
 <div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
  them.</div>
 </td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+             <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
+             com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups,
+             boolean&nbsp;copyFile,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;item2RegionMap)</code>
+<div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
+ them.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#checkHFilesCountPerRegionPerFamily-com.google.common.collect.Multimap-">checkHFilesCountPerRegionPerFamily</a></span>(com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#cleanup-org.apache.hadoop.hbase.client.Admin-java.util.Deque-java.util.concurrent.ExecutorService-org.apache.hadoop.hbase.client.SecureBulkLoadClient-">cleanup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
        <a href="../../../../../../org/apache/hadoop/hbase/client/SecureBulkLoadClient.html" title="class in org.apache.hadoop.hbase.client">SecureBulkLoadClient</a>&nbsp;secureClient)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#discoverLoadQueue-java.util.Deque-org.apache.hadoop.fs.Path-boolean-">discoverLoadQueue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;ret,
                  org.apache.hadoop.fs.Path&nbsp;hfofDir,
@@ -220,7 +263,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  containing all such files.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#groupOrSplit-com.google.common.collect.Multimap-org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.util.Pair-">groupOrSplit</a></span>(com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups,
             <a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&nbsp;item,
@@ -229,14 +272,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Attempt to assign the given load queue item into its target region group.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#groupOrSplitPhase-org.apache.hadoop.hbase.client.Table-java.util.concurrent.ExecutorService-java.util.Deque-org.apache.hadoop.hbase.util.Pair-">groupOrSplitPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
                  <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[][],byte[][]&gt;&nbsp;startEndKeys)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#loadHFileQueue-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.Deque-org.apache.hadoop.hbase.util.Pair-">loadHFileQueue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
               <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
@@ -245,7 +288,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Used by the replication sink to load the hfiles from the source cluster.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#loadHFileQueue-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.Deque-org.apache.hadoop.hbase.util.Pair-boolean-">loadHFileQueue</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
               <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
@@ -255,8 +298,8 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Used by the replication sink to load the hfiles from the source cluster.</div>
 </td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#performBulkLoad-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-java.util.Deque-java.util.concurrent.ExecutorService-org.apache.hadoop.hbase.client.SecureBulkLoadClient-boolean-">performBulkLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
                <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                <a href="../../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,
@@ -265,12 +308,12 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
                <a href="../../../../../../org/apache/hadoop/hbase/client/SecureBulkLoadClient.html" title="class in org.apache.hadoop.hbase.client">SecureBulkLoadClient</a>&nbsp;secureClient,
                boolean&nbsp;copyFile)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#populateLoadQueue-java.util.Deque-java.util.Map-">populateLoadQueue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;ret,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#prepareHFileQueue-java.util.Map-org.apache.hadoop.hbase.client.Table-java.util.Deque-boolean-">prepareHFileQueue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
                  <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
@@ -281,7 +324,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  families in it.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#prepareHFileQueue-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.client.Table-java.util.Deque-boolean-">prepareHFileQueue</a></span>(org.apache.hadoop.fs.Path&nbsp;hfilesDir,
                  <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
@@ -292,7 +335,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  families in it.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#prepareHFileQueue-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.client.Table-java.util.Deque-boolean-boolean-">prepareHFileQueue</a></span>(org.apache.hadoop.fs.Path&nbsp;hfilesDir,
                  <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
@@ -304,7 +347,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
  families in it.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#tryAtomicRegionLoad-org.apache.hadoop.hbase.client.Connection-org.apache.hadoop.hbase.TableName-byte:A-java.util.Collection-boolean-">tryAtomicRegionLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                    <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -314,7 +357,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block">Attempts to do an atomic load of many hfiles into a region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#validateFamiliesInHFiles-org.apache.hadoop.hbase.client.Table-java.util.Deque-boolean-">validateFamiliesInHFiles</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html b/devapidocs/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html
index 072a563..5445fa2 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html
@@ -283,8 +283,8 @@ implements <a href="../../../../../org/apache/hadoop/hbase/replication/Replicati
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#moveQueueUsingMulti-java.lang.String-java.lang.String-">moveQueueUsingMulti</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;znode,
                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
-<div class="block">It "atomically" copies all the wals queues from another region server and returns them all
- sorted per peer cluster (appended with the dead server's znode).</div>
+<div class="block">It "atomically" copies one peer's wals queue from another dead region server and returns them
+ all sorted.</div>
 </td>
 </tr>
 <tr id="i11" class="rowColor">
@@ -678,10 +678,10 @@ implements <a href="../../../../../org/apache/hadoop/hbase/replication/Replicati
 <ul class="blockList">
 <li class="blockList">
 <h4>moveQueueUsingMulti</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#line.258">moveQueueUsingMulti</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;znode,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#line.259">moveQueueUsingMulti</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;znode,
                                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</pre>
-<div class="block">It "atomically" copies all the wals queues from another region server and returns them all
- sorted per peer cluster (appended with the dead server's znode).</div>
+<div class="block">It "atomically" copies one peer's wals queue from another dead region server and returns them
+ all sorted. The new peer id is equal to the old peer id appended with the dead server's znode.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>znode</code> - pertaining to the region server to copy the queues from</dd>
@@ -694,7 +694,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/replication/Replicati
 <ul class="blockList">
 <li class="blockList">
 <h4>addHFileRefs</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#line.314">addHFileRefs</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#line.322">addHFileRefs</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;files)
                   throws <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationQueues.html#addHFileRefs-java.lang.String-java.util.List-">ReplicationQueues</a></code></span></div>
@@ -716,7 +716,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/replication/Replicati
 <ul class="blockList">
 <li class="blockList">
 <h4>removeHFileRefs</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#line.338">removeHFileRefs</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#line.346">removeHFileRefs</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;files)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationQueues.html#removeHFileRefs-java.lang.String-java.util.List-">ReplicationQueues</a></code></span></div>
 <div class="block">Remove hfile references from the queue.</div>
@@ -735,7 +735,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/replication/Replicati
 <ul class="blockList">
 <li class="blockList">
 <h4>addPeerToHFileRefs</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#line.361">addPeerToHFileRefs</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#line.369">addPeerToHFileRefs</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                         throws <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationQueues.html#addPeerToHFileRefs-java.lang.String-">ReplicationQueues</a></code></span></div>
 <div class="block">Add a peer to hfile reference queue if peer does not exist.</div>
@@ -755,7 +755,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/replication/Replicati
 <ul class="blockListLast">
 <li class="blockList">
 <h4>removePeerFromHFileRefs</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#line.375">removePeerFromHFileRefs</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#line.383">removePeerFromHFileRefs</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationQueues.html#removePeerFromHFileRefs-java.lang.String-">ReplicationQueues</a></code></span></div>
 <div class="block">Remove a peer from hfile reference queue.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
index 7ee5abb..cdc0286 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
@@ -393,40 +393,40 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.112">m_master</a></pre>
 </li>
 </ul>
-<a name="m_frags">
+<a name="m_filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_frags</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.124">m_frags</a></pre>
+<h4>m_filter</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.124">m_filter</a></pre>
 </li>
 </ul>
-<a name="m_frags__IsNotDefault">
+<a name="m_filter__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_frags__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.129">m_frags__IsNotDefault</a></pre>
+<h4>m_filter__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.129">m_filter__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_metaLocation">
+<a name="m_deadServers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_metaLocation</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.141">m_metaLocation</a></pre>
+<h4>m_deadServers</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.141">m_deadServers</a></pre>
 </li>
 </ul>
-<a name="m_metaLocation__IsNotDefault">
+<a name="m_deadServers__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_metaLocation__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.146">m_metaLocation__IsNotDefault</a></pre>
+<h4>m_deadServers__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.146">m_deadServers__IsNotDefault</a></pre>
 </li>
 </ul>
 <a name="m_catalogJanitorEnabled">
@@ -447,112 +447,112 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.163">m_catalogJanitorEnabled__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_deadServers">
+<a name="m_format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_deadServers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.175">m_deadServers</a></pre>
+<h4>m_format</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.175">m_format</a></pre>
 </li>
 </ul>
-<a name="m_deadServers__IsNotDefault">
+<a name="m_format__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_deadServers__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.180">m_deadServers__IsNotDefault</a></pre>
+<h4>m_format__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.180">m_format__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_assignmentManager">
+<a name="m_serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_assignmentManager</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.192">m_assignmentManager</a></pre>
+<h4>m_serverManager</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.192">m_serverManager</a></pre>
 </li>
 </ul>
-<a name="m_assignmentManager__IsNotDefault">
+<a name="m_serverManager__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_assignmentManager__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.197">m_assignmentManager__IsNotDefault</a></pre>
+<h4>m_serverManager__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.197">m_serverManager__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_servers">
+<a name="m_frags">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_servers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.209">m_servers</a></pre>
+<h4>m_frags</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.209">m_frags</a></pre>
 </li>
 </ul>
-<a name="m_servers__IsNotDefault">
+<a name="m_frags__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_servers__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.214">m_servers__IsNotDefault</a></pre>
+<h4>m_frags__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.214">m_frags__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_format">
+<a name="m_metaLocation">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.226">m_format</a></pre>
+<h4>m_metaLocation</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.226">m_metaLocation</a></pre>
 </li>
 </ul>
-<a name="m_format__IsNotDefault">
+<a name="m_metaLocation__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.231">m_format__IsNotDefault</a></pre>
+<h4>m_metaLocation__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.231">m_metaLocation__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_filter">
+<a name="m_assignmentManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.243">m_filter</a></pre>
+<h4>m_assignmentManager</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.243">m_assignmentManager</a></pre>
 </li>
 </ul>
-<a name="m_filter__IsNotDefault">
+<a name="m_assignmentManager__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.248">m_filter__IsNotDefault</a></pre>
+<h4>m_assignmentManager__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.248">m_assignmentManager__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_serverManager">
+<a name="m_servers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_serverManager</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.260">m_serverManager</a></pre>
+<h4>m_servers</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.260">m_servers</a></pre>
 </li>
 </ul>
-<a name="m_serverManager__IsNotDefault">
+<a name="m_servers__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>m_serverManager__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.265">m_serverManager__IsNotDefault</a></pre>
+<h4>m_servers__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.265">m_servers__IsNotDefault</a></pre>
 </li>
 </ul>
 </li>
@@ -598,58 +598,58 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.108">getMaster</a>()</pre>
 </li>
 </ul>
-<a name="setFrags-java.util.Map-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFrags</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.114">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;frags)</pre>
+<h4>setFilter</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.114">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
 </li>
 </ul>
-<a name="getFrags--">
+<a name="getFilter--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFrags</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.120">getFrags</a>()</pre>
+<h4>getFilter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.120">getFilter</a>()</pre>
 </li>
 </ul>
-<a name="getFrags__IsNotDefault--">
+<a name="getFilter__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFrags__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.125">getFrags__IsNotDefault</a>()</pre>
+<h4>getFilter__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.125">getFilter__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">
+<a name="setDeadServers-java.util.Set-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setMetaLocation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.131">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;metaLocation)</pre>
+<h4>setDeadServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.131">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;deadServers)</pre>
 </li>
 </ul>
-<a name="getMetaLocation--">
+<a name="getDeadServers--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getMetaLocation</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.137">getMetaLocation</a>()</pre>
+<h4>getDeadServers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.137">getDeadServers</a>()</pre>
 </li>
 </ul>
-<a name="getMetaLocation__IsNotDefault--">
+<a name="getDeadServers__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getMetaLocation__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.142">getMetaLocation__IsNotDefault</a>()</pre>
+<h4>getDeadServers__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.142">getDeadServers__IsNotDefault</a>()</pre>
 </li>
 </ul>
 <a name="setCatalogJanitorEnabled-boolean-">
@@ -679,166 +679,166 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.159">getCatalogJanitorEnabled__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setDeadServers-java.util.Set-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setDeadServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.165">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;deadServers)</pre>
+<h4>setFormat</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.165">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
 </li>
 </ul>
-<a name="getDeadServers--">
+<a name="getFormat--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getDeadServers</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.171">getDeadServers</a>()</pre>
+<h4>getFormat</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.171">getFormat</a>()</pre>
 </li>
 </ul>
-<a name="getDeadServers__IsNotDefault--">
+<a name="getFormat__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getDeadServers__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.176">getDeadServers__IsNotDefault</a>()</pre>
+<h4>getFormat__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.176">getFormat__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setAssignmentManager-org.apache.hadoop.hbase.master.AssignmentManager-">
+<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setAssignmentManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.182">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;assignmentManager)</pre>
+<h4>setServerManager</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.182">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;serverManager)</pre>
 </li>
 </ul>
-<a name="getAssignmentManager--">
+<a name="getServerManager--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getAssignmentManager</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.188">getAssignmentManager</a>()</pre>
+<h4>getServerManager</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.188">getServerManager</a>()</pre>
 </li>
 </ul>
-<a name="getAssignmentManager__IsNotDefault--">
+<a name="getServerManager__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getAssignmentManager__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.193">getAssignmentManager__IsNotDefault</a>()</pre>
+<h4>getServerManager__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.193">getServerManager__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setServers-java.util.List-">
+<a name="setFrags-java.util.Map-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.199">setServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers)</pre>
+<h4>setFrags</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.199">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;frags)</pre>
 </li>
 </ul>
-<a name="getServers--">
+<a name="getFrags--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServers</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.205">getServers</a>()</pre>
+<h4>getFrags</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.205">getFrags</a>()</pre>
 </li>
 </ul>
-<a name="getServers__IsNotDefault--">
+<a name="getFrags__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServers__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.210">getServers__IsNotDefault</a>()</pre>
+<h4>getFrags__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.210">getFrags__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.216">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
+<h4>setMetaLocation</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.216">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;metaLocation)</pre>
 </li>
 </ul>
-<a name="getFormat--">
+<a name="getMetaLocation--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.222">getFormat</a>()</pre>
+<h4>getMetaLocation</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.222">getMetaLocation</a>()</pre>
 </li>
 </ul>
-<a name="getFormat__IsNotDefault--">
+<a name="getMetaLocation__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.227">getFormat__IsNotDefault</a>()</pre>
+<h4>getMetaLocation__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.227">getMetaLocation__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setAssignmentManager-org.apache.hadoop.hbase.master.AssignmentManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.233">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
+<h4>setAssignmentManager</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.233">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;assignmentManager)</pre>
 </li>
 </ul>
-<a name="getFilter--">
+<a name="getAssignmentManager--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.239">getFilter</a>()</pre>
+<h4>getAssignmentManager</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.239">getAssignmentManager</a>()</pre>
 </li>
 </ul>
-<a name="getFilter__IsNotDefault--">
+<a name="getAssignmentManager__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.244">getFilter__IsNotDefault</a>()</pre>
+<h4>getAssignmentManager__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.244">getAssignmentManager__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
+<a name="setServers-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServerManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.250">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;serverManager)</pre>
+<h4>setServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.250">setServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers)</pre>
 </li>
 </ul>
-<a name="getServerManager--">
+<a name="getServers--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServerManager</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.256">getServerManager</a>()</pre>
+<h4>getServers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.256">getServers</a>()</pre>
 </li>
 </ul>
-<a name="getServerManager__IsNotDefault--">
+<a name="getServers__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>getServerManager__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.261">getServerManager__IsNotDefault</a>()</pre>
+<h4>getServers__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.261">getServers__IsNotDefault</a>()</pre>
 </li>
 </ul>
 </li>


[35/35] hbase-site git commit: Empty commit

Posted by st...@apache.org.
Empty commit


Project: http://git-wip-us.apache.org/repos/asf/hbase-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase-site/commit/36e5b7d6
Tree: http://git-wip-us.apache.org/repos/asf/hbase-site/tree/36e5b7d6
Diff: http://git-wip-us.apache.org/repos/asf/hbase-site/diff/36e5b7d6

Branch: refs/heads/asf-site
Commit: 36e5b7d692c14b6593d4c22f58ef4e4346bbaaf5
Parents: f17356a
Author: Michael Stack <st...@apache.org>
Authored: Mon Nov 14 21:45:08 2016 -0800
Committer: Michael Stack <st...@apache.org>
Committed: Mon Nov 14 21:45:08 2016 -0800

----------------------------------------------------------------------

----------------------------------------------------------------------



[12/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/scaladocs/org/apache/hadoop/hbase/spark/HBaseConnectionCacheStat.html
----------------------------------------------------------------------
diff --git a/hbase-spark/scaladocs/org/apache/hadoop/hbase/spark/HBaseConnectionCacheStat.html b/hbase-spark/scaladocs/org/apache/hadoop/hbase/spark/HBaseConnectionCacheStat.html
new file mode 100644
index 0000000..f323fea
--- /dev/null
+++ b/hbase-spark/scaladocs/org/apache/hadoop/hbase/spark/HBaseConnectionCacheStat.html
@@ -0,0 +1,450 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html>
+        <head>
+          <title>HBaseConnectionCacheStat - Apache HBase - Spark 2.0.0-SNAPSHOT API - org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat</title>
+          <meta name="description" content="HBaseConnectionCacheStat - Apache HBase - Spark 2.0.0 - SNAPSHOT API - org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat" />
+          <meta name="keywords" content="HBaseConnectionCacheStat Apache HBase Spark 2.0.0 SNAPSHOT API org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat" />
+          <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+
+      <link href="../../../../../lib/template.css" media="screen" type="text/css" rel="stylesheet" />
+      <link href="../../../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css" />
+      <script type="text/javascript">
+         if(top === self) {
+            var url = '../../../../../index.html';
+            var hash = 'org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat';
+            var anchor = window.location.hash;
+            var anchor_opt = '';
+            if (anchor.length >= 1)
+              anchor_opt = '@' + anchor.substring(1);
+            window.location.href = url + '#' + hash + anchor_opt;
+         }
+	  </script>
+
+        </head>
+        <body class="type">
+      <div id="definition">
+        <img src="../../../../../lib/class_big.png" />
+        <p id="owner"><a href="../../../../package.html" class="extype" name="org">org</a>.<a href="../../../package.html" class="extype" name="org.apache">apache</a>.<a href="../../package.html" class="extype" name="org.apache.hadoop">hadoop</a>.<a href="../package.html" class="extype" name="org.apache.hadoop.hbase">hbase</a>.<a href="package.html" class="extype" name="org.apache.hadoop.hbase.spark">spark</a></p>
+        <h1>HBaseConnectionCacheStat</h1>
+      </div>
+
+      <h4 id="signature" class="signature">
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">case class</span>
+      </span>
+      <span class="symbol">
+        <span class="name">HBaseConnectionCacheStat</span><span class="params">(<span name="numTotalRequests">numTotalRequests: <span class="extype" name="scala.Long">Long</span></span>, <span name="numActualConnectionsCreated">numActualConnectionsCreated: <span class="extype" name="scala.Long">Long</span></span>, <span name="numActiveConnections">numActiveConnections: <span class="extype" name="scala.Long">Long</span></span>)</span><span class="result"> extends <span class="extype" name="scala.Product">Product</span> with <span class="extype" name="scala.Serializable">Serializable</span></span>
+      </span>
+      </h4>
+
+          <div id="comment" class="fullcommenttop"><div class="comment cmt"><p>To log the state of 'HBaseConnectionCache'
+</p></div><dl class="paramcmts block"><dt class="param">numTotalRequests</dt><dd class="cmt"><p>number of total connection requests to the cache</p></dd><dt class="param">numActualConnectionsCreated</dt><dd class="cmt"><p>number of actual HBase connections the cache ever created</p></dd><dt class="param">numActiveConnections</dt><dd class="cmt"><p>number of current alive HBase connections the cache is holding
+</p></dd></dl><div class="toggleContainer block">
+          <span class="toggle">Linear Supertypes</span>
+          <div class="superTypes hiddenContent"><span class="extype" name="scala.Serializable">Serializable</span>, <span class="extype" name="java.io.Serializable">Serializable</span>, <span class="extype" name="scala.Product">Product</span>, <span class="extype" name="scala.Equals">Equals</span>, <span class="extype" name="scala.AnyRef">AnyRef</span>, <span class="extype" name="scala.Any">Any</span></div>
+        </div></div>
+
+
+      <div id="mbrsel">
+        <div id="textfilter"><span class="pre"></span><span class="input"><input id="mbrsel-input" type="text" accesskey="/" /></span><span class="post"></span></div>
+        <div id="order">
+              <span class="filtertype">Ordering</span>
+              <ol>
+
+                <li class="alpha in"><span>Alphabetic</span></li>
+                <li class="inherit out"><span>By inheritance</span></li>
+              </ol>
+            </div>
+        <div id="ancestors">
+                <span class="filtertype">Inherited<br />
+                </span>
+                <ol id="linearization">
+                  <li class="in" name="org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat"><span>HBaseConnectionCacheStat</span></li><li class="in" name="scala.Serializable"><span>Serializable</span></li><li class="in" name="java.io.Serializable"><span>Serializable</span></li><li class="in" name="scala.Product"><span>Product</span></li><li class="in" name="scala.Equals"><span>Equals</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li><li class="in" name="scala.Any"><span>Any</span></li>
+                </ol>
+              </div><div id="ancestors">
+            <span class="filtertype"></span>
+            <ol>
+              <li class="hideall out"><span>Hide All</span></li>
+              <li class="showall in"><span>Show all</span></li>
+            </ol>
+            <a href="http://docs.scala-lang.org/overviews/scaladoc/usage.html#members" target="_blank">Learn more about member selection</a>
+          </div>
+        <div id="visbl">
+            <span class="filtertype">Visibility</span>
+            <ol><li class="public in"><span>Public</span></li><li class="all out"><span>All</span></li></ol>
+          </div>
+      </div>
+
+      <div id="template">
+        <div id="allMembers">
+        <div id="constructors" class="members">
+              <h3>Instance Constructors</h3>
+              <ol><li name="org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat#&lt;init&gt;" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="&lt;init&gt;(numTotalRequests:Long,numActualConnectionsCreated:Long,numActiveConnections:Long):org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat"></a>
+      <a id="&lt;init&gt;:HBaseConnectionCacheStat"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">new</span>
+      </span>
+      <span class="symbol">
+        <span class="name">HBaseConnectionCacheStat</span><span class="params">(<span name="numTotalRequests">numTotalRequests: <span class="extype" name="scala.Long">Long</span></span>, <span name="numActualConnectionsCreated">numActualConnectionsCreated: <span class="extype" name="scala.Long">Long</span></span>, <span name="numActiveConnections">numActiveConnections: <span class="extype" name="scala.Long">Long</span></span>)</span>
+      </span>
+      </h4>
+      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"></div><dl class="paramcmts block"><dt class="param">numTotalRequests</dt><dd class="cmt"><p>number of total connection requests to the cache</p></dd><dt class="param">numActualConnectionsCreated</dt><dd class="cmt"><p>number of actual HBase connections the cache ever created</p></dd><dt class="param">numActiveConnections</dt><dd class="cmt"><p>number of current alive HBase connections the cache is holding
+</p></dd></dl></div>
+    </li></ol>
+            </div>
+
+
+
+
+
+        <div id="values" class="values members">
+              <h3>Value Members</h3>
+              <ol><li name="scala.AnyRef#!=" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="!=(x$1:AnyRef):Boolean"></a>
+      <a id="!=(AnyRef):Boolean"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span title="gt4s: $bang$eq" class="name">!=</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.AnyRef">AnyRef</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
+    </li><li name="scala.Any#!=" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="!=(x$1:Any):Boolean"></a>
+      <a id="!=(Any):Boolean"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span title="gt4s: $bang$eq" class="name">!=</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Any">Any</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Any</dd></dl></div>
+    </li><li name="scala.AnyRef###" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="##():Int"></a>
+      <a id="##():Int"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span title="gt4s: $hash$hash" class="name">##</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Int">Int</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef \u2192 Any</dd></dl></div>
+    </li><li name="scala.AnyRef#==" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="==(x$1:AnyRef):Boolean"></a>
+      <a id="==(AnyRef):Boolean"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span title="gt4s: $eq$eq" class="name">==</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.AnyRef">AnyRef</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
+    </li><li name="scala.Any#==" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="==(x$1:Any):Boolean"></a>
+      <a id="==(Any):Boolean"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span title="gt4s: $eq$eq" class="name">==</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Any">Any</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Any</dd></dl></div>
+    </li><li name="scala.Any#asInstanceOf" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="asInstanceOf[T0]:T0"></a>
+      <a id="asInstanceOf[T0]:T0"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">asInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span class="extype" name="scala.Any.asInstanceOf.T0">T0</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Any</dd></dl></div>
+    </li><li name="scala.AnyRef#clone" visbl="prt" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="clone():Object"></a>
+      <a id="clone():AnyRef"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">clone</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.AnyRef">AnyRef</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected[<a href="../../../../../java$lang.html" class="extype" name="java.lang">java.lang</a>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
+                <span class="name">@throws</span><span class="args">(<span>
+
+      <span class="defval" name="classOf[java.lang.CloneNotSupportedException]">...</span>
+    </span>)</span>
+
+        </dd></dl></div>
+    </li><li name="scala.AnyRef#eq" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="eq(x$1:AnyRef):Boolean"></a>
+      <a id="eq(AnyRef):Boolean"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">eq</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.AnyRef">AnyRef</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
+    </li><li name="scala.AnyRef#finalize" visbl="prt" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="finalize():Unit"></a>
+      <a id="finalize():Unit"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">finalize</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected[<a href="../../../../../java$lang.html" class="extype" name="java.lang">java.lang</a>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
+                <span class="name">@throws</span><span class="args">(<span>
+
+      <span class="symbol">classOf[java.lang.Throwable]</span>
+    </span>)</span>
+
+        </dd></dl></div>
+    </li><li name="scala.AnyRef#getClass" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="getClass():Class[_]"></a>
+      <a id="getClass():Class[_]"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">getClass</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.Class">Class</span>[_]</span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef \u2192 Any</dd></dl></div>
+    </li><li name="scala.Any#isInstanceOf" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="isInstanceOf[T0]:Boolean"></a>
+      <a id="isInstanceOf[T0]:Boolean"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">isInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Any</dd></dl></div>
+    </li><li name="scala.AnyRef#ne" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="ne(x$1:AnyRef):Boolean"></a>
+      <a id="ne(AnyRef):Boolean"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">ne</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.AnyRef">AnyRef</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
+    </li><li name="scala.AnyRef#notify" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="notify():Unit"></a>
+      <a id="notify():Unit"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">notify</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
+    </li><li name="scala.AnyRef#notifyAll" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="notifyAll():Unit"></a>
+      <a id="notifyAll():Unit"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">notifyAll</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
+    </li><li name="org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat#numActiveConnections" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
+      <a id="numActiveConnections:Long"></a>
+      <a id="numActiveConnections:Long"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">var</span>
+      </span>
+      <span class="symbol">
+        <span class="name">numActiveConnections</span><span class="result">: <span class="extype" name="scala.Long">Long</span></span>
+      </span>
+      </h4>
+      <p class="shortcomment cmt">number of current alive HBase connections the cache is holding
+</p>
+    </li><li name="org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat#numActualConnectionsCreated" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
+      <a id="numActualConnectionsCreated:Long"></a>
+      <a id="numActualConnectionsCreated:Long"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">var</span>
+      </span>
+      <span class="symbol">
+        <span class="name">numActualConnectionsCreated</span><span class="result">: <span class="extype" name="scala.Long">Long</span></span>
+      </span>
+      </h4>
+      <p class="shortcomment cmt">number of actual HBase connections the cache ever created</p>
+    </li><li name="org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat#numTotalRequests" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
+      <a id="numTotalRequests:Long"></a>
+      <a id="numTotalRequests:Long"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">var</span>
+      </span>
+      <span class="symbol">
+        <span class="name">numTotalRequests</span><span class="result">: <span class="extype" name="scala.Long">Long</span></span>
+      </span>
+      </h4>
+      <p class="shortcomment cmt">number of total connection requests to the cache</p>
+    </li><li name="scala.AnyRef#synchronized" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="synchronized[T0](x$1:=&gt;T0):T0"></a>
+      <a id="synchronized[T0](\u21d2T0):T0"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">synchronized</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="params">(<span name="arg0">arg0: \u21d2 <span class="extype" name="java.lang.AnyRef.synchronized.T0">T0</span></span>)</span><span class="result">: <span class="extype" name="java.lang.AnyRef.synchronized.T0">T0</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
+    </li><li name="scala.AnyRef#wait" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="wait():Unit"></a>
+      <a id="wait():Unit"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">wait</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
+                <span class="name">@throws</span><span class="args">(<span>
+
+      <span class="defval" name="classOf[java.lang.InterruptedException]">...</span>
+    </span>)</span>
+
+        </dd></dl></div>
+    </li><li name="scala.AnyRef#wait" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="wait(x$1:Long,x$2:Int):Unit"></a>
+      <a id="wait(Long,Int):Unit"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">wait</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Long">Long</span></span>, <span name="arg1">arg1: <span class="extype" name="scala.Int">Int</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
+                <span class="name">@throws</span><span class="args">(<span>
+
+      <span class="defval" name="classOf[java.lang.InterruptedException]">...</span>
+    </span>)</span>
+
+        </dd></dl></div>
+    </li><li name="scala.AnyRef#wait" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
+      <a id="wait(x$1:Long):Unit"></a>
+      <a id="wait(Long):Unit"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier">final </span>
+        <span class="kind">def</span>
+      </span>
+      <span class="symbol">
+        <span class="name">wait</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Long">Long</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
+      </span>
+      </h4>
+      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
+                <span class="name">@throws</span><span class="args">(<span>
+
+      <span class="defval" name="classOf[java.lang.InterruptedException]">...</span>
+    </span>)</span>
+
+        </dd></dl></div>
+    </li></ol>
+            </div>
+
+
+
+
+        </div>
+
+        <div id="inheritedMembers">
+        <div class="parent" name="scala.Serializable">
+              <h3>Inherited from <span class="extype" name="scala.Serializable">Serializable</span></h3>
+            </div><div class="parent" name="java.io.Serializable">
+              <h3>Inherited from <span class="extype" name="java.io.Serializable">Serializable</span></h3>
+            </div><div class="parent" name="scala.Product">
+              <h3>Inherited from <span class="extype" name="scala.Product">Product</span></h3>
+            </div><div class="parent" name="scala.Equals">
+              <h3>Inherited from <span class="extype" name="scala.Equals">Equals</span></h3>
+            </div><div class="parent" name="scala.AnyRef">
+              <h3>Inherited from <span class="extype" name="scala.AnyRef">AnyRef</span></h3>
+            </div><div class="parent" name="scala.Any">
+              <h3>Inherited from <span class="extype" name="scala.Any">Any</span></h3>
+            </div>
+
+        </div>
+
+        <div id="groupedMembers">
+        <div class="group" name="Ungrouped">
+              <h3>Ungrouped</h3>
+
+            </div>
+        </div>
+
+      </div>
+
+      <div id="tooltip"></div>
+
+      <div id="footer">  </div>
+      <script defer="defer" type="text/javascript" id="jquery-js" src="../../../../../lib/jquery.js"></script><script defer="defer" type="text/javascript" id="jquery-ui-js" src="../../../../../lib/jquery-ui.js"></script><script defer="defer" type="text/javascript" id="tools-tooltip-js" src="../../../../../lib/tools.tooltip.js"></script><script defer="defer" type="text/javascript" id="template-js" src="../../../../../lib/template.js"></script>
+    </body>
+      </html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/scaladocs/org/apache/hadoop/hbase/spark/package.html
----------------------------------------------------------------------
diff --git a/hbase-spark/scaladocs/org/apache/hadoop/hbase/spark/package.html b/hbase-spark/scaladocs/org/apache/hadoop/hbase/spark/package.html
index 6157a95..222a377 100644
--- a/hbase-spark/scaladocs/org/apache/hadoop/hbase/spark/package.html
+++ b/hbase-spark/scaladocs/org/apache/hadoop/hbase/spark/package.html
@@ -289,6 +289,20 @@ writer will work
       </span>
       </h4>
       
+    </li><li name="org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
+      <a id="HBaseConnectionCacheStatextendsProductwithSerializable"></a>
+      <a id="HBaseConnectionCacheStat:HBaseConnectionCacheStat"></a>
+      <h4 class="signature">
+      <span class="modifier_kind">
+        <span class="modifier"></span>
+        <span class="kind">case class</span>
+      </span>
+      <span class="symbol">
+        <a href="HBaseConnectionCacheStat.html"><span class="name">HBaseConnectionCacheStat</span></a><span class="params">(<span name="numTotalRequests">numTotalRequests: <span class="extype" name="scala.Long">Long</span></span>, <span name="numActualConnectionsCreated">numActualConnectionsCreated: <span class="extype" name="scala.Long">Long</span></span>, <span name="numActiveConnections">numActiveConnections: <span class="extype" name="scala.Long">Long</span></span>)</span><span class="result"> extends <span class="extype" name="scala.Product">Product</span> with <span class="extype" name="scala.Serializable">Serializable</span></span>
+      </span>
+      </h4>
+      <p class="comment cmt">To log the state of 'HBaseConnectionCache'
+</p>
     </li><li name="org.apache.hadoop.hbase.spark.HBaseConnectionKey" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
       <a id="HBaseConnectionKeyextendsLogging"></a>
       <a id="HBaseConnectionKey:HBaseConnectionKey"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-spark/source-repository.html b/hbase-spark/source-repository.html
index f28fdd1..2ecfbe7 100644
--- a/hbase-spark/source-repository.html
+++ b/hbase-spark/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-spark/team-list.html b/hbase-spark/team-list.html
index 26d57e4..5e2378c 100644
--- a/hbase-spark/team-list.html
+++ b/hbase-spark/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index d5e3404..76746d8 100644
--- a/index.html
+++ b/index.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase\u2122 Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -389,6 +389,8 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
 <div class="section">
 <h2><a name="News"></a>News</h2>
 
+<p>December 8th, 2016 <a class="externalLink" href="https://www.meetup.com/hbaseusergroup/events/235542241/">Meetup@Splice</a> in San Francisco</p>
+
 <p>September 26th, 2016 <a class="externalLink" href="http://www.meetup.com/HBase-NYC/events/233024937/">HBaseConEast2016</a> at Google in Chelsea, NYC</p>
          
 <p>May 24th, 2016 <a class="externalLink" href="http://www.hbasecon.com/">HBaseCon2016</a> at The Village, 969 Market, San Francisco</p>
@@ -436,7 +438,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index ba7f085..aee9ab0 100644
--- a/integration.html
+++ b/integration.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Continuous Integration</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -302,7 +302,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 6e31378..dfed207 100644
--- a/issue-tracking.html
+++ b/issue-tracking.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Tracking</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -299,7 +299,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 46cb209..dc37b82 100644
--- a/license.html
+++ b/license.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project License</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -502,7 +502,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index da672bc..a2a7bcf 100644
--- a/mail-lists.html
+++ b/mail-lists.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -352,7 +352,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index 1ba6031..b2b6a0d 100644
--- a/metrics.html
+++ b/metrics.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -470,7 +470,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/modules.html
----------------------------------------------------------------------
diff --git a/modules.html b/modules.html
index f91b4c7..3fabae5 100644
--- a/modules.html
+++ b/modules.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Modules</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -399,7 +399,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index 421c6d8..ca3088c 100644
--- a/old_news.html
+++ b/old_news.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -425,7 +425,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index 387d15f..1be6d2e 100644
--- a/plugin-management.html
+++ b/plugin-management.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -435,7 +435,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index d15c8f6..d069c03 100644
--- a/plugins.html
+++ b/plugins.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Build Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -386,7 +386,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 873b449..6530994 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase�</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -780,7 +780,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index aaaa5ef..74bebf9 100644
--- a/project-info.html
+++ b/project-info.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -352,7 +352,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index f5b7c2f..73cb45c 100644
--- a/project-reports.html
+++ b/project-reports.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -322,7 +322,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index 9104baa..cf0553c 100644
--- a/project-summary.html
+++ b/project-summary.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -342,7 +342,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index f292359..dce6a64 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -319,7 +319,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index c3f44f3..4f94479 100644
--- a/replication.html
+++ b/replication.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -314,7 +314,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index 992a5a3..63e1400 100644
--- a/resources.html
+++ b/resources.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Other Apache HBase (TM) Resources</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -336,7 +336,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index e7b9d7d..62efefb 100644
--- a/source-repository.html
+++ b/source-repository.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Repository</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -310,7 +310,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index 57bf97f..be2a152 100644
--- a/sponsors.html
+++ b/sponsors.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase� Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -344,7 +344,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 5cf417e..2bea434 100644
--- a/supportingprojects.html
+++ b/supportingprojects.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -531,7 +531,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index b5c6374..b97bb2c 100644
--- a/team-list.html
+++ b/team-list.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Team list</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -749,7 +749,7 @@ window.onLoad = init();
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 


[08/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyNodeFailoverWorker.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyNodeFailoverWorker.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyNodeFailoverWorker.html
index 9da7348..d3a77ec 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyNodeFailoverWorker.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyNodeFailoverWorker.html
@@ -551,121 +551,123 @@
 <span class="sourceLineNo">543</span>        List&lt;String&gt; queues = rq.getUnClaimedQueueIds(deadRsZnode);<a name="line.543"></a>
 <span class="sourceLineNo">544</span>        for(String queue:queues){<a name="line.544"></a>
 <span class="sourceLineNo">545</span>          Pair&lt;String, SortedSet&lt;String&gt;&gt; pair = rq.claimQueue(deadRsZnode, queue);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>          logZnodesMap.put(pair.getFirst(), pair.getSecond());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>        }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        server.abort("Done with testing", null);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      } catch (Exception e) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>        LOG.error("Got exception while running NodeFailoverWorker", e);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      } finally {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>        latch.countDown();<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      }<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>    /**<a name="line.556"></a>
-<span class="sourceLineNo">557</span>     * @return 1 when the map is not empty.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>     */<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    private int isLogZnodesMapPopulated() {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      Collection&lt;Set&lt;String&gt;&gt; sets = logZnodesMap.values();<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      if (sets.size() &gt; 1) {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>        throw new RuntimeException("unexpected size of logZnodesMap: " + sets.size());<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      }<a name="line.563"></a>
-<span class="sourceLineNo">564</span>      if (sets.size() == 1) {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>        Set&lt;String&gt; s = sets.iterator().next();<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        for (String file : files) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>          // at least one file was missing<a name="line.567"></a>
-<span class="sourceLineNo">568</span>          if (!s.contains(file)) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>            return 0;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          }<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        return 1; // we found all the files<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      }<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      return 0;<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  }<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>  static class FailInitializeDummyReplicationSource extends ReplicationSourceDummy {<a name="line.578"></a>
+<span class="sourceLineNo">546</span>          if (pair != null) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>            logZnodesMap.put(pair.getFirst(), pair.getSecond());<a name="line.547"></a>
+<span class="sourceLineNo">548</span>          }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        server.abort("Done with testing", null);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>      } catch (Exception e) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        LOG.error("Got exception while running NodeFailoverWorker", e);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      } finally {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        latch.countDown();<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>    /**<a name="line.558"></a>
+<span class="sourceLineNo">559</span>     * @return 1 when the map is not empty.<a name="line.559"></a>
+<span class="sourceLineNo">560</span>     */<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    private int isLogZnodesMapPopulated() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>      Collection&lt;Set&lt;String&gt;&gt; sets = logZnodesMap.values();<a name="line.562"></a>
+<span class="sourceLineNo">563</span>      if (sets.size() &gt; 1) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        throw new RuntimeException("unexpected size of logZnodesMap: " + sets.size());<a name="line.564"></a>
+<span class="sourceLineNo">565</span>      }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>      if (sets.size() == 1) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        Set&lt;String&gt; s = sets.iterator().next();<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        for (String file : files) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>          // at least one file was missing<a name="line.569"></a>
+<span class="sourceLineNo">570</span>          if (!s.contains(file)) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>            return 0;<a name="line.571"></a>
+<span class="sourceLineNo">572</span>          }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        }<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        return 1; // we found all the files<a name="line.574"></a>
+<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
+<span class="sourceLineNo">576</span>      return 0;<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
 <span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span>    @Override<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    public void init(Configuration conf, FileSystem fs, ReplicationSourceManager manager,<a name="line.581"></a>
-<span class="sourceLineNo">582</span>        ReplicationQueues rq, ReplicationPeers rp, Stoppable stopper, String peerClusterId,<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        UUID clusterId, ReplicationEndpoint replicationEndpoint, MetricsSource metrics)<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        throws IOException {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      throw new IOException("Failing deliberately");<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>  }<a name="line.587"></a>
-<span class="sourceLineNo">588</span><a name="line.588"></a>
-<span class="sourceLineNo">589</span>  static class DummyServer implements Server {<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    String hostname;<a name="line.590"></a>
-<span class="sourceLineNo">591</span><a name="line.591"></a>
-<span class="sourceLineNo">592</span>    DummyServer() {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      hostname = "hostname.example.org";<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
-<span class="sourceLineNo">595</span><a name="line.595"></a>
-<span class="sourceLineNo">596</span>    DummyServer(String hostname) {<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      this.hostname = hostname;<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    }<a name="line.598"></a>
-<span class="sourceLineNo">599</span><a name="line.599"></a>
-<span class="sourceLineNo">600</span>    @Override<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    public Configuration getConfiguration() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      return conf;<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    }<a name="line.603"></a>
-<span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>    @Override<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    public ZooKeeperWatcher getZooKeeper() {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      return zkw;<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    @Override<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      return null;<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    }<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    @Override<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    public ClusterConnection getConnection() {<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      return null;<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    }<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span>    @Override<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    public MetaTableLocator getMetaTableLocator() {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      return null;<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    }<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>    @Override<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    public ServerName getServerName() {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      return ServerName.valueOf(hostname, 1234, 1L);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>    @Override<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    public void abort(String why, Throwable e) {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    }<a name="line.632"></a>
-<span class="sourceLineNo">633</span><a name="line.633"></a>
-<span class="sourceLineNo">634</span>    @Override<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    public boolean isAborted() {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      return false;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
-<span class="sourceLineNo">638</span><a name="line.638"></a>
-<span class="sourceLineNo">639</span>    @Override<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    public void stop(String why) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    }<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span>    @Override<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    public boolean isStopped() {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>      return false; // To change body of implemented methods use File | Settings | File Templates.<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    }<a name="line.647"></a>
-<span class="sourceLineNo">648</span><a name="line.648"></a>
-<span class="sourceLineNo">649</span>    @Override<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    public ChoreService getChoreService() {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      return null;<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    }<a name="line.652"></a>
-<span class="sourceLineNo">653</span><a name="line.653"></a>
-<span class="sourceLineNo">654</span>    @Override<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    public ClusterConnection getClusterConnection() {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      // TODO Auto-generated method stub<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      return null;<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    }<a name="line.658"></a>
-<span class="sourceLineNo">659</span>  }<a name="line.659"></a>
-<span class="sourceLineNo">660</span>}<a name="line.660"></a>
+<span class="sourceLineNo">580</span>  static class FailInitializeDummyReplicationSource extends ReplicationSourceDummy {<a name="line.580"></a>
+<span class="sourceLineNo">581</span><a name="line.581"></a>
+<span class="sourceLineNo">582</span>    @Override<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    public void init(Configuration conf, FileSystem fs, ReplicationSourceManager manager,<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        ReplicationQueues rq, ReplicationPeers rp, Stoppable stopper, String peerClusterId,<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        UUID clusterId, ReplicationEndpoint replicationEndpoint, MetricsSource metrics)<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        throws IOException {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      throw new IOException("Failing deliberately");<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>  static class DummyServer implements Server {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    String hostname;<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span>    DummyServer() {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>      hostname = "hostname.example.org";<a name="line.595"></a>
+<span class="sourceLineNo">596</span>    }<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>    DummyServer(String hostname) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      this.hostname = hostname;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>    }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>    @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    public Configuration getConfiguration() {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      return conf;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>    }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>    @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    public ZooKeeperWatcher getZooKeeper() {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      return zkw;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>    @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      return null;<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    }<a name="line.615"></a>
+<span class="sourceLineNo">616</span>    @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    public ClusterConnection getConnection() {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      return null;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>    @Override<a name="line.621"></a>
+<span class="sourceLineNo">622</span>    public MetaTableLocator getMetaTableLocator() {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      return null;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    }<a name="line.624"></a>
+<span class="sourceLineNo">625</span><a name="line.625"></a>
+<span class="sourceLineNo">626</span>    @Override<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    public ServerName getServerName() {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      return ServerName.valueOf(hostname, 1234, 1L);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>    @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    public void abort(String why, Throwable e) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    }<a name="line.634"></a>
+<span class="sourceLineNo">635</span><a name="line.635"></a>
+<span class="sourceLineNo">636</span>    @Override<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    public boolean isAborted() {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      return false;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>    @Override<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    public void stop(String why) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.643"></a>
+<span class="sourceLineNo">644</span>    }<a name="line.644"></a>
+<span class="sourceLineNo">645</span><a name="line.645"></a>
+<span class="sourceLineNo">646</span>    @Override<a name="line.646"></a>
+<span class="sourceLineNo">647</span>    public boolean isStopped() {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>      return false; // To change body of implemented methods use File | Settings | File Templates.<a name="line.648"></a>
+<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>    @Override<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    public ChoreService getChoreService() {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      return null;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>    @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>    public ClusterConnection getClusterConnection() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>      // TODO Auto-generated method stub<a name="line.658"></a>
+<span class="sourceLineNo">659</span>      return null;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>    }<a name="line.660"></a>
+<span class="sourceLineNo">661</span>  }<a name="line.661"></a>
+<span class="sourceLineNo">662</span>}<a name="line.662"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html
index 9da7348..d3a77ec 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html
@@ -551,121 +551,123 @@
 <span class="sourceLineNo">543</span>        List&lt;String&gt; queues = rq.getUnClaimedQueueIds(deadRsZnode);<a name="line.543"></a>
 <span class="sourceLineNo">544</span>        for(String queue:queues){<a name="line.544"></a>
 <span class="sourceLineNo">545</span>          Pair&lt;String, SortedSet&lt;String&gt;&gt; pair = rq.claimQueue(deadRsZnode, queue);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>          logZnodesMap.put(pair.getFirst(), pair.getSecond());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>        }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        server.abort("Done with testing", null);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      } catch (Exception e) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>        LOG.error("Got exception while running NodeFailoverWorker", e);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      } finally {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>        latch.countDown();<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      }<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>    /**<a name="line.556"></a>
-<span class="sourceLineNo">557</span>     * @return 1 when the map is not empty.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>     */<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    private int isLogZnodesMapPopulated() {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      Collection&lt;Set&lt;String&gt;&gt; sets = logZnodesMap.values();<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      if (sets.size() &gt; 1) {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>        throw new RuntimeException("unexpected size of logZnodesMap: " + sets.size());<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      }<a name="line.563"></a>
-<span class="sourceLineNo">564</span>      if (sets.size() == 1) {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>        Set&lt;String&gt; s = sets.iterator().next();<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        for (String file : files) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>          // at least one file was missing<a name="line.567"></a>
-<span class="sourceLineNo">568</span>          if (!s.contains(file)) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>            return 0;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          }<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        return 1; // we found all the files<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      }<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      return 0;<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  }<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>  static class FailInitializeDummyReplicationSource extends ReplicationSourceDummy {<a name="line.578"></a>
+<span class="sourceLineNo">546</span>          if (pair != null) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>            logZnodesMap.put(pair.getFirst(), pair.getSecond());<a name="line.547"></a>
+<span class="sourceLineNo">548</span>          }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        server.abort("Done with testing", null);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>      } catch (Exception e) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        LOG.error("Got exception while running NodeFailoverWorker", e);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      } finally {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        latch.countDown();<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>    /**<a name="line.558"></a>
+<span class="sourceLineNo">559</span>     * @return 1 when the map is not empty.<a name="line.559"></a>
+<span class="sourceLineNo">560</span>     */<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    private int isLogZnodesMapPopulated() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>      Collection&lt;Set&lt;String&gt;&gt; sets = logZnodesMap.values();<a name="line.562"></a>
+<span class="sourceLineNo">563</span>      if (sets.size() &gt; 1) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        throw new RuntimeException("unexpected size of logZnodesMap: " + sets.size());<a name="line.564"></a>
+<span class="sourceLineNo">565</span>      }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>      if (sets.size() == 1) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        Set&lt;String&gt; s = sets.iterator().next();<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        for (String file : files) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>          // at least one file was missing<a name="line.569"></a>
+<span class="sourceLineNo">570</span>          if (!s.contains(file)) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>            return 0;<a name="line.571"></a>
+<span class="sourceLineNo">572</span>          }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        }<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        return 1; // we found all the files<a name="line.574"></a>
+<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
+<span class="sourceLineNo">576</span>      return 0;<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
 <span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span>    @Override<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    public void init(Configuration conf, FileSystem fs, ReplicationSourceManager manager,<a name="line.581"></a>
-<span class="sourceLineNo">582</span>        ReplicationQueues rq, ReplicationPeers rp, Stoppable stopper, String peerClusterId,<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        UUID clusterId, ReplicationEndpoint replicationEndpoint, MetricsSource metrics)<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        throws IOException {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      throw new IOException("Failing deliberately");<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>  }<a name="line.587"></a>
-<span class="sourceLineNo">588</span><a name="line.588"></a>
-<span class="sourceLineNo">589</span>  static class DummyServer implements Server {<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    String hostname;<a name="line.590"></a>
-<span class="sourceLineNo">591</span><a name="line.591"></a>
-<span class="sourceLineNo">592</span>    DummyServer() {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      hostname = "hostname.example.org";<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
-<span class="sourceLineNo">595</span><a name="line.595"></a>
-<span class="sourceLineNo">596</span>    DummyServer(String hostname) {<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      this.hostname = hostname;<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    }<a name="line.598"></a>
-<span class="sourceLineNo">599</span><a name="line.599"></a>
-<span class="sourceLineNo">600</span>    @Override<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    public Configuration getConfiguration() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      return conf;<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    }<a name="line.603"></a>
-<span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>    @Override<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    public ZooKeeperWatcher getZooKeeper() {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      return zkw;<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    @Override<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      return null;<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    }<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    @Override<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    public ClusterConnection getConnection() {<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      return null;<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    }<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span>    @Override<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    public MetaTableLocator getMetaTableLocator() {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      return null;<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    }<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>    @Override<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    public ServerName getServerName() {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      return ServerName.valueOf(hostname, 1234, 1L);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>    @Override<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    public void abort(String why, Throwable e) {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    }<a name="line.632"></a>
-<span class="sourceLineNo">633</span><a name="line.633"></a>
-<span class="sourceLineNo">634</span>    @Override<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    public boolean isAborted() {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      return false;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
-<span class="sourceLineNo">638</span><a name="line.638"></a>
-<span class="sourceLineNo">639</span>    @Override<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    public void stop(String why) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    }<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span>    @Override<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    public boolean isStopped() {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>      return false; // To change body of implemented methods use File | Settings | File Templates.<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    }<a name="line.647"></a>
-<span class="sourceLineNo">648</span><a name="line.648"></a>
-<span class="sourceLineNo">649</span>    @Override<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    public ChoreService getChoreService() {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      return null;<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    }<a name="line.652"></a>
-<span class="sourceLineNo">653</span><a name="line.653"></a>
-<span class="sourceLineNo">654</span>    @Override<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    public ClusterConnection getClusterConnection() {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      // TODO Auto-generated method stub<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      return null;<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    }<a name="line.658"></a>
-<span class="sourceLineNo">659</span>  }<a name="line.659"></a>
-<span class="sourceLineNo">660</span>}<a name="line.660"></a>
+<span class="sourceLineNo">580</span>  static class FailInitializeDummyReplicationSource extends ReplicationSourceDummy {<a name="line.580"></a>
+<span class="sourceLineNo">581</span><a name="line.581"></a>
+<span class="sourceLineNo">582</span>    @Override<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    public void init(Configuration conf, FileSystem fs, ReplicationSourceManager manager,<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        ReplicationQueues rq, ReplicationPeers rp, Stoppable stopper, String peerClusterId,<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        UUID clusterId, ReplicationEndpoint replicationEndpoint, MetricsSource metrics)<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        throws IOException {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      throw new IOException("Failing deliberately");<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>  static class DummyServer implements Server {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    String hostname;<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span>    DummyServer() {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>      hostname = "hostname.example.org";<a name="line.595"></a>
+<span class="sourceLineNo">596</span>    }<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>    DummyServer(String hostname) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      this.hostname = hostname;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>    }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>    @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    public Configuration getConfiguration() {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      return conf;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>    }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>    @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    public ZooKeeperWatcher getZooKeeper() {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      return zkw;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>    @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      return null;<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    }<a name="line.615"></a>
+<span class="sourceLineNo">616</span>    @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    public ClusterConnection getConnection() {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      return null;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>    @Override<a name="line.621"></a>
+<span class="sourceLineNo">622</span>    public MetaTableLocator getMetaTableLocator() {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      return null;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    }<a name="line.624"></a>
+<span class="sourceLineNo">625</span><a name="line.625"></a>
+<span class="sourceLineNo">626</span>    @Override<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    public ServerName getServerName() {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      return ServerName.valueOf(hostname, 1234, 1L);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>    @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    public void abort(String why, Throwable e) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    }<a name="line.634"></a>
+<span class="sourceLineNo">635</span><a name="line.635"></a>
+<span class="sourceLineNo">636</span>    @Override<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    public boolean isAborted() {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      return false;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>    @Override<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    public void stop(String why) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.643"></a>
+<span class="sourceLineNo">644</span>    }<a name="line.644"></a>
+<span class="sourceLineNo">645</span><a name="line.645"></a>
+<span class="sourceLineNo">646</span>    @Override<a name="line.646"></a>
+<span class="sourceLineNo">647</span>    public boolean isStopped() {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>      return false; // To change body of implemented methods use File | Settings | File Templates.<a name="line.648"></a>
+<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>    @Override<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    public ChoreService getChoreService() {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      return null;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>    @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>    public ClusterConnection getClusterConnection() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>      // TODO Auto-generated method stub<a name="line.658"></a>
+<span class="sourceLineNo">659</span>      return null;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>    }<a name="line.660"></a>
+<span class="sourceLineNo">661</span>  }<a name="line.661"></a>
+<span class="sourceLineNo">662</span>}<a name="line.662"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html
index 9da7348..d3a77ec 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html
@@ -551,121 +551,123 @@
 <span class="sourceLineNo">543</span>        List&lt;String&gt; queues = rq.getUnClaimedQueueIds(deadRsZnode);<a name="line.543"></a>
 <span class="sourceLineNo">544</span>        for(String queue:queues){<a name="line.544"></a>
 <span class="sourceLineNo">545</span>          Pair&lt;String, SortedSet&lt;String&gt;&gt; pair = rq.claimQueue(deadRsZnode, queue);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>          logZnodesMap.put(pair.getFirst(), pair.getSecond());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>        }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        server.abort("Done with testing", null);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      } catch (Exception e) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>        LOG.error("Got exception while running NodeFailoverWorker", e);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      } finally {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>        latch.countDown();<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      }<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>    /**<a name="line.556"></a>
-<span class="sourceLineNo">557</span>     * @return 1 when the map is not empty.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>     */<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    private int isLogZnodesMapPopulated() {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      Collection&lt;Set&lt;String&gt;&gt; sets = logZnodesMap.values();<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      if (sets.size() &gt; 1) {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>        throw new RuntimeException("unexpected size of logZnodesMap: " + sets.size());<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      }<a name="line.563"></a>
-<span class="sourceLineNo">564</span>      if (sets.size() == 1) {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>        Set&lt;String&gt; s = sets.iterator().next();<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        for (String file : files) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>          // at least one file was missing<a name="line.567"></a>
-<span class="sourceLineNo">568</span>          if (!s.contains(file)) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>            return 0;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          }<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        return 1; // we found all the files<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      }<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      return 0;<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  }<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>  static class FailInitializeDummyReplicationSource extends ReplicationSourceDummy {<a name="line.578"></a>
+<span class="sourceLineNo">546</span>          if (pair != null) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>            logZnodesMap.put(pair.getFirst(), pair.getSecond());<a name="line.547"></a>
+<span class="sourceLineNo">548</span>          }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        server.abort("Done with testing", null);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>      } catch (Exception e) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        LOG.error("Got exception while running NodeFailoverWorker", e);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      } finally {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        latch.countDown();<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>    /**<a name="line.558"></a>
+<span class="sourceLineNo">559</span>     * @return 1 when the map is not empty.<a name="line.559"></a>
+<span class="sourceLineNo">560</span>     */<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    private int isLogZnodesMapPopulated() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>      Collection&lt;Set&lt;String&gt;&gt; sets = logZnodesMap.values();<a name="line.562"></a>
+<span class="sourceLineNo">563</span>      if (sets.size() &gt; 1) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        throw new RuntimeException("unexpected size of logZnodesMap: " + sets.size());<a name="line.564"></a>
+<span class="sourceLineNo">565</span>      }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>      if (sets.size() == 1) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        Set&lt;String&gt; s = sets.iterator().next();<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        for (String file : files) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>          // at least one file was missing<a name="line.569"></a>
+<span class="sourceLineNo">570</span>          if (!s.contains(file)) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>            return 0;<a name="line.571"></a>
+<span class="sourceLineNo">572</span>          }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        }<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        return 1; // we found all the files<a name="line.574"></a>
+<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
+<span class="sourceLineNo">576</span>      return 0;<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
 <span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span>    @Override<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    public void init(Configuration conf, FileSystem fs, ReplicationSourceManager manager,<a name="line.581"></a>
-<span class="sourceLineNo">582</span>        ReplicationQueues rq, ReplicationPeers rp, Stoppable stopper, String peerClusterId,<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        UUID clusterId, ReplicationEndpoint replicationEndpoint, MetricsSource metrics)<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        throws IOException {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      throw new IOException("Failing deliberately");<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>  }<a name="line.587"></a>
-<span class="sourceLineNo">588</span><a name="line.588"></a>
-<span class="sourceLineNo">589</span>  static class DummyServer implements Server {<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    String hostname;<a name="line.590"></a>
-<span class="sourceLineNo">591</span><a name="line.591"></a>
-<span class="sourceLineNo">592</span>    DummyServer() {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      hostname = "hostname.example.org";<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
-<span class="sourceLineNo">595</span><a name="line.595"></a>
-<span class="sourceLineNo">596</span>    DummyServer(String hostname) {<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      this.hostname = hostname;<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    }<a name="line.598"></a>
-<span class="sourceLineNo">599</span><a name="line.599"></a>
-<span class="sourceLineNo">600</span>    @Override<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    public Configuration getConfiguration() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      return conf;<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    }<a name="line.603"></a>
-<span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>    @Override<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    public ZooKeeperWatcher getZooKeeper() {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      return zkw;<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    @Override<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      return null;<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    }<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    @Override<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    public ClusterConnection getConnection() {<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      return null;<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    }<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span>    @Override<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    public MetaTableLocator getMetaTableLocator() {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      return null;<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    }<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>    @Override<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    public ServerName getServerName() {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      return ServerName.valueOf(hostname, 1234, 1L);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>    @Override<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    public void abort(String why, Throwable e) {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    }<a name="line.632"></a>
-<span class="sourceLineNo">633</span><a name="line.633"></a>
-<span class="sourceLineNo">634</span>    @Override<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    public boolean isAborted() {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      return false;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
-<span class="sourceLineNo">638</span><a name="line.638"></a>
-<span class="sourceLineNo">639</span>    @Override<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    public void stop(String why) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    }<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span>    @Override<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    public boolean isStopped() {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>      return false; // To change body of implemented methods use File | Settings | File Templates.<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    }<a name="line.647"></a>
-<span class="sourceLineNo">648</span><a name="line.648"></a>
-<span class="sourceLineNo">649</span>    @Override<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    public ChoreService getChoreService() {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      return null;<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    }<a name="line.652"></a>
-<span class="sourceLineNo">653</span><a name="line.653"></a>
-<span class="sourceLineNo">654</span>    @Override<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    public ClusterConnection getClusterConnection() {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      // TODO Auto-generated method stub<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      return null;<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    }<a name="line.658"></a>
-<span class="sourceLineNo">659</span>  }<a name="line.659"></a>
-<span class="sourceLineNo">660</span>}<a name="line.660"></a>
+<span class="sourceLineNo">580</span>  static class FailInitializeDummyReplicationSource extends ReplicationSourceDummy {<a name="line.580"></a>
+<span class="sourceLineNo">581</span><a name="line.581"></a>
+<span class="sourceLineNo">582</span>    @Override<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    public void init(Configuration conf, FileSystem fs, ReplicationSourceManager manager,<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        ReplicationQueues rq, ReplicationPeers rp, Stoppable stopper, String peerClusterId,<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        UUID clusterId, ReplicationEndpoint replicationEndpoint, MetricsSource metrics)<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        throws IOException {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      throw new IOException("Failing deliberately");<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>  static class DummyServer implements Server {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    String hostname;<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span>    DummyServer() {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>      hostname = "hostname.example.org";<a name="line.595"></a>
+<span class="sourceLineNo">596</span>    }<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>    DummyServer(String hostname) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      this.hostname = hostname;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>    }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>    @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    public Configuration getConfiguration() {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      return conf;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>    }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>    @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    public ZooKeeperWatcher getZooKeeper() {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      return zkw;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>    @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      return null;<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    }<a name="line.615"></a>
+<span class="sourceLineNo">616</span>    @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    public ClusterConnection getConnection() {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      return null;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>    @Override<a name="line.621"></a>
+<span class="sourceLineNo">622</span>    public MetaTableLocator getMetaTableLocator() {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      return null;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    }<a name="line.624"></a>
+<span class="sourceLineNo">625</span><a name="line.625"></a>
+<span class="sourceLineNo">626</span>    @Override<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    public ServerName getServerName() {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      return ServerName.valueOf(hostname, 1234, 1L);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>    @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    public void abort(String why, Throwable e) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    }<a name="line.634"></a>
+<span class="sourceLineNo">635</span><a name="line.635"></a>
+<span class="sourceLineNo">636</span>    @Override<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    public boolean isAborted() {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      return false;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>    @Override<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    public void stop(String why) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.643"></a>
+<span class="sourceLineNo">644</span>    }<a name="line.644"></a>
+<span class="sourceLineNo">645</span><a name="line.645"></a>
+<span class="sourceLineNo">646</span>    @Override<a name="line.646"></a>
+<span class="sourceLineNo">647</span>    public boolean isStopped() {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>      return false; // To change body of implemented methods use File | Settings | File Templates.<a name="line.648"></a>
+<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>    @Override<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    public ChoreService getChoreService() {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      return null;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>    @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>    public ClusterConnection getClusterConnection() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>      // TODO Auto-generated method stub<a name="line.658"></a>
+<span class="sourceLineNo">659</span>      return null;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>    }<a name="line.660"></a>
+<span class="sourceLineNo">661</span>  }<a name="line.661"></a>
+<span class="sourceLineNo">662</span>}<a name="line.662"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html
index 9da7348..d3a77ec 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html
@@ -551,121 +551,123 @@
 <span class="sourceLineNo">543</span>        List&lt;String&gt; queues = rq.getUnClaimedQueueIds(deadRsZnode);<a name="line.543"></a>
 <span class="sourceLineNo">544</span>        for(String queue:queues){<a name="line.544"></a>
 <span class="sourceLineNo">545</span>          Pair&lt;String, SortedSet&lt;String&gt;&gt; pair = rq.claimQueue(deadRsZnode, queue);<a name="line.545"></a>
-<span class="sourceLineNo">546</span>          logZnodesMap.put(pair.getFirst(), pair.getSecond());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>        }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        server.abort("Done with testing", null);<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      } catch (Exception e) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>        LOG.error("Got exception while running NodeFailoverWorker", e);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      } finally {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>        latch.countDown();<a name="line.552"></a>
-<span class="sourceLineNo">553</span>      }<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>    /**<a name="line.556"></a>
-<span class="sourceLineNo">557</span>     * @return 1 when the map is not empty.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>     */<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    private int isLogZnodesMapPopulated() {<a name="line.559"></a>
-<span class="sourceLineNo">560</span>      Collection&lt;Set&lt;String&gt;&gt; sets = logZnodesMap.values();<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      if (sets.size() &gt; 1) {<a name="line.561"></a>
-<span class="sourceLineNo">562</span>        throw new RuntimeException("unexpected size of logZnodesMap: " + sets.size());<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      }<a name="line.563"></a>
-<span class="sourceLineNo">564</span>      if (sets.size() == 1) {<a name="line.564"></a>
-<span class="sourceLineNo">565</span>        Set&lt;String&gt; s = sets.iterator().next();<a name="line.565"></a>
-<span class="sourceLineNo">566</span>        for (String file : files) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>          // at least one file was missing<a name="line.567"></a>
-<span class="sourceLineNo">568</span>          if (!s.contains(file)) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>            return 0;<a name="line.569"></a>
-<span class="sourceLineNo">570</span>          }<a name="line.570"></a>
-<span class="sourceLineNo">571</span>        }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>        return 1; // we found all the files<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      }<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      return 0;<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>  }<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>  static class FailInitializeDummyReplicationSource extends ReplicationSourceDummy {<a name="line.578"></a>
+<span class="sourceLineNo">546</span>          if (pair != null) {<a name="line.546"></a>
+<span class="sourceLineNo">547</span>            logZnodesMap.put(pair.getFirst(), pair.getSecond());<a name="line.547"></a>
+<span class="sourceLineNo">548</span>          }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        }<a name="line.549"></a>
+<span class="sourceLineNo">550</span>        server.abort("Done with testing", null);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>      } catch (Exception e) {<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        LOG.error("Got exception while running NodeFailoverWorker", e);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      } finally {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>        latch.countDown();<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    }<a name="line.556"></a>
+<span class="sourceLineNo">557</span><a name="line.557"></a>
+<span class="sourceLineNo">558</span>    /**<a name="line.558"></a>
+<span class="sourceLineNo">559</span>     * @return 1 when the map is not empty.<a name="line.559"></a>
+<span class="sourceLineNo">560</span>     */<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    private int isLogZnodesMapPopulated() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>      Collection&lt;Set&lt;String&gt;&gt; sets = logZnodesMap.values();<a name="line.562"></a>
+<span class="sourceLineNo">563</span>      if (sets.size() &gt; 1) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>        throw new RuntimeException("unexpected size of logZnodesMap: " + sets.size());<a name="line.564"></a>
+<span class="sourceLineNo">565</span>      }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>      if (sets.size() == 1) {<a name="line.566"></a>
+<span class="sourceLineNo">567</span>        Set&lt;String&gt; s = sets.iterator().next();<a name="line.567"></a>
+<span class="sourceLineNo">568</span>        for (String file : files) {<a name="line.568"></a>
+<span class="sourceLineNo">569</span>          // at least one file was missing<a name="line.569"></a>
+<span class="sourceLineNo">570</span>          if (!s.contains(file)) {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>            return 0;<a name="line.571"></a>
+<span class="sourceLineNo">572</span>          }<a name="line.572"></a>
+<span class="sourceLineNo">573</span>        }<a name="line.573"></a>
+<span class="sourceLineNo">574</span>        return 1; // we found all the files<a name="line.574"></a>
+<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
+<span class="sourceLineNo">576</span>      return 0;<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    }<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
 <span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span>    @Override<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    public void init(Configuration conf, FileSystem fs, ReplicationSourceManager manager,<a name="line.581"></a>
-<span class="sourceLineNo">582</span>        ReplicationQueues rq, ReplicationPeers rp, Stoppable stopper, String peerClusterId,<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        UUID clusterId, ReplicationEndpoint replicationEndpoint, MetricsSource metrics)<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        throws IOException {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      throw new IOException("Failing deliberately");<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>  }<a name="line.587"></a>
-<span class="sourceLineNo">588</span><a name="line.588"></a>
-<span class="sourceLineNo">589</span>  static class DummyServer implements Server {<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    String hostname;<a name="line.590"></a>
-<span class="sourceLineNo">591</span><a name="line.591"></a>
-<span class="sourceLineNo">592</span>    DummyServer() {<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      hostname = "hostname.example.org";<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
-<span class="sourceLineNo">595</span><a name="line.595"></a>
-<span class="sourceLineNo">596</span>    DummyServer(String hostname) {<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      this.hostname = hostname;<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    }<a name="line.598"></a>
-<span class="sourceLineNo">599</span><a name="line.599"></a>
-<span class="sourceLineNo">600</span>    @Override<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    public Configuration getConfiguration() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      return conf;<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    }<a name="line.603"></a>
-<span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>    @Override<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    public ZooKeeperWatcher getZooKeeper() {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      return zkw;<a name="line.607"></a>
-<span class="sourceLineNo">608</span>    }<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    @Override<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      return null;<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    }<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    @Override<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    public ClusterConnection getConnection() {<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      return null;<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    }<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span>    @Override<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    public MetaTableLocator getMetaTableLocator() {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      return null;<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    }<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span>    @Override<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    public ServerName getServerName() {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      return ServerName.valueOf(hostname, 1234, 1L);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    }<a name="line.627"></a>
-<span class="sourceLineNo">628</span><a name="line.628"></a>
-<span class="sourceLineNo">629</span>    @Override<a name="line.629"></a>
-<span class="sourceLineNo">630</span>    public void abort(String why, Throwable e) {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    }<a name="line.632"></a>
-<span class="sourceLineNo">633</span><a name="line.633"></a>
-<span class="sourceLineNo">634</span>    @Override<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    public boolean isAborted() {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      return false;<a name="line.636"></a>
-<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
-<span class="sourceLineNo">638</span><a name="line.638"></a>
-<span class="sourceLineNo">639</span>    @Override<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    public void stop(String why) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.641"></a>
-<span class="sourceLineNo">642</span>    }<a name="line.642"></a>
-<span class="sourceLineNo">643</span><a name="line.643"></a>
-<span class="sourceLineNo">644</span>    @Override<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    public boolean isStopped() {<a name="line.645"></a>
-<span class="sourceLineNo">646</span>      return false; // To change body of implemented methods use File | Settings | File Templates.<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    }<a name="line.647"></a>
-<span class="sourceLineNo">648</span><a name="line.648"></a>
-<span class="sourceLineNo">649</span>    @Override<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    public ChoreService getChoreService() {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      return null;<a name="line.651"></a>
-<span class="sourceLineNo">652</span>    }<a name="line.652"></a>
-<span class="sourceLineNo">653</span><a name="line.653"></a>
-<span class="sourceLineNo">654</span>    @Override<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    public ClusterConnection getClusterConnection() {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>      // TODO Auto-generated method stub<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      return null;<a name="line.657"></a>
-<span class="sourceLineNo">658</span>    }<a name="line.658"></a>
-<span class="sourceLineNo">659</span>  }<a name="line.659"></a>
-<span class="sourceLineNo">660</span>}<a name="line.660"></a>
+<span class="sourceLineNo">580</span>  static class FailInitializeDummyReplicationSource extends ReplicationSourceDummy {<a name="line.580"></a>
+<span class="sourceLineNo">581</span><a name="line.581"></a>
+<span class="sourceLineNo">582</span>    @Override<a name="line.582"></a>
+<span class="sourceLineNo">583</span>    public void init(Configuration conf, FileSystem fs, ReplicationSourceManager manager,<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        ReplicationQueues rq, ReplicationPeers rp, Stoppable stopper, String peerClusterId,<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        UUID clusterId, ReplicationEndpoint replicationEndpoint, MetricsSource metrics)<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        throws IOException {<a name="line.586"></a>
+<span class="sourceLineNo">587</span>      throw new IOException("Failing deliberately");<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>  }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>  static class DummyServer implements Server {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>    String hostname;<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span>    DummyServer() {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>      hostname = "hostname.example.org";<a name="line.595"></a>
+<span class="sourceLineNo">596</span>    }<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>    DummyServer(String hostname) {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>      this.hostname = hostname;<a name="line.599"></a>
+<span class="sourceLineNo">600</span>    }<a name="line.600"></a>
+<span class="sourceLineNo">601</span><a name="line.601"></a>
+<span class="sourceLineNo">602</span>    @Override<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    public Configuration getConfiguration() {<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      return conf;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>    }<a name="line.605"></a>
+<span class="sourceLineNo">606</span><a name="line.606"></a>
+<span class="sourceLineNo">607</span>    @Override<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    public ZooKeeperWatcher getZooKeeper() {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      return zkw;<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    }<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>    @Override<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    public CoordinatedStateManager getCoordinatedStateManager() {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      return null;<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    }<a name="line.615"></a>
+<span class="sourceLineNo">616</span>    @Override<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    public ClusterConnection getConnection() {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      return null;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>    @Override<a name="line.621"></a>
+<span class="sourceLineNo">622</span>    public MetaTableLocator getMetaTableLocator() {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      return null;<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    }<a name="line.624"></a>
+<span class="sourceLineNo">625</span><a name="line.625"></a>
+<span class="sourceLineNo">626</span>    @Override<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    public ServerName getServerName() {<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      return ServerName.valueOf(hostname, 1234, 1L);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    }<a name="line.629"></a>
+<span class="sourceLineNo">630</span><a name="line.630"></a>
+<span class="sourceLineNo">631</span>    @Override<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    public void abort(String why, Throwable e) {<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    }<a name="line.634"></a>
+<span class="sourceLineNo">635</span><a name="line.635"></a>
+<span class="sourceLineNo">636</span>    @Override<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    public boolean isAborted() {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      return false;<a name="line.638"></a>
+<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>    @Override<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    public void stop(String why) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      // To change body of implemented methods use File | Settings | File Templates.<a name="line.643"></a>
+<span class="sourceLineNo">644</span>    }<a name="line.644"></a>
+<span class="sourceLineNo">645</span><a name="line.645"></a>
+<span class="sourceLineNo">646</span>    @Override<a name="line.646"></a>
+<span class="sourceLineNo">647</span>    public boolean isStopped() {<a name="line.647"></a>
+<span class="sourceLineNo">648</span>      return false; // To change body of implemented methods use File | Settings | File Templates.<a name="line.648"></a>
+<span class="sourceLineNo">649</span>    }<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>    @Override<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    public ChoreService getChoreService() {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      return null;<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    }<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>    @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>    public ClusterConnection getClusterConnection() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>      // TODO Auto-generated method stub<a name="line.658"></a>
+<span class="sourceLineNo">659</span>      return null;<a name="line.659"></a>
+<span class="sourceLineNo">660</span>    }<a name="line.660"></a>
+<span class="sourceLineNo">661</span>  }<a name="line.661"></a>
+<span class="sourceLineNo">662</span>}<a name="line.662"></a>
 
 
 


[06/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref-test/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html b/xref-test/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html
index 2e33eee..ff39921 100644
--- a/xref-test/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html
+++ b/xref-test/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html
@@ -37,586 +37,589 @@
 <a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
 <a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Deque;
 <a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.NavigableMap;
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutorService;
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.atomic.AtomicInteger;
-<a class="jxr_linenumber" name="33" href="#33">33</a>
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
-<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
-<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FileSystem;
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.Path;
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseTestingUtility;
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HConstants;
-<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HRegionInfo;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HRegionLocation;
-<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.MetaTableAccessor;
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.ServerName;
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableExistsException;
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
-<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Admin;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ClusterConnection;
-<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
-<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
-<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.RegionLocator;
-<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
-<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
-<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
-<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
-<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.CoprocessorHost;
-<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
-<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;
-<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest;
-<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.HRegionServer;
-<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad;
-<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.testclassification.LargeTests;
-<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.testclassification.MapReduceTests;
-<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
-<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.FSUtils;
-<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Pair;
-<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> org.junit.AfterClass;
-<a class="jxr_linenumber" name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> org.junit.BeforeClass;
-<a class="jxr_linenumber" name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
-<a class="jxr_linenumber" name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> org.junit.experimental.categories.Category;
-<a class="jxr_linenumber" name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> org.mockito.Mockito;
-<a class="jxr_linenumber" name="74" href="#74">74</a>
-<a class="jxr_linenumber" name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Multimap;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.NavigableMap;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ExecutorService;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.atomic.AtomicInteger;
+<a class="jxr_linenumber" name="34" href="#34">34</a>
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FileSystem;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.Path;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseTestingUtility;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HConstants;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HRegionInfo;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HRegionLocation;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.MetaTableAccessor;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.ServerName;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableExistsException;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Admin;
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ClusterConnection;
+<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Connection;
+<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ConnectionFactory;
+<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.RegionLocator;
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Table;
+<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.coprocessor.CoprocessorHost;
+<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem;
+<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
+<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;
+<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest;
+<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.HRegionServer;
+<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad;
+<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.testclassification.LargeTests;
+<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.testclassification.MapReduceTests;
+<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.FSUtils;
+<a class="jxr_linenumber" name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Pair;
+<a class="jxr_linenumber" name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> org.junit.AfterClass;
+<a class="jxr_linenumber" name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> org.junit.BeforeClass;
+<a class="jxr_linenumber" name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
+<a class="jxr_linenumber" name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> org.junit.experimental.categories.Category;
+<a class="jxr_linenumber" name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> org.mockito.Mockito;
 <a class="jxr_linenumber" name="76" href="#76">76</a>
-<a class="jxr_linenumber" name="77" href="#77">77</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController;
-<a class="jxr_linenumber" name="78" href="#78">78</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException;
-<a class="jxr_linenumber" name="79" href="#79">79</a>
-<a class="jxr_linenumber" name="80" href="#80">80</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="81" href="#81">81</a>  <em class="jxr_javadoccomment"> * Test cases for the atomic load error handling of the bulk load functionality.</em>
-<a class="jxr_linenumber" name="82" href="#82">82</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="83" href="#83">83</a>  @Category({MapReduceTests.<strong class="jxr_keyword">class</strong>, LargeTests.<strong class="jxr_keyword">class</strong>})
-<a class="jxr_linenumber" name="84" href="#84">84</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html">TestLoadIncrementalHFilesSplitRecovery</a> {
-<a class="jxr_linenumber" name="85" href="#85">85</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Log LOG = LogFactory.getLog(TestHRegionServerBulkLoad.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="86" href="#86">86</a>
-<a class="jxr_linenumber" name="87" href="#87">87</a>    <strong class="jxr_keyword">static</strong> <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html">HBaseTestingUtility</a> util;
-<a class="jxr_linenumber" name="88" href="#88">88</a>    <em class="jxr_comment">//used by secure subclass</em>
-<a class="jxr_linenumber" name="89" href="#89">89</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> useSecure = false;
-<a class="jxr_linenumber" name="90" href="#90">90</a>
-<a class="jxr_linenumber" name="91" href="#91">91</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> NUM_CFS = 10;
-<a class="jxr_linenumber" name="92" href="#92">92</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> byte[] QUAL = Bytes.toBytes(<span class="jxr_string">"qual"</span>);
-<a class="jxr_linenumber" name="93" href="#93">93</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> ROWCOUNT = 100;
-<a class="jxr_linenumber" name="94" href="#94">94</a>
-<a class="jxr_linenumber" name="95" href="#95">95</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> byte[][] families = <strong class="jxr_keyword">new</strong> byte[NUM_CFS][];
-<a class="jxr_linenumber" name="96" href="#96">96</a>    <strong class="jxr_keyword">static</strong> {
-<a class="jxr_linenumber" name="97" href="#97">97</a>      <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; NUM_CFS; i++) {
-<a class="jxr_linenumber" name="98" href="#98">98</a>        families[i] = Bytes.toBytes(family(i));
-<a class="jxr_linenumber" name="99" href="#99">99</a>      }
-<a class="jxr_linenumber" name="100" href="#100">100</a>   }
-<a class="jxr_linenumber" name="101" href="#101">101</a>
-<a class="jxr_linenumber" name="102" href="#102">102</a>   <strong class="jxr_keyword">static</strong> byte[] rowkey(<strong class="jxr_keyword">int</strong> i) {
-<a class="jxr_linenumber" name="103" href="#103">103</a>     <strong class="jxr_keyword">return</strong> Bytes.toBytes(String.format(<span class="jxr_string">"row_%08d"</span>, i));
-<a class="jxr_linenumber" name="104" href="#104">104</a>   }
-<a class="jxr_linenumber" name="105" href="#105">105</a>
-<a class="jxr_linenumber" name="106" href="#106">106</a>   <strong class="jxr_keyword">static</strong> String family(<strong class="jxr_keyword">int</strong> i) {
-<a class="jxr_linenumber" name="107" href="#107">107</a>     <strong class="jxr_keyword">return</strong> String.format(<span class="jxr_string">"family_%04d"</span>, i);
-<a class="jxr_linenumber" name="108" href="#108">108</a>   }
-<a class="jxr_linenumber" name="109" href="#109">109</a>
-<a class="jxr_linenumber" name="110" href="#110">110</a>   <strong class="jxr_keyword">static</strong> byte[] value(<strong class="jxr_keyword">int</strong> i) {
-<a class="jxr_linenumber" name="111" href="#111">111</a>     <strong class="jxr_keyword">return</strong> Bytes.toBytes(String.format(<span class="jxr_string">"%010d"</span>, i));
-<a class="jxr_linenumber" name="112" href="#112">112</a>   }
-<a class="jxr_linenumber" name="113" href="#113">113</a>
-<a class="jxr_linenumber" name="114" href="#114">114</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> buildHFiles(FileSystem fs, Path dir, <strong class="jxr_keyword">int</strong> value)
-<a class="jxr_linenumber" name="115" href="#115">115</a>       <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="116" href="#116">116</a>     byte[] val = value(value);
-<a class="jxr_linenumber" name="117" href="#117">117</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; NUM_CFS; i++) {
-<a class="jxr_linenumber" name="118" href="#118">118</a>       Path testIn = <strong class="jxr_keyword">new</strong> Path(dir, family(i));
-<a class="jxr_linenumber" name="119" href="#119">119</a>
-<a class="jxr_linenumber" name="120" href="#120">120</a>       TestHRegionServerBulkLoad.createHFile(fs, <strong class="jxr_keyword">new</strong> Path(testIn, <span class="jxr_string">"hfile_"</span> + i),
-<a class="jxr_linenumber" name="121" href="#121">121</a>           Bytes.toBytes(family(i)), QUAL, val, ROWCOUNT);
-<a class="jxr_linenumber" name="122" href="#122">122</a>     }
-<a class="jxr_linenumber" name="123" href="#123">123</a>   }
-<a class="jxr_linenumber" name="124" href="#124">124</a>
-<a class="jxr_linenumber" name="125" href="#125">125</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="126" href="#126">126</a> <em class="jxr_javadoccomment">   * Creates a table with given table name and specified number of column</em>
-<a class="jxr_linenumber" name="127" href="#127">127</a> <em class="jxr_javadoccomment">   * families if the table does not already exist.</em>
-<a class="jxr_linenumber" name="128" href="#128">128</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="129" href="#129">129</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setupTable(<strong class="jxr_keyword">final</strong> Connection connection, TableName table, <strong class="jxr_keyword">int</strong> cfs)
-<a class="jxr_linenumber" name="130" href="#130">130</a>   <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="131" href="#131">131</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="132" href="#132">132</a>       LOG.info(<span class="jxr_string">"Creating table "</span> + table);
-<a class="jxr_linenumber" name="133" href="#133">133</a>       HTableDescriptor htd = <strong class="jxr_keyword">new</strong> HTableDescriptor(table);
-<a class="jxr_linenumber" name="134" href="#134">134</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; cfs; i++) {
-<a class="jxr_linenumber" name="135" href="#135">135</a>         htd.addFamily(<strong class="jxr_keyword">new</strong> HColumnDescriptor(family(i)));
-<a class="jxr_linenumber" name="136" href="#136">136</a>       }
-<a class="jxr_linenumber" name="137" href="#137">137</a>       <strong class="jxr_keyword">try</strong> (Admin admin = connection.getAdmin()) {
-<a class="jxr_linenumber" name="138" href="#138">138</a>         admin.createTable(htd);
-<a class="jxr_linenumber" name="139" href="#139">139</a>       }
-<a class="jxr_linenumber" name="140" href="#140">140</a>     } <strong class="jxr_keyword">catch</strong> (TableExistsException tee) {
-<a class="jxr_linenumber" name="141" href="#141">141</a>       LOG.info(<span class="jxr_string">"Table "</span> + table + <span class="jxr_string">" already exists"</span>);
-<a class="jxr_linenumber" name="142" href="#142">142</a>     }
-<a class="jxr_linenumber" name="143" href="#143">143</a>   }
-<a class="jxr_linenumber" name="144" href="#144">144</a>
-<a class="jxr_linenumber" name="145" href="#145">145</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="146" href="#146">146</a> <em class="jxr_javadoccomment">   * Creates a table with given table name,specified number of column families&lt;br&gt;</em>
-<a class="jxr_linenumber" name="147" href="#147">147</a> <em class="jxr_javadoccomment">   * and splitkeys if the table does not already exist.</em>
-<a class="jxr_linenumber" name="148" href="#148">148</a> <em class="jxr_javadoccomment">   * @param table</em>
-<a class="jxr_linenumber" name="149" href="#149">149</a> <em class="jxr_javadoccomment">   * @param cfs</em>
-<a class="jxr_linenumber" name="150" href="#150">150</a> <em class="jxr_javadoccomment">   * @param SPLIT_KEYS</em>
-<a class="jxr_linenumber" name="151" href="#151">151</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="152" href="#152">152</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setupTableWithSplitkeys(TableName table, <strong class="jxr_keyword">int</strong> cfs, byte[][] SPLIT_KEYS)
-<a class="jxr_linenumber" name="153" href="#153">153</a>       <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="154" href="#154">154</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="155" href="#155">155</a>       LOG.info(<span class="jxr_string">"Creating table "</span> + table);
-<a class="jxr_linenumber" name="156" href="#156">156</a>       HTableDescriptor htd = <strong class="jxr_keyword">new</strong> HTableDescriptor(table);
-<a class="jxr_linenumber" name="157" href="#157">157</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; cfs; i++) {
-<a class="jxr_linenumber" name="158" href="#158">158</a>         htd.addFamily(<strong class="jxr_keyword">new</strong> HColumnDescriptor(family(i)));
-<a class="jxr_linenumber" name="159" href="#159">159</a>       }
-<a class="jxr_linenumber" name="160" href="#160">160</a>
-<a class="jxr_linenumber" name="161" href="#161">161</a>       util.createTable(htd, SPLIT_KEYS);
-<a class="jxr_linenumber" name="162" href="#162">162</a>     } <strong class="jxr_keyword">catch</strong> (TableExistsException tee) {
-<a class="jxr_linenumber" name="163" href="#163">163</a>       LOG.info(<span class="jxr_string">"Table "</span> + table + <span class="jxr_string">" already exists"</span>);
-<a class="jxr_linenumber" name="164" href="#164">164</a>     }
-<a class="jxr_linenumber" name="165" href="#165">165</a>   }
-<a class="jxr_linenumber" name="166" href="#166">166</a>
-<a class="jxr_linenumber" name="167" href="#167">167</a>   <strong class="jxr_keyword">private</strong> Path buildBulkFiles(TableName table, <strong class="jxr_keyword">int</strong> value) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="168" href="#168">168</a>     Path dir = util.getDataTestDirOnTestFS(table.getNameAsString());
-<a class="jxr_linenumber" name="169" href="#169">169</a>     Path bulk1 = <strong class="jxr_keyword">new</strong> Path(dir, table.getNameAsString() + value);
-<a class="jxr_linenumber" name="170" href="#170">170</a>     FileSystem fs = util.getTestFileSystem();
-<a class="jxr_linenumber" name="171" href="#171">171</a>     buildHFiles(fs, bulk1, value);
-<a class="jxr_linenumber" name="172" href="#172">172</a>     <strong class="jxr_keyword">return</strong> bulk1;
-<a class="jxr_linenumber" name="173" href="#173">173</a>   }
-<a class="jxr_linenumber" name="174" href="#174">174</a>
-<a class="jxr_linenumber" name="175" href="#175">175</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="176" href="#176">176</a> <em class="jxr_javadoccomment">   * Populate table with known values.</em>
-<a class="jxr_linenumber" name="177" href="#177">177</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="178" href="#178">178</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> populateTable(<strong class="jxr_keyword">final</strong> Connection connection, TableName table, <strong class="jxr_keyword">int</strong> value)
-<a class="jxr_linenumber" name="179" href="#179">179</a>   <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="180" href="#180">180</a>     <em class="jxr_comment">// create HFiles for different column families</em>
-<a class="jxr_linenumber" name="181" href="#181">181</a>     LoadIncrementalHFiles lih = <strong class="jxr_keyword">new</strong> LoadIncrementalHFiles(util.getConfiguration());
-<a class="jxr_linenumber" name="182" href="#182">182</a>     Path bulk1 = buildBulkFiles(table, value);
-<a class="jxr_linenumber" name="183" href="#183">183</a>     <strong class="jxr_keyword">try</strong> (Table t = connection.getTable(table);
-<a class="jxr_linenumber" name="184" href="#184">184</a>         RegionLocator locator = connection.getRegionLocator(table);
-<a class="jxr_linenumber" name="185" href="#185">185</a>         Admin admin = connection.getAdmin()) {
-<a class="jxr_linenumber" name="186" href="#186">186</a>         lih.doBulkLoad(bulk1, admin, t, locator);
-<a class="jxr_linenumber" name="187" href="#187">187</a>     }
-<a class="jxr_linenumber" name="188" href="#188">188</a>   }
-<a class="jxr_linenumber" name="189" href="#189">189</a>
-<a class="jxr_linenumber" name="190" href="#190">190</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="191" href="#191">191</a> <em class="jxr_javadoccomment">   * Split the known table in half.  (this is hard coded for this test suite)</em>
-<a class="jxr_linenumber" name="192" href="#192">192</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="193" href="#193">193</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> forceSplit(TableName table) {
-<a class="jxr_linenumber" name="194" href="#194">194</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="195" href="#195">195</a>       <em class="jxr_comment">// need to call regions server to by synchronous but isn't visible.</em>
-<a class="jxr_linenumber" name="196" href="#196">196</a>       HRegionServer hrs = util.getRSForFirstRegionInTable(table);
-<a class="jxr_linenumber" name="197" href="#197">197</a>
-<a class="jxr_linenumber" name="198" href="#198">198</a>       <strong class="jxr_keyword">for</strong> (HRegionInfo hri :
-<a class="jxr_linenumber" name="199" href="#199">199</a>           ProtobufUtil.getOnlineRegions(hrs.getRSRpcServices())) {
-<a class="jxr_linenumber" name="200" href="#200">200</a>         <strong class="jxr_keyword">if</strong> (hri.getTable().equals(table)) {
-<a class="jxr_linenumber" name="201" href="#201">201</a>           <em class="jxr_comment">// splitRegion doesn't work if startkey/endkey are null</em>
-<a class="jxr_linenumber" name="202" href="#202">202</a>           ProtobufUtil.split(<strong class="jxr_keyword">null</strong>, hrs.getRSRpcServices(), hri, rowkey(ROWCOUNT / 2));
-<a class="jxr_linenumber" name="203" href="#203">203</a>         }
-<a class="jxr_linenumber" name="204" href="#204">204</a>       }
-<a class="jxr_linenumber" name="205" href="#205">205</a>
-<a class="jxr_linenumber" name="206" href="#206">206</a>       <em class="jxr_comment">// verify that split completed.</em>
-<a class="jxr_linenumber" name="207" href="#207">207</a>       <strong class="jxr_keyword">int</strong> regions;
-<a class="jxr_linenumber" name="208" href="#208">208</a>       <strong class="jxr_keyword">do</strong> {
-<a class="jxr_linenumber" name="209" href="#209">209</a>         regions = 0;
-<a class="jxr_linenumber" name="210" href="#210">210</a>         <strong class="jxr_keyword">for</strong> (HRegionInfo hri :
-<a class="jxr_linenumber" name="211" href="#211">211</a>             ProtobufUtil.getOnlineRegions(hrs.getRSRpcServices())) {
-<a class="jxr_linenumber" name="212" href="#212">212</a>           <strong class="jxr_keyword">if</strong> (hri.getTable().equals(table)) {
-<a class="jxr_linenumber" name="213" href="#213">213</a>             regions++;
-<a class="jxr_linenumber" name="214" href="#214">214</a>           }
-<a class="jxr_linenumber" name="215" href="#215">215</a>         }
-<a class="jxr_linenumber" name="216" href="#216">216</a>         <strong class="jxr_keyword">if</strong> (regions != 2) {
-<a class="jxr_linenumber" name="217" href="#217">217</a>           LOG.info(<span class="jxr_string">"Taking some time to complete split..."</span>);
-<a class="jxr_linenumber" name="218" href="#218">218</a>           Thread.sleep(250);
-<a class="jxr_linenumber" name="219" href="#219">219</a>         }
-<a class="jxr_linenumber" name="220" href="#220">220</a>       } <strong class="jxr_keyword">while</strong> (regions != 2);
-<a class="jxr_linenumber" name="221" href="#221">221</a>     } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="222" href="#222">222</a>       e.printStackTrace();
-<a class="jxr_linenumber" name="223" href="#223">223</a>     } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
+<a class="jxr_linenumber" name="77" href="#77">77</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Multimap;
+<a class="jxr_linenumber" name="78" href="#78">78</a>
+<a class="jxr_linenumber" name="79" href="#79">79</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController;
+<a class="jxr_linenumber" name="80" href="#80">80</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException;
+<a class="jxr_linenumber" name="81" href="#81">81</a>
+<a class="jxr_linenumber" name="82" href="#82">82</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="83" href="#83">83</a>  <em class="jxr_javadoccomment"> * Test cases for the atomic load error handling of the bulk load functionality.</em>
+<a class="jxr_linenumber" name="84" href="#84">84</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="85" href="#85">85</a>  @Category({MapReduceTests.<strong class="jxr_keyword">class</strong>, LargeTests.<strong class="jxr_keyword">class</strong>})
+<a class="jxr_linenumber" name="86" href="#86">86</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html">TestLoadIncrementalHFilesSplitRecovery</a> {
+<a class="jxr_linenumber" name="87" href="#87">87</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Log LOG = LogFactory.getLog(TestHRegionServerBulkLoad.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="88" href="#88">88</a>
+<a class="jxr_linenumber" name="89" href="#89">89</a>    <strong class="jxr_keyword">static</strong> <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html">HBaseTestingUtility</a> util;
+<a class="jxr_linenumber" name="90" href="#90">90</a>    <em class="jxr_comment">//used by secure subclass</em>
+<a class="jxr_linenumber" name="91" href="#91">91</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> useSecure = false;
+<a class="jxr_linenumber" name="92" href="#92">92</a>
+<a class="jxr_linenumber" name="93" href="#93">93</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> NUM_CFS = 10;
+<a class="jxr_linenumber" name="94" href="#94">94</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> byte[] QUAL = Bytes.toBytes(<span class="jxr_string">"qual"</span>);
+<a class="jxr_linenumber" name="95" href="#95">95</a>    <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> ROWCOUNT = 100;
+<a class="jxr_linenumber" name="96" href="#96">96</a>
+<a class="jxr_linenumber" name="97" href="#97">97</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> byte[][] families = <strong class="jxr_keyword">new</strong> byte[NUM_CFS][];
+<a class="jxr_linenumber" name="98" href="#98">98</a>    <strong class="jxr_keyword">static</strong> {
+<a class="jxr_linenumber" name="99" href="#99">99</a>      <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; NUM_CFS; i++) {
+<a class="jxr_linenumber" name="100" href="#100">100</a>       families[i] = Bytes.toBytes(family(i));
+<a class="jxr_linenumber" name="101" href="#101">101</a>     }
+<a class="jxr_linenumber" name="102" href="#102">102</a>   }
+<a class="jxr_linenumber" name="103" href="#103">103</a>
+<a class="jxr_linenumber" name="104" href="#104">104</a>   <strong class="jxr_keyword">static</strong> byte[] rowkey(<strong class="jxr_keyword">int</strong> i) {
+<a class="jxr_linenumber" name="105" href="#105">105</a>     <strong class="jxr_keyword">return</strong> Bytes.toBytes(String.format(<span class="jxr_string">"row_%08d"</span>, i));
+<a class="jxr_linenumber" name="106" href="#106">106</a>   }
+<a class="jxr_linenumber" name="107" href="#107">107</a>
+<a class="jxr_linenumber" name="108" href="#108">108</a>   <strong class="jxr_keyword">static</strong> String family(<strong class="jxr_keyword">int</strong> i) {
+<a class="jxr_linenumber" name="109" href="#109">109</a>     <strong class="jxr_keyword">return</strong> String.format(<span class="jxr_string">"family_%04d"</span>, i);
+<a class="jxr_linenumber" name="110" href="#110">110</a>   }
+<a class="jxr_linenumber" name="111" href="#111">111</a>
+<a class="jxr_linenumber" name="112" href="#112">112</a>   <strong class="jxr_keyword">static</strong> byte[] value(<strong class="jxr_keyword">int</strong> i) {
+<a class="jxr_linenumber" name="113" href="#113">113</a>     <strong class="jxr_keyword">return</strong> Bytes.toBytes(String.format(<span class="jxr_string">"%010d"</span>, i));
+<a class="jxr_linenumber" name="114" href="#114">114</a>   }
+<a class="jxr_linenumber" name="115" href="#115">115</a>
+<a class="jxr_linenumber" name="116" href="#116">116</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> buildHFiles(FileSystem fs, Path dir, <strong class="jxr_keyword">int</strong> value)
+<a class="jxr_linenumber" name="117" href="#117">117</a>       <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="118" href="#118">118</a>     byte[] val = value(value);
+<a class="jxr_linenumber" name="119" href="#119">119</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; NUM_CFS; i++) {
+<a class="jxr_linenumber" name="120" href="#120">120</a>       Path testIn = <strong class="jxr_keyword">new</strong> Path(dir, family(i));
+<a class="jxr_linenumber" name="121" href="#121">121</a>
+<a class="jxr_linenumber" name="122" href="#122">122</a>       TestHRegionServerBulkLoad.createHFile(fs, <strong class="jxr_keyword">new</strong> Path(testIn, <span class="jxr_string">"hfile_"</span> + i),
+<a class="jxr_linenumber" name="123" href="#123">123</a>           Bytes.toBytes(family(i)), QUAL, val, ROWCOUNT);
+<a class="jxr_linenumber" name="124" href="#124">124</a>     }
+<a class="jxr_linenumber" name="125" href="#125">125</a>   }
+<a class="jxr_linenumber" name="126" href="#126">126</a>
+<a class="jxr_linenumber" name="127" href="#127">127</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="128" href="#128">128</a> <em class="jxr_javadoccomment">   * Creates a table with given table name and specified number of column</em>
+<a class="jxr_linenumber" name="129" href="#129">129</a> <em class="jxr_javadoccomment">   * families if the table does not already exist.</em>
+<a class="jxr_linenumber" name="130" href="#130">130</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="131" href="#131">131</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setupTable(<strong class="jxr_keyword">final</strong> Connection connection, TableName table, <strong class="jxr_keyword">int</strong> cfs)
+<a class="jxr_linenumber" name="132" href="#132">132</a>   <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="133" href="#133">133</a>     <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="134" href="#134">134</a>       LOG.info(<span class="jxr_string">"Creating table "</span> + table);
+<a class="jxr_linenumber" name="135" href="#135">135</a>       HTableDescriptor htd = <strong class="jxr_keyword">new</strong> HTableDescriptor(table);
+<a class="jxr_linenumber" name="136" href="#136">136</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; cfs; i++) {
+<a class="jxr_linenumber" name="137" href="#137">137</a>         htd.addFamily(<strong class="jxr_keyword">new</strong> HColumnDescriptor(family(i)));
+<a class="jxr_linenumber" name="138" href="#138">138</a>       }
+<a class="jxr_linenumber" name="139" href="#139">139</a>       <strong class="jxr_keyword">try</strong> (Admin admin = connection.getAdmin()) {
+<a class="jxr_linenumber" name="140" href="#140">140</a>         admin.createTable(htd);
+<a class="jxr_linenumber" name="141" href="#141">141</a>       }
+<a class="jxr_linenumber" name="142" href="#142">142</a>     } <strong class="jxr_keyword">catch</strong> (TableExistsException tee) {
+<a class="jxr_linenumber" name="143" href="#143">143</a>       LOG.info(<span class="jxr_string">"Table "</span> + table + <span class="jxr_string">" already exists"</span>);
+<a class="jxr_linenumber" name="144" href="#144">144</a>     }
+<a class="jxr_linenumber" name="145" href="#145">145</a>   }
+<a class="jxr_linenumber" name="146" href="#146">146</a>
+<a class="jxr_linenumber" name="147" href="#147">147</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="148" href="#148">148</a> <em class="jxr_javadoccomment">   * Creates a table with given table name,specified number of column families&lt;br&gt;</em>
+<a class="jxr_linenumber" name="149" href="#149">149</a> <em class="jxr_javadoccomment">   * and splitkeys if the table does not already exist.</em>
+<a class="jxr_linenumber" name="150" href="#150">150</a> <em class="jxr_javadoccomment">   * @param table</em>
+<a class="jxr_linenumber" name="151" href="#151">151</a> <em class="jxr_javadoccomment">   * @param cfs</em>
+<a class="jxr_linenumber" name="152" href="#152">152</a> <em class="jxr_javadoccomment">   * @param SPLIT_KEYS</em>
+<a class="jxr_linenumber" name="153" href="#153">153</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="154" href="#154">154</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setupTableWithSplitkeys(TableName table, <strong class="jxr_keyword">int</strong> cfs, byte[][] SPLIT_KEYS)
+<a class="jxr_linenumber" name="155" href="#155">155</a>       <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="156" href="#156">156</a>     <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="157" href="#157">157</a>       LOG.info(<span class="jxr_string">"Creating table "</span> + table);
+<a class="jxr_linenumber" name="158" href="#158">158</a>       HTableDescriptor htd = <strong class="jxr_keyword">new</strong> HTableDescriptor(table);
+<a class="jxr_linenumber" name="159" href="#159">159</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; cfs; i++) {
+<a class="jxr_linenumber" name="160" href="#160">160</a>         htd.addFamily(<strong class="jxr_keyword">new</strong> HColumnDescriptor(family(i)));
+<a class="jxr_linenumber" name="161" href="#161">161</a>       }
+<a class="jxr_linenumber" name="162" href="#162">162</a>
+<a class="jxr_linenumber" name="163" href="#163">163</a>       util.createTable(htd, SPLIT_KEYS);
+<a class="jxr_linenumber" name="164" href="#164">164</a>     } <strong class="jxr_keyword">catch</strong> (TableExistsException tee) {
+<a class="jxr_linenumber" name="165" href="#165">165</a>       LOG.info(<span class="jxr_string">"Table "</span> + table + <span class="jxr_string">" already exists"</span>);
+<a class="jxr_linenumber" name="166" href="#166">166</a>     }
+<a class="jxr_linenumber" name="167" href="#167">167</a>   }
+<a class="jxr_linenumber" name="168" href="#168">168</a>
+<a class="jxr_linenumber" name="169" href="#169">169</a>   <strong class="jxr_keyword">private</strong> Path buildBulkFiles(TableName table, <strong class="jxr_keyword">int</strong> value) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="170" href="#170">170</a>     Path dir = util.getDataTestDirOnTestFS(table.getNameAsString());
+<a class="jxr_linenumber" name="171" href="#171">171</a>     Path bulk1 = <strong class="jxr_keyword">new</strong> Path(dir, table.getNameAsString() + value);
+<a class="jxr_linenumber" name="172" href="#172">172</a>     FileSystem fs = util.getTestFileSystem();
+<a class="jxr_linenumber" name="173" href="#173">173</a>     buildHFiles(fs, bulk1, value);
+<a class="jxr_linenumber" name="174" href="#174">174</a>     <strong class="jxr_keyword">return</strong> bulk1;
+<a class="jxr_linenumber" name="175" href="#175">175</a>   }
+<a class="jxr_linenumber" name="176" href="#176">176</a>
+<a class="jxr_linenumber" name="177" href="#177">177</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="178" href="#178">178</a> <em class="jxr_javadoccomment">   * Populate table with known values.</em>
+<a class="jxr_linenumber" name="179" href="#179">179</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="180" href="#180">180</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> populateTable(<strong class="jxr_keyword">final</strong> Connection connection, TableName table, <strong class="jxr_keyword">int</strong> value)
+<a class="jxr_linenumber" name="181" href="#181">181</a>   <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="182" href="#182">182</a>     <em class="jxr_comment">// create HFiles for different column families</em>
+<a class="jxr_linenumber" name="183" href="#183">183</a>     LoadIncrementalHFiles lih = <strong class="jxr_keyword">new</strong> LoadIncrementalHFiles(util.getConfiguration());
+<a class="jxr_linenumber" name="184" href="#184">184</a>     Path bulk1 = buildBulkFiles(table, value);
+<a class="jxr_linenumber" name="185" href="#185">185</a>     <strong class="jxr_keyword">try</strong> (Table t = connection.getTable(table);
+<a class="jxr_linenumber" name="186" href="#186">186</a>         RegionLocator locator = connection.getRegionLocator(table);
+<a class="jxr_linenumber" name="187" href="#187">187</a>         Admin admin = connection.getAdmin()) {
+<a class="jxr_linenumber" name="188" href="#188">188</a>         lih.doBulkLoad(bulk1, admin, t, locator);
+<a class="jxr_linenumber" name="189" href="#189">189</a>     }
+<a class="jxr_linenumber" name="190" href="#190">190</a>   }
+<a class="jxr_linenumber" name="191" href="#191">191</a>
+<a class="jxr_linenumber" name="192" href="#192">192</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="193" href="#193">193</a> <em class="jxr_javadoccomment">   * Split the known table in half.  (this is hard coded for this test suite)</em>
+<a class="jxr_linenumber" name="194" href="#194">194</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="195" href="#195">195</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> forceSplit(TableName table) {
+<a class="jxr_linenumber" name="196" href="#196">196</a>     <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="197" href="#197">197</a>       <em class="jxr_comment">// need to call regions server to by synchronous but isn't visible.</em>
+<a class="jxr_linenumber" name="198" href="#198">198</a>       HRegionServer hrs = util.getRSForFirstRegionInTable(table);
+<a class="jxr_linenumber" name="199" href="#199">199</a>
+<a class="jxr_linenumber" name="200" href="#200">200</a>       <strong class="jxr_keyword">for</strong> (HRegionInfo hri :
+<a class="jxr_linenumber" name="201" href="#201">201</a>           ProtobufUtil.getOnlineRegions(hrs.getRSRpcServices())) {
+<a class="jxr_linenumber" name="202" href="#202">202</a>         <strong class="jxr_keyword">if</strong> (hri.getTable().equals(table)) {
+<a class="jxr_linenumber" name="203" href="#203">203</a>           <em class="jxr_comment">// splitRegion doesn't work if startkey/endkey are null</em>
+<a class="jxr_linenumber" name="204" href="#204">204</a>           ProtobufUtil.split(<strong class="jxr_keyword">null</strong>, hrs.getRSRpcServices(), hri, rowkey(ROWCOUNT / 2));
+<a class="jxr_linenumber" name="205" href="#205">205</a>         }
+<a class="jxr_linenumber" name="206" href="#206">206</a>       }
+<a class="jxr_linenumber" name="207" href="#207">207</a>
+<a class="jxr_linenumber" name="208" href="#208">208</a>       <em class="jxr_comment">// verify that split completed.</em>
+<a class="jxr_linenumber" name="209" href="#209">209</a>       <strong class="jxr_keyword">int</strong> regions;
+<a class="jxr_linenumber" name="210" href="#210">210</a>       <strong class="jxr_keyword">do</strong> {
+<a class="jxr_linenumber" name="211" href="#211">211</a>         regions = 0;
+<a class="jxr_linenumber" name="212" href="#212">212</a>         <strong class="jxr_keyword">for</strong> (HRegionInfo hri :
+<a class="jxr_linenumber" name="213" href="#213">213</a>             ProtobufUtil.getOnlineRegions(hrs.getRSRpcServices())) {
+<a class="jxr_linenumber" name="214" href="#214">214</a>           <strong class="jxr_keyword">if</strong> (hri.getTable().equals(table)) {
+<a class="jxr_linenumber" name="215" href="#215">215</a>             regions++;
+<a class="jxr_linenumber" name="216" href="#216">216</a>           }
+<a class="jxr_linenumber" name="217" href="#217">217</a>         }
+<a class="jxr_linenumber" name="218" href="#218">218</a>         <strong class="jxr_keyword">if</strong> (regions != 2) {
+<a class="jxr_linenumber" name="219" href="#219">219</a>           LOG.info(<span class="jxr_string">"Taking some time to complete split..."</span>);
+<a class="jxr_linenumber" name="220" href="#220">220</a>           Thread.sleep(250);
+<a class="jxr_linenumber" name="221" href="#221">221</a>         }
+<a class="jxr_linenumber" name="222" href="#222">222</a>       } <strong class="jxr_keyword">while</strong> (regions != 2);
+<a class="jxr_linenumber" name="223" href="#223">223</a>     } <strong class="jxr_keyword">catch</strong> (IOException e) {
 <a class="jxr_linenumber" name="224" href="#224">224</a>       e.printStackTrace();
-<a class="jxr_linenumber" name="225" href="#225">225</a>     }
-<a class="jxr_linenumber" name="226" href="#226">226</a>   }
-<a class="jxr_linenumber" name="227" href="#227">227</a>
-<a class="jxr_linenumber" name="228" href="#228">228</a>   @BeforeClass
-<a class="jxr_linenumber" name="229" href="#229">229</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setupCluster() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="230" href="#230">230</a>     util = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html">HBaseTestingUtility</a>();
-<a class="jxr_linenumber" name="231" href="#231">231</a>     util.getConfiguration().set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, <span class="jxr_string">""</span>);
-<a class="jxr_linenumber" name="232" href="#232">232</a>     util.startMiniCluster(1);
-<a class="jxr_linenumber" name="233" href="#233">233</a>   }
-<a class="jxr_linenumber" name="234" href="#234">234</a>
-<a class="jxr_linenumber" name="235" href="#235">235</a>   @AfterClass
-<a class="jxr_linenumber" name="236" href="#236">236</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> teardownCluster() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="237" href="#237">237</a>     util.shutdownMiniCluster();
-<a class="jxr_linenumber" name="238" href="#238">238</a>   }
-<a class="jxr_linenumber" name="239" href="#239">239</a>
-<a class="jxr_linenumber" name="240" href="#240">240</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="241" href="#241">241</a> <em class="jxr_javadoccomment">   * Checks that all columns have the expected value and that there is the</em>
-<a class="jxr_linenumber" name="242" href="#242">242</a> <em class="jxr_javadoccomment">   * expected number of rows.</em>
-<a class="jxr_linenumber" name="243" href="#243">243</a> <em class="jxr_javadoccomment">   * @throws IOException</em>
-<a class="jxr_linenumber" name="244" href="#244">244</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="245" href="#245">245</a>   <strong class="jxr_keyword">void</strong> assertExpectedTable(TableName table, <strong class="jxr_keyword">int</strong> count, <strong class="jxr_keyword">int</strong> value) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="246" href="#246">246</a>     HTableDescriptor [] htds = util.getHBaseAdmin().listTables(table.getNameAsString());
-<a class="jxr_linenumber" name="247" href="#247">247</a>     assertEquals(htds.length, 1);
-<a class="jxr_linenumber" name="248" href="#248">248</a>     Table t = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="249" href="#249">249</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="250" href="#250">250</a>       t = util.getConnection().getTable(table);
-<a class="jxr_linenumber" name="251" href="#251">251</a>       Scan s = <strong class="jxr_keyword">new</strong> Scan();
-<a class="jxr_linenumber" name="252" href="#252">252</a>       ResultScanner sr = t.getScanner(s);
-<a class="jxr_linenumber" name="253" href="#253">253</a>       <strong class="jxr_keyword">int</strong> i = 0;
-<a class="jxr_linenumber" name="254" href="#254">254</a>       <strong class="jxr_keyword">for</strong> (Result r : sr) {
-<a class="jxr_linenumber" name="255" href="#255">255</a>         i++;
-<a class="jxr_linenumber" name="256" href="#256">256</a>         <strong class="jxr_keyword">for</strong> (NavigableMap&lt;byte[], byte[]&gt; nm : r.getNoVersionMap().values()) {
-<a class="jxr_linenumber" name="257" href="#257">257</a>           <strong class="jxr_keyword">for</strong> (byte[] val : nm.values()) {
-<a class="jxr_linenumber" name="258" href="#258">258</a>             assertTrue(Bytes.equals(val, value(value)));
-<a class="jxr_linenumber" name="259" href="#259">259</a>           }
-<a class="jxr_linenumber" name="260" href="#260">260</a>         }
-<a class="jxr_linenumber" name="261" href="#261">261</a>       }
-<a class="jxr_linenumber" name="262" href="#262">262</a>       assertEquals(count, i);
-<a class="jxr_linenumber" name="263" href="#263">263</a>     } <strong class="jxr_keyword">catch</strong> (IOException e) {
-<a class="jxr_linenumber" name="264" href="#264">264</a>       fail(<span class="jxr_string">"Failed due to exception"</span>);
-<a class="jxr_linenumber" name="265" href="#265">265</a>     } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="266" href="#266">266</a>       <strong class="jxr_keyword">if</strong> (t != <strong class="jxr_keyword">null</strong>) t.close();
-<a class="jxr_linenumber" name="267" href="#267">267</a>     }
-<a class="jxr_linenumber" name="268" href="#268">268</a>   }
-<a class="jxr_linenumber" name="269" href="#269">269</a>
-<a class="jxr_linenumber" name="270" href="#270">270</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="271" href="#271">271</a> <em class="jxr_javadoccomment">   * Test that shows that exception thrown from the RS side will result in an</em>
-<a class="jxr_linenumber" name="272" href="#272">272</a> <em class="jxr_javadoccomment">   * exception on the LIHFile client.</em>
-<a class="jxr_linenumber" name="273" href="#273">273</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="274" href="#274">274</a>   @Test(expected=IOException.<strong class="jxr_keyword">class</strong>, timeout=120000)
-<a class="jxr_linenumber" name="275" href="#275">275</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBulkLoadPhaseFailure() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="276" href="#276">276</a>     TableName table = TableName.valueOf(<span class="jxr_string">"bulkLoadPhaseFailure"</span>);
-<a class="jxr_linenumber" name="277" href="#277">277</a>     <strong class="jxr_keyword">final</strong> AtomicInteger attmptedCalls = <strong class="jxr_keyword">new</strong> AtomicInteger();
-<a class="jxr_linenumber" name="278" href="#278">278</a>     <strong class="jxr_keyword">final</strong> AtomicInteger failedCalls = <strong class="jxr_keyword">new</strong> AtomicInteger();
-<a class="jxr_linenumber" name="279" href="#279">279</a>     util.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 2);
-<a class="jxr_linenumber" name="280" href="#280">280</a>     <strong class="jxr_keyword">try</strong> (Connection connection = ConnectionFactory.createConnection(<strong class="jxr_keyword">this</strong>.util.getConfiguration())) {
-<a class="jxr_linenumber" name="281" href="#281">281</a>       setupTable(connection, table, 10);
-<a class="jxr_linenumber" name="282" href="#282">282</a>       LoadIncrementalHFiles lih = <strong class="jxr_keyword">new</strong> LoadIncrementalHFiles(util.getConfiguration()) {
-<a class="jxr_linenumber" name="283" href="#283">283</a>         @Override
-<a class="jxr_linenumber" name="284" href="#284">284</a>         <strong class="jxr_keyword">protected</strong> List&lt;LoadQueueItem&gt; tryAtomicRegionLoad(<strong class="jxr_keyword">final</strong> Connection conn,
-<a class="jxr_linenumber" name="285" href="#285">285</a>             TableName tableName, <strong class="jxr_keyword">final</strong> byte[] first, Collection&lt;LoadQueueItem&gt; lqis,
-<a class="jxr_linenumber" name="286" href="#286">286</a>             <strong class="jxr_keyword">boolean</strong> copyFile) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="287" href="#287">287</a>           <strong class="jxr_keyword">int</strong> i = attmptedCalls.incrementAndGet();
-<a class="jxr_linenumber" name="288" href="#288">288</a>           <strong class="jxr_keyword">if</strong> (i == 1) {
-<a class="jxr_linenumber" name="289" href="#289">289</a>             Connection errConn;
-<a class="jxr_linenumber" name="290" href="#290">290</a>             <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="291" href="#291">291</a>               errConn = getMockedConnection(util.getConfiguration());
-<a class="jxr_linenumber" name="292" href="#292">292</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
-<a class="jxr_linenumber" name="293" href="#293">293</a>               LOG.fatal(<span class="jxr_string">"mocking cruft, should never happen"</span>, e);
-<a class="jxr_linenumber" name="294" href="#294">294</a>               <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"mocking cruft, should never happen"</span>);
-<a class="jxr_linenumber" name="295" href="#295">295</a>             }
-<a class="jxr_linenumber" name="296" href="#296">296</a>             failedCalls.incrementAndGet();
-<a class="jxr_linenumber" name="297" href="#297">297</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.tryAtomicRegionLoad(errConn, tableName, first, lqis, copyFile);
-<a class="jxr_linenumber" name="298" href="#298">298</a>           }
-<a class="jxr_linenumber" name="299" href="#299">299</a>
-<a class="jxr_linenumber" name="300" href="#300">300</a>           <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.tryAtomicRegionLoad(conn, tableName, first, lqis, copyFile);
-<a class="jxr_linenumber" name="301" href="#301">301</a>         }
-<a class="jxr_linenumber" name="302" href="#302">302</a>       };
-<a class="jxr_linenumber" name="303" href="#303">303</a>       <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="304" href="#304">304</a>         <em class="jxr_comment">// create HFiles for different column families</em>
-<a class="jxr_linenumber" name="305" href="#305">305</a>         Path dir = buildBulkFiles(table, 1);
-<a class="jxr_linenumber" name="306" href="#306">306</a>         <strong class="jxr_keyword">try</strong> (Table t = connection.getTable(table);
-<a class="jxr_linenumber" name="307" href="#307">307</a>             RegionLocator locator = connection.getRegionLocator(table);
-<a class="jxr_linenumber" name="308" href="#308">308</a>             Admin admin = connection.getAdmin()) {
-<a class="jxr_linenumber" name="309" href="#309">309</a>           lih.doBulkLoad(dir, admin, t, locator);
-<a class="jxr_linenumber" name="310" href="#310">310</a>         }
-<a class="jxr_linenumber" name="311" href="#311">311</a>       } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="312" href="#312">312</a>         util.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,
-<a class="jxr_linenumber" name="313" href="#313">313</a>             HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);
-<a class="jxr_linenumber" name="314" href="#314">314</a>       }
-<a class="jxr_linenumber" name="315" href="#315">315</a>       fail(<span class="jxr_string">"doBulkLoad should have thrown an exception"</span>);
-<a class="jxr_linenumber" name="316" href="#316">316</a>     }
-<a class="jxr_linenumber" name="317" href="#317">317</a>   }
-<a class="jxr_linenumber" name="318" href="#318">318</a>
-<a class="jxr_linenumber" name="319" href="#319">319</a>   @SuppressWarnings(<span class="jxr_string">"deprecation"</span>)
-<a class="jxr_linenumber" name="320" href="#320">320</a>   <strong class="jxr_keyword">private</strong> ClusterConnection getMockedConnection(<strong class="jxr_keyword">final</strong> Configuration conf)
-<a class="jxr_linenumber" name="321" href="#321">321</a>   <strong class="jxr_keyword">throws</strong> IOException, org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException {
-<a class="jxr_linenumber" name="322" href="#322">322</a>     ClusterConnection c = Mockito.mock(ClusterConnection.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="323" href="#323">323</a>     Mockito.when(c.getConfiguration()).thenReturn(conf);
-<a class="jxr_linenumber" name="324" href="#324">324</a>     Mockito.doNothing().when(c).close();
-<a class="jxr_linenumber" name="325" href="#325">325</a>     <em class="jxr_comment">// Make it so we return a particular location when asked.</em>
-<a class="jxr_linenumber" name="326" href="#326">326</a>     <strong class="jxr_keyword">final</strong> HRegionLocation loc = <strong class="jxr_keyword">new</strong> HRegionLocation(HRegionInfo.FIRST_META_REGIONINFO,
-<a class="jxr_linenumber" name="327" href="#327">327</a>         ServerName.valueOf(<span class="jxr_string">"example.org"</span>, 1234, 0));
-<a class="jxr_linenumber" name="328" href="#328">328</a>     Mockito.when(c.getRegionLocation((TableName) Mockito.any(),
-<a class="jxr_linenumber" name="329" href="#329">329</a>         (byte[]) Mockito.any(), Mockito.anyBoolean())).
-<a class="jxr_linenumber" name="330" href="#330">330</a>       thenReturn(loc);
-<a class="jxr_linenumber" name="331" href="#331">331</a>     Mockito.when(c.locateRegion((TableName) Mockito.any(), (byte[]) Mockito.any())).
+<a class="jxr_linenumber" name="225" href="#225">225</a>     } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
+<a class="jxr_linenumber" name="226" href="#226">226</a>       e.printStackTrace();
+<a class="jxr_linenumber" name="227" href="#227">227</a>     }
+<a class="jxr_linenumber" name="228" href="#228">228</a>   }
+<a class="jxr_linenumber" name="229" href="#229">229</a>
+<a class="jxr_linenumber" name="230" href="#230">230</a>   @BeforeClass
+<a class="jxr_linenumber" name="231" href="#231">231</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setupCluster() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="232" href="#232">232</a>     util = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html">HBaseTestingUtility</a>();
+<a class="jxr_linenumber" name="233" href="#233">233</a>     util.getConfiguration().set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, <span class="jxr_string">""</span>);
+<a class="jxr_linenumber" name="234" href="#234">234</a>     util.startMiniCluster(1);
+<a class="jxr_linenumber" name="235" href="#235">235</a>   }
+<a class="jxr_linenumber" name="236" href="#236">236</a>
+<a class="jxr_linenumber" name="237" href="#237">237</a>   @AfterClass
+<a class="jxr_linenumber" name="238" href="#238">238</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> teardownCluster() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="239" href="#239">239</a>     util.shutdownMiniCluster();
+<a class="jxr_linenumber" name="240" href="#240">240</a>   }
+<a class="jxr_linenumber" name="241" href="#241">241</a>
+<a class="jxr_linenumber" name="242" href="#242">242</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="243" href="#243">243</a> <em class="jxr_javadoccomment">   * Checks that all columns have the expected value and that there is the</em>
+<a class="jxr_linenumber" name="244" href="#244">244</a> <em class="jxr_javadoccomment">   * expected number of rows.</em>
+<a class="jxr_linenumber" name="245" href="#245">245</a> <em class="jxr_javadoccomment">   * @throws IOException</em>
+<a class="jxr_linenumber" name="246" href="#246">246</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="247" href="#247">247</a>   <strong class="jxr_keyword">void</strong> assertExpectedTable(TableName table, <strong class="jxr_keyword">int</strong> count, <strong class="jxr_keyword">int</strong> value) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="248" href="#248">248</a>     HTableDescriptor [] htds = util.getHBaseAdmin().listTables(table.getNameAsString());
+<a class="jxr_linenumber" name="249" href="#249">249</a>     assertEquals(htds.length, 1);
+<a class="jxr_linenumber" name="250" href="#250">250</a>     Table t = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="251" href="#251">251</a>     <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="252" href="#252">252</a>       t = util.getConnection().getTable(table);
+<a class="jxr_linenumber" name="253" href="#253">253</a>       Scan s = <strong class="jxr_keyword">new</strong> Scan();
+<a class="jxr_linenumber" name="254" href="#254">254</a>       ResultScanner sr = t.getScanner(s);
+<a class="jxr_linenumber" name="255" href="#255">255</a>       <strong class="jxr_keyword">int</strong> i = 0;
+<a class="jxr_linenumber" name="256" href="#256">256</a>       <strong class="jxr_keyword">for</strong> (Result r : sr) {
+<a class="jxr_linenumber" name="257" href="#257">257</a>         i++;
+<a class="jxr_linenumber" name="258" href="#258">258</a>         <strong class="jxr_keyword">for</strong> (NavigableMap&lt;byte[], byte[]&gt; nm : r.getNoVersionMap().values()) {
+<a class="jxr_linenumber" name="259" href="#259">259</a>           <strong class="jxr_keyword">for</strong> (byte[] val : nm.values()) {
+<a class="jxr_linenumber" name="260" href="#260">260</a>             assertTrue(Bytes.equals(val, value(value)));
+<a class="jxr_linenumber" name="261" href="#261">261</a>           }
+<a class="jxr_linenumber" name="262" href="#262">262</a>         }
+<a class="jxr_linenumber" name="263" href="#263">263</a>       }
+<a class="jxr_linenumber" name="264" href="#264">264</a>       assertEquals(count, i);
+<a class="jxr_linenumber" name="265" href="#265">265</a>     } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="266" href="#266">266</a>       fail(<span class="jxr_string">"Failed due to exception"</span>);
+<a class="jxr_linenumber" name="267" href="#267">267</a>     } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="268" href="#268">268</a>       <strong class="jxr_keyword">if</strong> (t != <strong class="jxr_keyword">null</strong>) t.close();
+<a class="jxr_linenumber" name="269" href="#269">269</a>     }
+<a class="jxr_linenumber" name="270" href="#270">270</a>   }
+<a class="jxr_linenumber" name="271" href="#271">271</a>
+<a class="jxr_linenumber" name="272" href="#272">272</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="273" href="#273">273</a> <em class="jxr_javadoccomment">   * Test that shows that exception thrown from the RS side will result in an</em>
+<a class="jxr_linenumber" name="274" href="#274">274</a> <em class="jxr_javadoccomment">   * exception on the LIHFile client.</em>
+<a class="jxr_linenumber" name="275" href="#275">275</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="276" href="#276">276</a>   @Test(expected=IOException.<strong class="jxr_keyword">class</strong>, timeout=120000)
+<a class="jxr_linenumber" name="277" href="#277">277</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBulkLoadPhaseFailure() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="278" href="#278">278</a>     TableName table = TableName.valueOf(<span class="jxr_string">"bulkLoadPhaseFailure"</span>);
+<a class="jxr_linenumber" name="279" href="#279">279</a>     <strong class="jxr_keyword">final</strong> AtomicInteger attmptedCalls = <strong class="jxr_keyword">new</strong> AtomicInteger();
+<a class="jxr_linenumber" name="280" href="#280">280</a>     <strong class="jxr_keyword">final</strong> AtomicInteger failedCalls = <strong class="jxr_keyword">new</strong> AtomicInteger();
+<a class="jxr_linenumber" name="281" href="#281">281</a>     util.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 2);
+<a class="jxr_linenumber" name="282" href="#282">282</a>     <strong class="jxr_keyword">try</strong> (Connection connection = ConnectionFactory.createConnection(<strong class="jxr_keyword">this</strong>.util.getConfiguration())) {
+<a class="jxr_linenumber" name="283" href="#283">283</a>       setupTable(connection, table, 10);
+<a class="jxr_linenumber" name="284" href="#284">284</a>       LoadIncrementalHFiles lih = <strong class="jxr_keyword">new</strong> LoadIncrementalHFiles(util.getConfiguration()) {
+<a class="jxr_linenumber" name="285" href="#285">285</a>         @Override
+<a class="jxr_linenumber" name="286" href="#286">286</a>         <strong class="jxr_keyword">protected</strong> List&lt;LoadQueueItem&gt; tryAtomicRegionLoad(<strong class="jxr_keyword">final</strong> Connection conn,
+<a class="jxr_linenumber" name="287" href="#287">287</a>             TableName tableName, <strong class="jxr_keyword">final</strong> byte[] first, Collection&lt;LoadQueueItem&gt; lqis,
+<a class="jxr_linenumber" name="288" href="#288">288</a>             <strong class="jxr_keyword">boolean</strong> copyFile) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="289" href="#289">289</a>           <strong class="jxr_keyword">int</strong> i = attmptedCalls.incrementAndGet();
+<a class="jxr_linenumber" name="290" href="#290">290</a>           <strong class="jxr_keyword">if</strong> (i == 1) {
+<a class="jxr_linenumber" name="291" href="#291">291</a>             Connection errConn;
+<a class="jxr_linenumber" name="292" href="#292">292</a>             <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="293" href="#293">293</a>               errConn = getMockedConnection(util.getConfiguration());
+<a class="jxr_linenumber" name="294" href="#294">294</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
+<a class="jxr_linenumber" name="295" href="#295">295</a>               LOG.fatal(<span class="jxr_string">"mocking cruft, should never happen"</span>, e);
+<a class="jxr_linenumber" name="296" href="#296">296</a>               <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"mocking cruft, should never happen"</span>);
+<a class="jxr_linenumber" name="297" href="#297">297</a>             }
+<a class="jxr_linenumber" name="298" href="#298">298</a>             failedCalls.incrementAndGet();
+<a class="jxr_linenumber" name="299" href="#299">299</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.tryAtomicRegionLoad(errConn, tableName, first, lqis, copyFile);
+<a class="jxr_linenumber" name="300" href="#300">300</a>           }
+<a class="jxr_linenumber" name="301" href="#301">301</a>
+<a class="jxr_linenumber" name="302" href="#302">302</a>           <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.tryAtomicRegionLoad(conn, tableName, first, lqis, copyFile);
+<a class="jxr_linenumber" name="303" href="#303">303</a>         }
+<a class="jxr_linenumber" name="304" href="#304">304</a>       };
+<a class="jxr_linenumber" name="305" href="#305">305</a>       <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="306" href="#306">306</a>         <em class="jxr_comment">// create HFiles for different column families</em>
+<a class="jxr_linenumber" name="307" href="#307">307</a>         Path dir = buildBulkFiles(table, 1);
+<a class="jxr_linenumber" name="308" href="#308">308</a>         <strong class="jxr_keyword">try</strong> (Table t = connection.getTable(table);
+<a class="jxr_linenumber" name="309" href="#309">309</a>             RegionLocator locator = connection.getRegionLocator(table);
+<a class="jxr_linenumber" name="310" href="#310">310</a>             Admin admin = connection.getAdmin()) {
+<a class="jxr_linenumber" name="311" href="#311">311</a>           lih.doBulkLoad(dir, admin, t, locator);
+<a class="jxr_linenumber" name="312" href="#312">312</a>         }
+<a class="jxr_linenumber" name="313" href="#313">313</a>       } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="314" href="#314">314</a>         util.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,
+<a class="jxr_linenumber" name="315" href="#315">315</a>             HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);
+<a class="jxr_linenumber" name="316" href="#316">316</a>       }
+<a class="jxr_linenumber" name="317" href="#317">317</a>       fail(<span class="jxr_string">"doBulkLoad should have thrown an exception"</span>);
+<a class="jxr_linenumber" name="318" href="#318">318</a>     }
+<a class="jxr_linenumber" name="319" href="#319">319</a>   }
+<a class="jxr_linenumber" name="320" href="#320">320</a>
+<a class="jxr_linenumber" name="321" href="#321">321</a>   @SuppressWarnings(<span class="jxr_string">"deprecation"</span>)
+<a class="jxr_linenumber" name="322" href="#322">322</a>   <strong class="jxr_keyword">private</strong> ClusterConnection getMockedConnection(<strong class="jxr_keyword">final</strong> Configuration conf)
+<a class="jxr_linenumber" name="323" href="#323">323</a>   <strong class="jxr_keyword">throws</strong> IOException, org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException {
+<a class="jxr_linenumber" name="324" href="#324">324</a>     ClusterConnection c = Mockito.mock(ClusterConnection.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="325" href="#325">325</a>     Mockito.when(c.getConfiguration()).thenReturn(conf);
+<a class="jxr_linenumber" name="326" href="#326">326</a>     Mockito.doNothing().when(c).close();
+<a class="jxr_linenumber" name="327" href="#327">327</a>     <em class="jxr_comment">// Make it so we return a particular location when asked.</em>
+<a class="jxr_linenumber" name="328" href="#328">328</a>     <strong class="jxr_keyword">final</strong> HRegionLocation loc = <strong class="jxr_keyword">new</strong> HRegionLocation(HRegionInfo.FIRST_META_REGIONINFO,
+<a class="jxr_linenumber" name="329" href="#329">329</a>         ServerName.valueOf(<span class="jxr_string">"example.org"</span>, 1234, 0));
+<a class="jxr_linenumber" name="330" href="#330">330</a>     Mockito.when(c.getRegionLocation((TableName) Mockito.any(),
+<a class="jxr_linenumber" name="331" href="#331">331</a>         (byte[]) Mockito.any(), Mockito.anyBoolean())).
 <a class="jxr_linenumber" name="332" href="#332">332</a>       thenReturn(loc);
-<a class="jxr_linenumber" name="333" href="#333">333</a>     ClientProtos.ClientService.BlockingInterface hri =
-<a class="jxr_linenumber" name="334" href="#334">334</a>       Mockito.mock(ClientProtos.ClientService.BlockingInterface.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="335" href="#335">335</a>     Mockito.when(hri.bulkLoadHFile((RpcController)Mockito.any(), (BulkLoadHFileRequest)Mockito.any())).
-<a class="jxr_linenumber" name="336" href="#336">336</a>       thenThrow(<strong class="jxr_keyword">new</strong> ServiceException(<strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"injecting bulk load error"</span>)));
-<a class="jxr_linenumber" name="337" href="#337">337</a>     Mockito.when(c.getClient(Mockito.any(ServerName.<strong class="jxr_keyword">class</strong>))).
-<a class="jxr_linenumber" name="338" href="#338">338</a>       thenReturn(hri);
-<a class="jxr_linenumber" name="339" href="#339">339</a>     <strong class="jxr_keyword">return</strong> c;
-<a class="jxr_linenumber" name="340" href="#340">340</a>   }
-<a class="jxr_linenumber" name="341" href="#341">341</a>
-<a class="jxr_linenumber" name="342" href="#342">342</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="343" href="#343">343</a> <em class="jxr_javadoccomment">   * This test exercises the path where there is a split after initial</em>
-<a class="jxr_linenumber" name="344" href="#344">344</a> <em class="jxr_javadoccomment">   * validation but before the atomic bulk load call. We cannot use presplitting</em>
-<a class="jxr_linenumber" name="345" href="#345">345</a> <em class="jxr_javadoccomment">   * to test this path, so we actually inject a split just before the atomic</em>
-<a class="jxr_linenumber" name="346" href="#346">346</a> <em class="jxr_javadoccomment">   * region load.</em>
-<a class="jxr_linenumber" name="347" href="#347">347</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="348" href="#348">348</a>   @Test (timeout=120000)
-<a class="jxr_linenumber" name="349" href="#349">349</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSplitWhileBulkLoadPhase() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="350" href="#350">350</a>     <strong class="jxr_keyword">final</strong> TableName table = TableName.valueOf(<span class="jxr_string">"splitWhileBulkloadPhase"</span>);
-<a class="jxr_linenumber" name="351" href="#351">351</a>     <strong class="jxr_keyword">try</strong> (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {
-<a class="jxr_linenumber" name="352" href="#352">352</a>       setupTable(connection, table, 10);
-<a class="jxr_linenumber" name="353" href="#353">353</a>       populateTable(connection, table,1);
-<a class="jxr_linenumber" name="354" href="#354">354</a>       assertExpectedTable(table, ROWCOUNT, 1);
-<a class="jxr_linenumber" name="355" href="#355">355</a>
-<a class="jxr_linenumber" name="356" href="#356">356</a>       <em class="jxr_comment">// Now let's cause trouble.  This will occur after checks and cause bulk</em>
-<a class="jxr_linenumber" name="357" href="#357">357</a>       <em class="jxr_comment">// files to fail when attempt to atomically import.  This is recoverable.</em>
-<a class="jxr_linenumber" name="358" href="#358">358</a>       <strong class="jxr_keyword">final</strong> AtomicInteger attemptedCalls = <strong class="jxr_keyword">new</strong> AtomicInteger();
-<a class="jxr_linenumber" name="359" href="#359">359</a>       LoadIncrementalHFiles lih2 = <strong class="jxr_keyword">new</strong> LoadIncrementalHFiles(util.getConfiguration()) {
-<a class="jxr_linenumber" name="360" href="#360">360</a>         @Override
-<a class="jxr_linenumber" name="361" href="#361">361</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> bulkLoadPhase(<strong class="jxr_keyword">final</strong> Table htable, <strong class="jxr_keyword">final</strong> Connection conn,
-<a class="jxr_linenumber" name="362" href="#362">362</a>             ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,
-<a class="jxr_linenumber" name="363" href="#363">363</a>             <strong class="jxr_keyword">final</strong> Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, <strong class="jxr_keyword">boolean</strong> copyFile)
-<a class="jxr_linenumber" name="364" href="#364">364</a>                 <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="365" href="#365">365</a>           <strong class="jxr_keyword">int</strong> i = attemptedCalls.incrementAndGet();
-<a class="jxr_linenumber" name="366" href="#366">366</a>           <strong class="jxr_keyword">if</strong> (i == 1) {
-<a class="jxr_linenumber" name="367" href="#367">367</a>             <em class="jxr_comment">// On first attempt force a split.</em>
-<a class="jxr_linenumber" name="368" href="#368">368</a>             forceSplit(table);
-<a class="jxr_linenumber" name="369" href="#369">369</a>           }
-<a class="jxr_linenumber" name="370" href="#370">370</a>           <strong class="jxr_keyword">super</strong>.bulkLoadPhase(htable, conn, pool, queue, regionGroups, copyFile);
-<a class="jxr_linenumber" name="371" href="#371">371</a>         }
-<a class="jxr_linenumber" name="372" href="#372">372</a>       };
-<a class="jxr_linenumber" name="373" href="#373">373</a>
-<a class="jxr_linenumber" name="374" href="#374">374</a>       <em class="jxr_comment">// create HFiles for different column families</em>
-<a class="jxr_linenumber" name="375" href="#375">375</a>       <strong class="jxr_keyword">try</strong> (Table t = connection.getTable(table);
-<a class="jxr_linenumber" name="376" href="#376">376</a>           RegionLocator locator = connection.getRegionLocator(table);
-<a class="jxr_linenumber" name="377" href="#377">377</a>           Admin admin = connection.getAdmin()) {
-<a class="jxr_linenumber" name="378" href="#378">378</a>         Path bulk = buildBulkFiles(table, 2);
-<a class="jxr_linenumber" name="379" href="#379">379</a>         lih2.doBulkLoad(bulk, admin, t, locator);
-<a class="jxr_linenumber" name="380" href="#380">380</a>       }
-<a class="jxr_linenumber" name="381" href="#381">381</a>
-<a class="jxr_linenumber" name="382" href="#382">382</a>       <em class="jxr_comment">// check that data was loaded</em>
-<a class="jxr_linenumber" name="383" href="#383">383</a>       <em class="jxr_comment">// The three expected attempts are 1) failure because need to split, 2)</em>
-<a class="jxr_linenumber" name="384" href="#384">384</a>       <em class="jxr_comment">// load of split top 3) load of split bottom</em>
-<a class="jxr_linenumber" name="385" href="#385">385</a>       assertEquals(attemptedCalls.get(), 3);
-<a class="jxr_linenumber" name="386" href="#386">386</a>       assertExpectedTable(table, ROWCOUNT, 2);
-<a class="jxr_linenumber" name="387" href="#387">387</a>     }
-<a class="jxr_linenumber" name="388" href="#388">388</a>   }
-<a class="jxr_linenumber" name="389" href="#389">389</a>
-<a class="jxr_linenumber" name="390" href="#390">390</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="391" href="#391">391</a> <em class="jxr_javadoccomment">   * This test splits a table and attempts to bulk load.  The bulk import files</em>
-<a class="jxr_linenumber" name="392" href="#392">392</a> <em class="jxr_javadoccomment">   * should be split before atomically importing.</em>
-<a class="jxr_linenumber" name="393" href="#393">393</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="394" href="#394">394</a>   @Test (timeout=120000)
-<a class="jxr_linenumber" name="395" href="#395">395</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGroupOrSplitPresplit() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="396" href="#396">396</a>     <strong class="jxr_keyword">final</strong> TableName table = TableName.valueOf(<span class="jxr_string">"groupOrSplitPresplit"</span>);
-<a class="jxr_linenumber" name="397" href="#397">397</a>     <strong class="jxr_keyword">try</strong> (Connection connection = ConnectionFactory.createConnection(util.getConfiguration())) {
-<a class="jxr_linenumber" name="398" href="#398">398</a>       setupTable(connection, table, 10);
-<a class="jxr_linenumber" name="399" href="#399">399</a>       populateTable(connection, table, 1);
-<a class="jxr_linenumber" name="400" href="#400">400</a>       assertExpectedTable(connection, table, ROWCOUNT, 1);
-<a class="jxr_linenumber" name="401" href="#401">401</a>       forceSplit(table);
-<a class="jxr_linenumber" name="402" href="#402">402</a>
-<a class="jxr_linenumber" name="403" href="#403">403</a>       <strong class="jxr_keyword">final</strong> AtomicInteger countedLqis= <strong class="jxr_keyword">new</strong> AtomicInteger();
-<a class="jxr_linenumber" name="404" href="#404">404</a>       LoadIncrementalHFiles lih = <strong class="jxr_keyword">new</strong> LoadIncrementalHFiles(
-<a class="jxr_linenumber" name="405" href="#405">405</a>           util.getConfiguration()) {
-<a class="jxr_linenumber" name="406" href="#406">406</a>         @Override
-<a class="jxr_linenumber" name="407" href="#407">407</a>         <strong class="jxr_keyword">protected</strong> Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; groupOrSplit(
-<a class="jxr_linenumber" name="408" href="#408">408</a>             Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups,
-<a class="jxr_linenumber" name="409" href="#409">409</a>             <strong class="jxr_keyword">final</strong> LoadQueueItem item, <strong class="jxr_keyword">final</strong> Table htable,
-<a class="jxr_linenumber" name="410" href="#410">410</a>             <strong class="jxr_keyword">final</strong> Pair&lt;byte[][], byte[][]&gt; startEndKeys) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="411" href="#411">411</a>           Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; lqis = <strong class="jxr_keyword">super</strong>.groupOrSplit(regionGroups, item, htable,
-<a class="jxr_linenumber" name="412" href="#412">412</a>               startEndKeys);
-<a class="jxr_linenumber" name="413" href="#413">413</a>           <strong class="jxr_keyword">if</strong> (lqis != <strong class="jxr_keyword">null</strong> &amp;&amp; lqis.getFirst() != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="414" href="#414">414</a>             countedLqis.addAndGet(lqis.getFirst().size());
-<a class="jxr_linenumber" name="415" href="#415">415</a>           }
-<a class="jxr_linenumber" name="416" href="#416">416</a>           <strong class="jxr_keyword">return</strong> lqis;
-<a class="jxr_linenumber" name="417" href="#417">417</a>         }
-<a class="jxr_linenumber" name="418" href="#418">418</a>       };
-<a class="jxr_linenumber" name="419" href="#419">419</a>
-<a class="jxr_linenumber" name="420" href="#420">420</a>       <em class="jxr_comment">// create HFiles for different column families</em>
-<a class="jxr_linenumber" name="421" href="#421">421</a>       Path bulk = buildBulkFiles(table, 2);
-<a class="jxr_linenumber" name="422" href="#422">422</a>       <strong class="jxr_keyword">try</strong> (Table t = connection.getTable(table);
-<a class="jxr_linenumber" name="423" href="#423">423</a>           RegionLocator locator = connection.getRegionLocator(table);
-<a class="jxr_linenumber" name="424" href="#424">424</a>           Admin admin = connection.getAdmin()) {
-<a class="jxr_linenumber" name="425" href="#425">425</a>         lih.doBulkLoad(bulk, admin, t, locator);
-<a class="jxr_linenumber" name="426" href="#426">426</a>       }
-<a class="jxr_linenumber" name="427" href="#427">427</a>       assertExpectedTable(connection, table, ROWCOUNT, 2);
-<a class="jxr_linenumber" name="428" href="#428">428</a>       assertEquals(20, countedLqis.get());
-<a class="jxr_linenumber" name="429" href="#429">429</a>     }
-<a class="jxr_linenumber" name="430" href="#430">430</a>   }
-<a class="jxr_linenumber" name="431" href="#431">431</a>
-<a class="jxr_linenumber" name="432" href="#432">432</a>   <em class="jxr_javadoccomment">/**</e

<TRUNCATED>

[05/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref-test/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html
----------------------------------------------------------------------
diff --git a/xref-test/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html b/xref-test/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html
index 484d2ee..b5415ac 100644
--- a/xref-test/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html
+++ b/xref-test/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html
@@ -553,121 +553,123 @@
 <a class="jxr_linenumber" name="543" href="#543">543</a>         List&lt;String&gt; queues = rq.getUnClaimedQueueIds(deadRsZnode);
 <a class="jxr_linenumber" name="544" href="#544">544</a>         <strong class="jxr_keyword">for</strong>(String queue:queues){
 <a class="jxr_linenumber" name="545" href="#545">545</a>           Pair&lt;String, SortedSet&lt;String&gt;&gt; pair = rq.claimQueue(deadRsZnode, queue);
-<a class="jxr_linenumber" name="546" href="#546">546</a>           logZnodesMap.put(pair.getFirst(), pair.getSecond());
-<a class="jxr_linenumber" name="547" href="#547">547</a>         }
-<a class="jxr_linenumber" name="548" href="#548">548</a>         server.abort(<span class="jxr_string">"Done with testing"</span>, <strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="549" href="#549">549</a>       } <strong class="jxr_keyword">catch</strong> (Exception e) {
-<a class="jxr_linenumber" name="550" href="#550">550</a>         LOG.error(<span class="jxr_string">"Got exception while running NodeFailoverWorker"</span>, e);
-<a class="jxr_linenumber" name="551" href="#551">551</a>       } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="552" href="#552">552</a>         latch.countDown();
-<a class="jxr_linenumber" name="553" href="#553">553</a>       }
-<a class="jxr_linenumber" name="554" href="#554">554</a>     }
-<a class="jxr_linenumber" name="555" href="#555">555</a>
-<a class="jxr_linenumber" name="556" href="#556">556</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="557" href="#557">557</a> <em class="jxr_javadoccomment">     * @return 1 when the map is not empty.</em>
-<a class="jxr_linenumber" name="558" href="#558">558</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="559" href="#559">559</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> isLogZnodesMapPopulated() {
-<a class="jxr_linenumber" name="560" href="#560">560</a>       Collection&lt;Set&lt;String&gt;&gt; sets = logZnodesMap.values();
-<a class="jxr_linenumber" name="561" href="#561">561</a>       <strong class="jxr_keyword">if</strong> (sets.size() &gt; 1) {
-<a class="jxr_linenumber" name="562" href="#562">562</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"unexpected size of logZnodesMap: "</span> + sets.size());
-<a class="jxr_linenumber" name="563" href="#563">563</a>       }
-<a class="jxr_linenumber" name="564" href="#564">564</a>       <strong class="jxr_keyword">if</strong> (sets.size() == 1) {
-<a class="jxr_linenumber" name="565" href="#565">565</a>         Set&lt;String&gt; s = sets.iterator().next();
-<a class="jxr_linenumber" name="566" href="#566">566</a>         <strong class="jxr_keyword">for</strong> (String file : files) {
-<a class="jxr_linenumber" name="567" href="#567">567</a>           <em class="jxr_comment">// at least one file was missing</em>
-<a class="jxr_linenumber" name="568" href="#568">568</a>           <strong class="jxr_keyword">if</strong> (!s.contains(file)) {
-<a class="jxr_linenumber" name="569" href="#569">569</a>             <strong class="jxr_keyword">return</strong> 0;
-<a class="jxr_linenumber" name="570" href="#570">570</a>           }
-<a class="jxr_linenumber" name="571" href="#571">571</a>         }
-<a class="jxr_linenumber" name="572" href="#572">572</a>         <strong class="jxr_keyword">return</strong> 1; <em class="jxr_comment">// we found all the files</em>
-<a class="jxr_linenumber" name="573" href="#573">573</a>       }
-<a class="jxr_linenumber" name="574" href="#574">574</a>       <strong class="jxr_keyword">return</strong> 0;
-<a class="jxr_linenumber" name="575" href="#575">575</a>     }
-<a class="jxr_linenumber" name="576" href="#576">576</a>   }
-<a class="jxr_linenumber" name="577" href="#577">577</a>
-<a class="jxr_linenumber" name="578" href="#578">578</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html">FailInitializeDummyReplicationSource</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationSourceDummy.html">ReplicationSourceDummy</a> {
+<a class="jxr_linenumber" name="546" href="#546">546</a>           <strong class="jxr_keyword">if</strong> (pair != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="547" href="#547">547</a>             logZnodesMap.put(pair.getFirst(), pair.getSecond());
+<a class="jxr_linenumber" name="548" href="#548">548</a>           }
+<a class="jxr_linenumber" name="549" href="#549">549</a>         }
+<a class="jxr_linenumber" name="550" href="#550">550</a>         server.abort(<span class="jxr_string">"Done with testing"</span>, <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="551" href="#551">551</a>       } <strong class="jxr_keyword">catch</strong> (Exception e) {
+<a class="jxr_linenumber" name="552" href="#552">552</a>         LOG.error(<span class="jxr_string">"Got exception while running NodeFailoverWorker"</span>, e);
+<a class="jxr_linenumber" name="553" href="#553">553</a>       } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="554" href="#554">554</a>         latch.countDown();
+<a class="jxr_linenumber" name="555" href="#555">555</a>       }
+<a class="jxr_linenumber" name="556" href="#556">556</a>     }
+<a class="jxr_linenumber" name="557" href="#557">557</a>
+<a class="jxr_linenumber" name="558" href="#558">558</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="559" href="#559">559</a> <em class="jxr_javadoccomment">     * @return 1 when the map is not empty.</em>
+<a class="jxr_linenumber" name="560" href="#560">560</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="561" href="#561">561</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> isLogZnodesMapPopulated() {
+<a class="jxr_linenumber" name="562" href="#562">562</a>       Collection&lt;Set&lt;String&gt;&gt; sets = logZnodesMap.values();
+<a class="jxr_linenumber" name="563" href="#563">563</a>       <strong class="jxr_keyword">if</strong> (sets.size() &gt; 1) {
+<a class="jxr_linenumber" name="564" href="#564">564</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"unexpected size of logZnodesMap: "</span> + sets.size());
+<a class="jxr_linenumber" name="565" href="#565">565</a>       }
+<a class="jxr_linenumber" name="566" href="#566">566</a>       <strong class="jxr_keyword">if</strong> (sets.size() == 1) {
+<a class="jxr_linenumber" name="567" href="#567">567</a>         Set&lt;String&gt; s = sets.iterator().next();
+<a class="jxr_linenumber" name="568" href="#568">568</a>         <strong class="jxr_keyword">for</strong> (String file : files) {
+<a class="jxr_linenumber" name="569" href="#569">569</a>           <em class="jxr_comment">// at least one file was missing</em>
+<a class="jxr_linenumber" name="570" href="#570">570</a>           <strong class="jxr_keyword">if</strong> (!s.contains(file)) {
+<a class="jxr_linenumber" name="571" href="#571">571</a>             <strong class="jxr_keyword">return</strong> 0;
+<a class="jxr_linenumber" name="572" href="#572">572</a>           }
+<a class="jxr_linenumber" name="573" href="#573">573</a>         }
+<a class="jxr_linenumber" name="574" href="#574">574</a>         <strong class="jxr_keyword">return</strong> 1; <em class="jxr_comment">// we found all the files</em>
+<a class="jxr_linenumber" name="575" href="#575">575</a>       }
+<a class="jxr_linenumber" name="576" href="#576">576</a>       <strong class="jxr_keyword">return</strong> 0;
+<a class="jxr_linenumber" name="577" href="#577">577</a>     }
+<a class="jxr_linenumber" name="578" href="#578">578</a>   }
 <a class="jxr_linenumber" name="579" href="#579">579</a>
-<a class="jxr_linenumber" name="580" href="#580">580</a>     @Override
-<a class="jxr_linenumber" name="581" href="#581">581</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> init(Configuration conf, FileSystem fs, ReplicationSourceManager manager,
-<a class="jxr_linenumber" name="582" href="#582">582</a>         ReplicationQueues rq, ReplicationPeers rp, Stoppable stopper, String peerClusterId,
-<a class="jxr_linenumber" name="583" href="#583">583</a>         UUID clusterId, ReplicationEndpoint replicationEndpoint, MetricsSource metrics)
-<a class="jxr_linenumber" name="584" href="#584">584</a>         <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="585" href="#585">585</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Failing deliberately"</span>);
-<a class="jxr_linenumber" name="586" href="#586">586</a>     }
-<a class="jxr_linenumber" name="587" href="#587">587</a>   }
-<a class="jxr_linenumber" name="588" href="#588">588</a>
-<a class="jxr_linenumber" name="589" href="#589">589</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestWALLockup.html">DummyServer</a> <strong class="jxr_keyword">implements</strong> Server {
-<a class="jxr_linenumber" name="590" href="#590">590</a>     String hostname;
-<a class="jxr_linenumber" name="591" href="#591">591</a>
-<a class="jxr_linenumber" name="592" href="#592">592</a>     <a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestWALLockup.html">DummyServer</a>() {
-<a class="jxr_linenumber" name="593" href="#593">593</a>       hostname = <span class="jxr_string">"hostname.example.org"</span>;
-<a class="jxr_linenumber" name="594" href="#594">594</a>     }
-<a class="jxr_linenumber" name="595" href="#595">595</a>
-<a class="jxr_linenumber" name="596" href="#596">596</a>     <a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestWALLockup.html">DummyServer</a>(String hostname) {
-<a class="jxr_linenumber" name="597" href="#597">597</a>       <strong class="jxr_keyword">this</strong>.hostname = hostname;
-<a class="jxr_linenumber" name="598" href="#598">598</a>     }
-<a class="jxr_linenumber" name="599" href="#599">599</a>
-<a class="jxr_linenumber" name="600" href="#600">600</a>     @Override
-<a class="jxr_linenumber" name="601" href="#601">601</a>     <strong class="jxr_keyword">public</strong> Configuration getConfiguration() {
-<a class="jxr_linenumber" name="602" href="#602">602</a>       <strong class="jxr_keyword">return</strong> conf;
-<a class="jxr_linenumber" name="603" href="#603">603</a>     }
-<a class="jxr_linenumber" name="604" href="#604">604</a>
-<a class="jxr_linenumber" name="605" href="#605">605</a>     @Override
-<a class="jxr_linenumber" name="606" href="#606">606</a>     <strong class="jxr_keyword">public</strong> ZooKeeperWatcher getZooKeeper() {
-<a class="jxr_linenumber" name="607" href="#607">607</a>       <strong class="jxr_keyword">return</strong> zkw;
-<a class="jxr_linenumber" name="608" href="#608">608</a>     }
-<a class="jxr_linenumber" name="609" href="#609">609</a>
-<a class="jxr_linenumber" name="610" href="#610">610</a>     @Override
-<a class="jxr_linenumber" name="611" href="#611">611</a>     <strong class="jxr_keyword">public</strong> CoordinatedStateManager getCoordinatedStateManager() {
-<a class="jxr_linenumber" name="612" href="#612">612</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="613" href="#613">613</a>     }
-<a class="jxr_linenumber" name="614" href="#614">614</a>     @Override
-<a class="jxr_linenumber" name="615" href="#615">615</a>     <strong class="jxr_keyword">public</strong> ClusterConnection getConnection() {
-<a class="jxr_linenumber" name="616" href="#616">616</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="617" href="#617">617</a>     }
-<a class="jxr_linenumber" name="618" href="#618">618</a>
-<a class="jxr_linenumber" name="619" href="#619">619</a>     @Override
-<a class="jxr_linenumber" name="620" href="#620">620</a>     <strong class="jxr_keyword">public</strong> MetaTableLocator getMetaTableLocator() {
-<a class="jxr_linenumber" name="621" href="#621">621</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="622" href="#622">622</a>     }
-<a class="jxr_linenumber" name="623" href="#623">623</a>
-<a class="jxr_linenumber" name="624" href="#624">624</a>     @Override
-<a class="jxr_linenumber" name="625" href="#625">625</a>     <strong class="jxr_keyword">public</strong> ServerName getServerName() {
-<a class="jxr_linenumber" name="626" href="#626">626</a>       <strong class="jxr_keyword">return</strong> ServerName.valueOf(hostname, 1234, 1L);
-<a class="jxr_linenumber" name="627" href="#627">627</a>     }
-<a class="jxr_linenumber" name="628" href="#628">628</a>
-<a class="jxr_linenumber" name="629" href="#629">629</a>     @Override
-<a class="jxr_linenumber" name="630" href="#630">630</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> abort(String why, Throwable e) {
-<a class="jxr_linenumber" name="631" href="#631">631</a>       <em class="jxr_comment">// To change body of implemented methods use File | Settings | File Templates.</em>
-<a class="jxr_linenumber" name="632" href="#632">632</a>     }
-<a class="jxr_linenumber" name="633" href="#633">633</a>
-<a class="jxr_linenumber" name="634" href="#634">634</a>     @Override
-<a class="jxr_linenumber" name="635" href="#635">635</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isAborted() {
-<a class="jxr_linenumber" name="636" href="#636">636</a>       <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="637" href="#637">637</a>     }
-<a class="jxr_linenumber" name="638" href="#638">638</a>
-<a class="jxr_linenumber" name="639" href="#639">639</a>     @Override
-<a class="jxr_linenumber" name="640" href="#640">640</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> stop(String why) {
-<a class="jxr_linenumber" name="641" href="#641">641</a>       <em class="jxr_comment">// To change body of implemented methods use File | Settings | File Templates.</em>
-<a class="jxr_linenumber" name="642" href="#642">642</a>     }
-<a class="jxr_linenumber" name="643" href="#643">643</a>
-<a class="jxr_linenumber" name="644" href="#644">644</a>     @Override
-<a class="jxr_linenumber" name="645" href="#645">645</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isStopped() {
-<a class="jxr_linenumber" name="646" href="#646">646</a>       <strong class="jxr_keyword">return</strong> false; <em class="jxr_comment">// To change body of implemented methods use File | Settings | File Templates.</em>
-<a class="jxr_linenumber" name="647" href="#647">647</a>     }
-<a class="jxr_linenumber" name="648" href="#648">648</a>
-<a class="jxr_linenumber" name="649" href="#649">649</a>     @Override
-<a class="jxr_linenumber" name="650" href="#650">650</a>     <strong class="jxr_keyword">public</strong> ChoreService getChoreService() {
-<a class="jxr_linenumber" name="651" href="#651">651</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="652" href="#652">652</a>     }
-<a class="jxr_linenumber" name="653" href="#653">653</a>
-<a class="jxr_linenumber" name="654" href="#654">654</a>     @Override
-<a class="jxr_linenumber" name="655" href="#655">655</a>     <strong class="jxr_keyword">public</strong> ClusterConnection getClusterConnection() {
-<a class="jxr_linenumber" name="656" href="#656">656</a>       <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="657" href="#657">657</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="658" href="#658">658</a>     }
-<a class="jxr_linenumber" name="659" href="#659">659</a>   }
-<a class="jxr_linenumber" name="660" href="#660">660</a> }
+<a class="jxr_linenumber" name="580" href="#580">580</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html">FailInitializeDummyReplicationSource</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationSourceDummy.html">ReplicationSourceDummy</a> {
+<a class="jxr_linenumber" name="581" href="#581">581</a>
+<a class="jxr_linenumber" name="582" href="#582">582</a>     @Override
+<a class="jxr_linenumber" name="583" href="#583">583</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> init(Configuration conf, FileSystem fs, ReplicationSourceManager manager,
+<a class="jxr_linenumber" name="584" href="#584">584</a>         ReplicationQueues rq, ReplicationPeers rp, Stoppable stopper, String peerClusterId,
+<a class="jxr_linenumber" name="585" href="#585">585</a>         UUID clusterId, ReplicationEndpoint replicationEndpoint, MetricsSource metrics)
+<a class="jxr_linenumber" name="586" href="#586">586</a>         <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="587" href="#587">587</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Failing deliberately"</span>);
+<a class="jxr_linenumber" name="588" href="#588">588</a>     }
+<a class="jxr_linenumber" name="589" href="#589">589</a>   }
+<a class="jxr_linenumber" name="590" href="#590">590</a>
+<a class="jxr_linenumber" name="591" href="#591">591</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestWALLockup.html">DummyServer</a> <strong class="jxr_keyword">implements</strong> Server {
+<a class="jxr_linenumber" name="592" href="#592">592</a>     String hostname;
+<a class="jxr_linenumber" name="593" href="#593">593</a>
+<a class="jxr_linenumber" name="594" href="#594">594</a>     <a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestWALLockup.html">DummyServer</a>() {
+<a class="jxr_linenumber" name="595" href="#595">595</a>       hostname = <span class="jxr_string">"hostname.example.org"</span>;
+<a class="jxr_linenumber" name="596" href="#596">596</a>     }
+<a class="jxr_linenumber" name="597" href="#597">597</a>
+<a class="jxr_linenumber" name="598" href="#598">598</a>     <a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestWALLockup.html">DummyServer</a>(String hostname) {
+<a class="jxr_linenumber" name="599" href="#599">599</a>       <strong class="jxr_keyword">this</strong>.hostname = hostname;
+<a class="jxr_linenumber" name="600" href="#600">600</a>     }
+<a class="jxr_linenumber" name="601" href="#601">601</a>
+<a class="jxr_linenumber" name="602" href="#602">602</a>     @Override
+<a class="jxr_linenumber" name="603" href="#603">603</a>     <strong class="jxr_keyword">public</strong> Configuration getConfiguration() {
+<a class="jxr_linenumber" name="604" href="#604">604</a>       <strong class="jxr_keyword">return</strong> conf;
+<a class="jxr_linenumber" name="605" href="#605">605</a>     }
+<a class="jxr_linenumber" name="606" href="#606">606</a>
+<a class="jxr_linenumber" name="607" href="#607">607</a>     @Override
+<a class="jxr_linenumber" name="608" href="#608">608</a>     <strong class="jxr_keyword">public</strong> ZooKeeperWatcher getZooKeeper() {
+<a class="jxr_linenumber" name="609" href="#609">609</a>       <strong class="jxr_keyword">return</strong> zkw;
+<a class="jxr_linenumber" name="610" href="#610">610</a>     }
+<a class="jxr_linenumber" name="611" href="#611">611</a>
+<a class="jxr_linenumber" name="612" href="#612">612</a>     @Override
+<a class="jxr_linenumber" name="613" href="#613">613</a>     <strong class="jxr_keyword">public</strong> CoordinatedStateManager getCoordinatedStateManager() {
+<a class="jxr_linenumber" name="614" href="#614">614</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="615" href="#615">615</a>     }
+<a class="jxr_linenumber" name="616" href="#616">616</a>     @Override
+<a class="jxr_linenumber" name="617" href="#617">617</a>     <strong class="jxr_keyword">public</strong> ClusterConnection getConnection() {
+<a class="jxr_linenumber" name="618" href="#618">618</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="619" href="#619">619</a>     }
+<a class="jxr_linenumber" name="620" href="#620">620</a>
+<a class="jxr_linenumber" name="621" href="#621">621</a>     @Override
+<a class="jxr_linenumber" name="622" href="#622">622</a>     <strong class="jxr_keyword">public</strong> MetaTableLocator getMetaTableLocator() {
+<a class="jxr_linenumber" name="623" href="#623">623</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="624" href="#624">624</a>     }
+<a class="jxr_linenumber" name="625" href="#625">625</a>
+<a class="jxr_linenumber" name="626" href="#626">626</a>     @Override
+<a class="jxr_linenumber" name="627" href="#627">627</a>     <strong class="jxr_keyword">public</strong> ServerName getServerName() {
+<a class="jxr_linenumber" name="628" href="#628">628</a>       <strong class="jxr_keyword">return</strong> ServerName.valueOf(hostname, 1234, 1L);
+<a class="jxr_linenumber" name="629" href="#629">629</a>     }
+<a class="jxr_linenumber" name="630" href="#630">630</a>
+<a class="jxr_linenumber" name="631" href="#631">631</a>     @Override
+<a class="jxr_linenumber" name="632" href="#632">632</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> abort(String why, Throwable e) {
+<a class="jxr_linenumber" name="633" href="#633">633</a>       <em class="jxr_comment">// To change body of implemented methods use File | Settings | File Templates.</em>
+<a class="jxr_linenumber" name="634" href="#634">634</a>     }
+<a class="jxr_linenumber" name="635" href="#635">635</a>
+<a class="jxr_linenumber" name="636" href="#636">636</a>     @Override
+<a class="jxr_linenumber" name="637" href="#637">637</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isAborted() {
+<a class="jxr_linenumber" name="638" href="#638">638</a>       <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="639" href="#639">639</a>     }
+<a class="jxr_linenumber" name="640" href="#640">640</a>
+<a class="jxr_linenumber" name="641" href="#641">641</a>     @Override
+<a class="jxr_linenumber" name="642" href="#642">642</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> stop(String why) {
+<a class="jxr_linenumber" name="643" href="#643">643</a>       <em class="jxr_comment">// To change body of implemented methods use File | Settings | File Templates.</em>
+<a class="jxr_linenumber" name="644" href="#644">644</a>     }
+<a class="jxr_linenumber" name="645" href="#645">645</a>
+<a class="jxr_linenumber" name="646" href="#646">646</a>     @Override
+<a class="jxr_linenumber" name="647" href="#647">647</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isStopped() {
+<a class="jxr_linenumber" name="648" href="#648">648</a>       <strong class="jxr_keyword">return</strong> false; <em class="jxr_comment">// To change body of implemented methods use File | Settings | File Templates.</em>
+<a class="jxr_linenumber" name="649" href="#649">649</a>     }
+<a class="jxr_linenumber" name="650" href="#650">650</a>
+<a class="jxr_linenumber" name="651" href="#651">651</a>     @Override
+<a class="jxr_linenumber" name="652" href="#652">652</a>     <strong class="jxr_keyword">public</strong> ChoreService getChoreService() {
+<a class="jxr_linenumber" name="653" href="#653">653</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="654" href="#654">654</a>     }
+<a class="jxr_linenumber" name="655" href="#655">655</a>
+<a class="jxr_linenumber" name="656" href="#656">656</a>     @Override
+<a class="jxr_linenumber" name="657" href="#657">657</a>     <strong class="jxr_keyword">public</strong> ClusterConnection getClusterConnection() {
+<a class="jxr_linenumber" name="658" href="#658">658</a>       <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="659" href="#659">659</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="660" href="#660">660</a>     }
+<a class="jxr_linenumber" name="661" href="#661">661</a>   }
+<a class="jxr_linenumber" name="662" href="#662">662</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref/org/apache/hadoop/hbase/Version.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/hadoop/hbase/Version.html b/xref/org/apache/hadoop/hbase/Version.html
index 2a2052b..fab980d 100644
--- a/xref/org/apache/hadoop/hbase/Version.html
+++ b/xref/org/apache/hadoop/hbase/Version.html
@@ -18,11 +18,11 @@
 <a class="jxr_linenumber" name="8" href="#8">8</a>   @InterfaceAudience.Private
 <a class="jxr_linenumber" name="9" href="#9">9</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/hadoop/hbase/Version.html">Version</a> {
 <a class="jxr_linenumber" name="10" href="#10">10</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String version = <span class="jxr_string">"2.0.0-SNAPSHOT"</span>;
-<a class="jxr_linenumber" name="11" href="#11">11</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String revision = <span class="jxr_string">"8a6d6aa23944bbfd5047cf0c09fb4d8045735dab"</span>;
+<a class="jxr_linenumber" name="11" href="#11">11</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String revision = <span class="jxr_string">"9250bf809155ebe93fd6ae8a0485b22c744fdf70"</span>;
 <a class="jxr_linenumber" name="12" href="#12">12</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String user = <span class="jxr_string">"jenkins"</span>;
-<a class="jxr_linenumber" name="13" href="#13">13</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String date = <span class="jxr_string">"Fri Nov 11 14:29:04 UTC 2016"</span>;
+<a class="jxr_linenumber" name="13" href="#13">13</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String date = <span class="jxr_string">"Mon Nov 14 14:27:04 UTC 2016"</span>;
 <a class="jxr_linenumber" name="14" href="#14">14</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String url = <span class="jxr_string">"git://asf912.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase"</span>;
-<a class="jxr_linenumber" name="15" href="#15">15</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String srcChecksum = <span class="jxr_string">"681093e9797dd6baf3dff8627bd19b06"</span>;
+<a class="jxr_linenumber" name="15" href="#15">15</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String srcChecksum = <span class="jxr_string">"26adfd25faf563ea02f464d54c1596b1"</span>;
 <a class="jxr_linenumber" name="16" href="#16">16</a>  }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>


[16/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.html
index 89b0f0c..df6f4e7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.html
@@ -28,1103 +28,1096 @@
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.math.BigInteger;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.Arrays;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.Collection;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.Collections;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.Comparator;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.LinkedList;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.List;<a name="line.28"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.Arrays;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Collection;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.LinkedList;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.Map;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>import java.util.Set;<a name="line.29"></a>
 <span class="sourceLineNo">030</span>import java.util.TreeMap;<a name="line.30"></a>
-<span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.commons.cli.CommandLine;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.commons.cli.GnuParser;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.commons.cli.HelpFormatter;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.commons.cli.OptionBuilder;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.commons.cli.Options;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.commons.cli.ParseException;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.commons.lang.ArrayUtils;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.commons.lang.StringUtils;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.commons.logging.Log;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.commons.logging.LogFactory;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.conf.Configuration;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.fs.FileSystem;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.fs.Path;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.ClusterStatus;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.TableName;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.client.NoServerForRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.client.Table;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;<a name="line.64"></a>
-<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>import com.google.common.base.Preconditions;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import com.google.common.collect.Lists;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import com.google.common.collect.Maps;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import com.google.common.collect.Sets;<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> * The {@link RegionSplitter} class provides several utilities to help in the<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * administration lifecycle for developers who choose to manually split regions<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * instead of having HBase handle that automatically. The most useful utilities<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * are:<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;ul&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;li&gt;Create a table with a specified number of pre-split regions<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * &lt;li&gt;Execute a rolling split of all regions on an existing table<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * &lt;/ul&gt;<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * &lt;p&gt;<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * Both operations can be safely done on a live server.<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * &lt;p&gt;<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * &lt;b&gt;Question:&lt;/b&gt; How do I turn off automatic splitting? &lt;br&gt;<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * &lt;b&gt;Answer:&lt;/b&gt; Automatic splitting is determined by the configuration value<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;i&gt;HConstants.HREGION_MAX_FILESIZE&lt;/i&gt;. It is not recommended that you set this<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * to Long.MAX_VALUE in case you forget about manual splits. A suggested setting<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * is 100GB, which would result in &amp;gt; 1hr major compactions if reached.<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * &lt;p&gt;<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * &lt;b&gt;Question:&lt;/b&gt; Why did the original authors decide to manually split? &lt;br&gt;<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * &lt;b&gt;Answer:&lt;/b&gt; Specific workload characteristics of our use case allowed us<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * to benefit from a manual split system.<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;p&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * &lt;ul&gt;<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * &lt;li&gt;Data (~1k) that would grow instead of being replaced<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;li&gt;Data growth was roughly uniform across all regions<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * &lt;li&gt;OLTP workload. Data loss is a big deal.<a name="line.97"></a>
-<span class="sourceLineNo">098</span> * &lt;/ul&gt;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * &lt;p&gt;<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * &lt;b&gt;Question:&lt;/b&gt; Why is manual splitting good for this workload? &lt;br&gt;<a name="line.100"></a>
-<span class="sourceLineNo">101</span> * &lt;b&gt;Answer:&lt;/b&gt; Although automated splitting is not a bad option, there are<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * benefits to manual splitting.<a name="line.102"></a>
-<span class="sourceLineNo">103</span> * &lt;p&gt;<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * &lt;ul&gt;<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * &lt;li&gt;With growing amounts of data, splits will continually be needed. Since<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * you always know exactly what regions you have, long-term debugging and<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * profiling is much easier with manual splits. It is hard to trace the logs to<a name="line.107"></a>
-<span class="sourceLineNo">108</span> * understand region level problems if it keeps splitting and getting renamed.<a name="line.108"></a>
-<span class="sourceLineNo">109</span> * &lt;li&gt;Data offlining bugs + unknown number of split regions == oh crap! If an<a name="line.109"></a>
-<span class="sourceLineNo">110</span> * WAL or StoreFile was mistakenly unprocessed by HBase due to a weird bug and<a name="line.110"></a>
-<span class="sourceLineNo">111</span> * you notice it a day or so later, you can be assured that the regions<a name="line.111"></a>
-<span class="sourceLineNo">112</span> * specified in these files are the same as the current regions and you have<a name="line.112"></a>
-<span class="sourceLineNo">113</span> * less headaches trying to restore/replay your data.<a name="line.113"></a>
-<span class="sourceLineNo">114</span> * &lt;li&gt;You can finely tune your compaction algorithm. With roughly uniform data<a name="line.114"></a>
-<span class="sourceLineNo">115</span> * growth, it's easy to cause split / compaction storms as the regions all<a name="line.115"></a>
-<span class="sourceLineNo">116</span> * roughly hit the same data size at the same time. With manual splits, you can<a name="line.116"></a>
-<span class="sourceLineNo">117</span> * let staggered, time-based major compactions spread out your network IO load.<a name="line.117"></a>
-<span class="sourceLineNo">118</span> * &lt;/ul&gt;<a name="line.118"></a>
-<span class="sourceLineNo">119</span> * &lt;p&gt;<a name="line.119"></a>
-<span class="sourceLineNo">120</span> * &lt;b&gt;Question:&lt;/b&gt; What's the optimal number of pre-split regions to create? &lt;br&gt;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> * &lt;b&gt;Answer:&lt;/b&gt; Mileage will vary depending upon your application.<a name="line.121"></a>
-<span class="sourceLineNo">122</span> * &lt;p&gt;<a name="line.122"></a>
-<span class="sourceLineNo">123</span> * The short answer for our application is that we started with 10 pre-split<a name="line.123"></a>
-<span class="sourceLineNo">124</span> * regions / server and watched our data growth over time. It's better to err on<a name="line.124"></a>
-<span class="sourceLineNo">125</span> * the side of too little regions and rolling split later.<a name="line.125"></a>
-<span class="sourceLineNo">126</span> * &lt;p&gt;<a name="line.126"></a>
-<span class="sourceLineNo">127</span> * The more complicated answer is that this depends upon the largest storefile<a name="line.127"></a>
-<span class="sourceLineNo">128</span> * in your region. With a growing data size, this will get larger over time. You<a name="line.128"></a>
-<span class="sourceLineNo">129</span> * want the largest region to be just big enough that the<a name="line.129"></a>
-<span class="sourceLineNo">130</span> * {@link org.apache.hadoop.hbase.regionserver.HStore} compact<a name="line.130"></a>
-<span class="sourceLineNo">131</span> * selection algorithm only compacts it due to a timed major. If you don't, your<a name="line.131"></a>
-<span class="sourceLineNo">132</span> * cluster can be prone to compaction storms as the algorithm decides to run<a name="line.132"></a>
-<span class="sourceLineNo">133</span> * major compactions on a large series of regions all at once. Note that<a name="line.133"></a>
-<span class="sourceLineNo">134</span> * compaction storms are due to the uniform data growth, not the manual split<a name="line.134"></a>
-<span class="sourceLineNo">135</span> * decision.<a name="line.135"></a>
-<span class="sourceLineNo">136</span> * &lt;p&gt;<a name="line.136"></a>
-<span class="sourceLineNo">137</span> * If you pre-split your regions too thin, you can increase the major compaction<a name="line.137"></a>
-<span class="sourceLineNo">138</span> * interval by configuring HConstants.MAJOR_COMPACTION_PERIOD. If your data size<a name="line.138"></a>
-<span class="sourceLineNo">139</span> * grows too large, use this script to perform a network IO safe rolling split<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * of all regions.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> */<a name="line.141"></a>
-<span class="sourceLineNo">142</span>@InterfaceAudience.Private<a name="line.142"></a>
-<span class="sourceLineNo">143</span>public class RegionSplitter {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private static final Log LOG = LogFactory.getLog(RegionSplitter.class);<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  /**<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   * A generic interface for the RegionSplitter code to use for all it's<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * functionality. Note that the original authors of this code use<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * {@link HexStringSplit} to partition their table and set it as default, but<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * provided this for your custom algorithm. To use, create a new derived class<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * from this interface and call {@link RegionSplitter#createPresplitTable} or<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * RegionSplitter#rollingSplit(TableName, SplitAlgorithm, Configuration) with the<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * argument splitClassName giving the name of your class.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   */<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  public interface SplitAlgorithm {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    /**<a name="line.156"></a>
-<span class="sourceLineNo">157</span>     * Split a pre-existing region into 2 regions.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>     *<a name="line.158"></a>
-<span class="sourceLineNo">159</span>     * @param start<a name="line.159"></a>
-<span class="sourceLineNo">160</span>     *          first row (inclusive)<a name="line.160"></a>
-<span class="sourceLineNo">161</span>     * @param end<a name="line.161"></a>
-<span class="sourceLineNo">162</span>     *          last row (exclusive)<a name="line.162"></a>
-<span class="sourceLineNo">163</span>     * @return the split row to use<a name="line.163"></a>
-<span class="sourceLineNo">164</span>     */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    byte[] split(byte[] start, byte[] end);<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>    /**<a name="line.167"></a>
-<span class="sourceLineNo">168</span>     * Split an entire table.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>     *<a name="line.169"></a>
-<span class="sourceLineNo">170</span>     * @param numRegions<a name="line.170"></a>
-<span class="sourceLineNo">171</span>     *          number of regions to split the table into<a name="line.171"></a>
-<span class="sourceLineNo">172</span>     *<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * @throws RuntimeException<a name="line.173"></a>
-<span class="sourceLineNo">174</span>     *           user input is validated at this time. may throw a runtime<a name="line.174"></a>
-<span class="sourceLineNo">175</span>     *           exception in response to a parse failure<a name="line.175"></a>
-<span class="sourceLineNo">176</span>     * @return array of split keys for the initial regions of the table. The<a name="line.176"></a>
-<span class="sourceLineNo">177</span>     *         length of the returned array should be numRegions-1.<a name="line.177"></a>
-<span class="sourceLineNo">178</span>     */<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    byte[][] split(int numRegions);<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>    /**<a name="line.181"></a>
-<span class="sourceLineNo">182</span>     * In HBase, the first row is represented by an empty byte array. This might<a name="line.182"></a>
-<span class="sourceLineNo">183</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.183"></a>
-<span class="sourceLineNo">184</span>     * will be passed firstRow() instead of empty array.<a name="line.184"></a>
-<span class="sourceLineNo">185</span>     *<a name="line.185"></a>
-<span class="sourceLineNo">186</span>     * @return your representation of your first row<a name="line.186"></a>
-<span class="sourceLineNo">187</span>     */<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    byte[] firstRow();<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>    /**<a name="line.190"></a>
-<span class="sourceLineNo">191</span>     * In HBase, the last row is represented by an empty byte array. This might<a name="line.191"></a>
-<span class="sourceLineNo">192</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.192"></a>
-<span class="sourceLineNo">193</span>     * will be passed firstRow() instead of empty array.<a name="line.193"></a>
-<span class="sourceLineNo">194</span>     *<a name="line.194"></a>
-<span class="sourceLineNo">195</span>     * @return your representation of your last row<a name="line.195"></a>
-<span class="sourceLineNo">196</span>     */<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    byte[] lastRow();<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    /**<a name="line.199"></a>
-<span class="sourceLineNo">200</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.200"></a>
-<span class="sourceLineNo">201</span>     * value to help the split code understand how to evenly divide the first<a name="line.201"></a>
-<span class="sourceLineNo">202</span>     * region.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>     *<a name="line.203"></a>
-<span class="sourceLineNo">204</span>     * @param userInput<a name="line.204"></a>
-<span class="sourceLineNo">205</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.205"></a>
-<span class="sourceLineNo">206</span>     */<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    void setFirstRow(String userInput);<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>    /**<a name="line.209"></a>
-<span class="sourceLineNo">210</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.210"></a>
-<span class="sourceLineNo">211</span>     * value to help the split code understand how to evenly divide the last<a name="line.211"></a>
-<span class="sourceLineNo">212</span>     * region. Note that this last row is inclusive for all rows sharing the<a name="line.212"></a>
-<span class="sourceLineNo">213</span>     * same prefix.<a name="line.213"></a>
-<span class="sourceLineNo">214</span>     *<a name="line.214"></a>
-<span class="sourceLineNo">215</span>     * @param userInput<a name="line.215"></a>
-<span class="sourceLineNo">216</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.216"></a>
-<span class="sourceLineNo">217</span>     */<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    void setLastRow(String userInput);<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>    /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span>     * @param input<a name="line.221"></a>
-<span class="sourceLineNo">222</span>     *          user or file input for row<a name="line.222"></a>
-<span class="sourceLineNo">223</span>     * @return byte array representation of this row for HBase<a name="line.223"></a>
-<span class="sourceLineNo">224</span>     */<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    byte[] strToRow(String input);<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>    /**<a name="line.227"></a>
-<span class="sourceLineNo">228</span>     * @param row<a name="line.228"></a>
-<span class="sourceLineNo">229</span>     *          byte array representing a row in HBase<a name="line.229"></a>
-<span class="sourceLineNo">230</span>     * @return String to use for debug &amp;amp; file printing<a name="line.230"></a>
-<span class="sourceLineNo">231</span>     */<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    String rowToStr(byte[] row);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    /**<a name="line.234"></a>
-<span class="sourceLineNo">235</span>     * @return the separator character to use when storing / printing the row<a name="line.235"></a>
-<span class="sourceLineNo">236</span>     */<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    String separator();<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    /**<a name="line.239"></a>
-<span class="sourceLineNo">240</span>     * Set the first row<a name="line.240"></a>
-<span class="sourceLineNo">241</span>     * @param userInput byte array of the row key.<a name="line.241"></a>
-<span class="sourceLineNo">242</span>     */<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    void setFirstRow(byte[] userInput);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>    /**<a name="line.245"></a>
-<span class="sourceLineNo">246</span>     * Set the last row<a name="line.246"></a>
-<span class="sourceLineNo">247</span>     * @param userInput byte array of the row key.<a name="line.247"></a>
-<span class="sourceLineNo">248</span>     */<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    void setLastRow(byte[] userInput);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>  }<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>  /**<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * The main function for the RegionSplitter application. Common uses:<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * &lt;p&gt;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * &lt;ul&gt;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   * &lt;li&gt;create a table named 'myTable' with 60 pre-split regions containing 2<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * column families 'test' &amp;amp; 'rs', assuming the keys are hex-encoded ASCII:<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * &lt;ul&gt;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -c 60 -f test:rs<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   * myTable HexStringSplit<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   * &lt;/ul&gt;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>   * &lt;li&gt;perform a rolling split of 'myTable' (i.e. 60 =&amp;gt; 120 regions), # 2<a name="line.262"></a>
-<span class="sourceLineNo">263</span>   * outstanding splits at a time, assuming keys are uniformly distributed<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * bytes:<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * &lt;ul&gt;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -r -o 2 myTable<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * UniformSplit<a name="line.267"></a>
+<span class="sourceLineNo">031</span>import org.apache.commons.cli.CommandLine;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.commons.cli.GnuParser;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.commons.cli.HelpFormatter;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.commons.cli.OptionBuilder;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.commons.cli.Options;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.commons.cli.ParseException;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.commons.lang.ArrayUtils;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.commons.lang.StringUtils;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.commons.logging.Log;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.commons.logging.LogFactory;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.conf.Configuration;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.fs.FileSystem;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.fs.Path;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ClusterStatus;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.TableName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.NoServerForRegionException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.client.Table;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>import com.google.common.base.Preconditions;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import com.google.common.collect.Lists;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import com.google.common.collect.Maps;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import com.google.common.collect.Sets;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>/**<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * The {@link RegionSplitter} class provides several utilities to help in the<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * administration lifecycle for developers who choose to manually split regions<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * instead of having HBase handle that automatically. The most useful utilities<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * are:<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;ul&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * &lt;li&gt;Create a table with a specified number of pre-split regions<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;li&gt;Execute a rolling split of all regions on an existing table<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * &lt;/ul&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * &lt;p&gt;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * Both operations can be safely done on a live server.<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * &lt;p&gt;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * &lt;b&gt;Question:&lt;/b&gt; How do I turn off automatic splitting? &lt;br&gt;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * &lt;b&gt;Answer:&lt;/b&gt; Automatic splitting is determined by the configuration value<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * &lt;i&gt;HConstants.HREGION_MAX_FILESIZE&lt;/i&gt;. It is not recommended that you set this<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * to Long.MAX_VALUE in case you forget about manual splits. A suggested setting<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * is 100GB, which would result in &amp;gt; 1hr major compactions if reached.<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;p&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * &lt;b&gt;Question:&lt;/b&gt; Why did the original authors decide to manually split? &lt;br&gt;<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * &lt;b&gt;Answer:&lt;/b&gt; Specific workload characteristics of our use case allowed us<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * to benefit from a manual split system.<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * &lt;p&gt;<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * &lt;ul&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;li&gt;Data (~1k) that would grow instead of being replaced<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * &lt;li&gt;Data growth was roughly uniform across all regions<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * &lt;li&gt;OLTP workload. Data loss is a big deal.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/ul&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;p&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * &lt;b&gt;Question:&lt;/b&gt; Why is manual splitting good for this workload? &lt;br&gt;<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * &lt;b&gt;Answer:&lt;/b&gt; Although automated splitting is not a bad option, there are<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * benefits to manual splitting.<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * &lt;p&gt;<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * &lt;ul&gt;<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * &lt;li&gt;With growing amounts of data, splits will continually be needed. Since<a name="line.104"></a>
+<span class="sourceLineNo">105</span> * you always know exactly what regions you have, long-term debugging and<a name="line.105"></a>
+<span class="sourceLineNo">106</span> * profiling is much easier with manual splits. It is hard to trace the logs to<a name="line.106"></a>
+<span class="sourceLineNo">107</span> * understand region level problems if it keeps splitting and getting renamed.<a name="line.107"></a>
+<span class="sourceLineNo">108</span> * &lt;li&gt;Data offlining bugs + unknown number of split regions == oh crap! If an<a name="line.108"></a>
+<span class="sourceLineNo">109</span> * WAL or StoreFile was mistakenly unprocessed by HBase due to a weird bug and<a name="line.109"></a>
+<span class="sourceLineNo">110</span> * you notice it a day or so later, you can be assured that the regions<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * specified in these files are the same as the current regions and you have<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * less headaches trying to restore/replay your data.<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * &lt;li&gt;You can finely tune your compaction algorithm. With roughly uniform data<a name="line.113"></a>
+<span class="sourceLineNo">114</span> * growth, it's easy to cause split / compaction storms as the regions all<a name="line.114"></a>
+<span class="sourceLineNo">115</span> * roughly hit the same data size at the same time. With manual splits, you can<a name="line.115"></a>
+<span class="sourceLineNo">116</span> * let staggered, time-based major compactions spread out your network IO load.<a name="line.116"></a>
+<span class="sourceLineNo">117</span> * &lt;/ul&gt;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> * &lt;p&gt;<a name="line.118"></a>
+<span class="sourceLineNo">119</span> * &lt;b&gt;Question:&lt;/b&gt; What's the optimal number of pre-split regions to create? &lt;br&gt;<a name="line.119"></a>
+<span class="sourceLineNo">120</span> * &lt;b&gt;Answer:&lt;/b&gt; Mileage will vary depending upon your application.<a name="line.120"></a>
+<span class="sourceLineNo">121</span> * &lt;p&gt;<a name="line.121"></a>
+<span class="sourceLineNo">122</span> * The short answer for our application is that we started with 10 pre-split<a name="line.122"></a>
+<span class="sourceLineNo">123</span> * regions / server and watched our data growth over time. It's better to err on<a name="line.123"></a>
+<span class="sourceLineNo">124</span> * the side of too little regions and rolling split later.<a name="line.124"></a>
+<span class="sourceLineNo">125</span> * &lt;p&gt;<a name="line.125"></a>
+<span class="sourceLineNo">126</span> * The more complicated answer is that this depends upon the largest storefile<a name="line.126"></a>
+<span class="sourceLineNo">127</span> * in your region. With a growing data size, this will get larger over time. You<a name="line.127"></a>
+<span class="sourceLineNo">128</span> * want the largest region to be just big enough that the<a name="line.128"></a>
+<span class="sourceLineNo">129</span> * {@link org.apache.hadoop.hbase.regionserver.HStore} compact<a name="line.129"></a>
+<span class="sourceLineNo">130</span> * selection algorithm only compacts it due to a timed major. If you don't, your<a name="line.130"></a>
+<span class="sourceLineNo">131</span> * cluster can be prone to compaction storms as the algorithm decides to run<a name="line.131"></a>
+<span class="sourceLineNo">132</span> * major compactions on a large series of regions all at once. Note that<a name="line.132"></a>
+<span class="sourceLineNo">133</span> * compaction storms are due to the uniform data growth, not the manual split<a name="line.133"></a>
+<span class="sourceLineNo">134</span> * decision.<a name="line.134"></a>
+<span class="sourceLineNo">135</span> * &lt;p&gt;<a name="line.135"></a>
+<span class="sourceLineNo">136</span> * If you pre-split your regions too thin, you can increase the major compaction<a name="line.136"></a>
+<span class="sourceLineNo">137</span> * interval by configuring HConstants.MAJOR_COMPACTION_PERIOD. If your data size<a name="line.137"></a>
+<span class="sourceLineNo">138</span> * grows too large, use this script to perform a network IO safe rolling split<a name="line.138"></a>
+<span class="sourceLineNo">139</span> * of all regions.<a name="line.139"></a>
+<span class="sourceLineNo">140</span> */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>@InterfaceAudience.Private<a name="line.141"></a>
+<span class="sourceLineNo">142</span>public class RegionSplitter {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  private static final Log LOG = LogFactory.getLog(RegionSplitter.class);<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>  /**<a name="line.145"></a>
+<span class="sourceLineNo">146</span>   * A generic interface for the RegionSplitter code to use for all it's<a name="line.146"></a>
+<span class="sourceLineNo">147</span>   * functionality. Note that the original authors of this code use<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   * {@link HexStringSplit} to partition their table and set it as default, but<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * provided this for your custom algorithm. To use, create a new derived class<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * from this interface and call {@link RegionSplitter#createPresplitTable} or<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   * RegionSplitter#rollingSplit(TableName, SplitAlgorithm, Configuration) with the<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * argument splitClassName giving the name of your class.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   */<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  public interface SplitAlgorithm {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    /**<a name="line.155"></a>
+<span class="sourceLineNo">156</span>     * Split a pre-existing region into 2 regions.<a name="line.156"></a>
+<span class="sourceLineNo">157</span>     *<a name="line.157"></a>
+<span class="sourceLineNo">158</span>     * @param start<a name="line.158"></a>
+<span class="sourceLineNo">159</span>     *          first row (inclusive)<a name="line.159"></a>
+<span class="sourceLineNo">160</span>     * @param end<a name="line.160"></a>
+<span class="sourceLineNo">161</span>     *          last row (exclusive)<a name="line.161"></a>
+<span class="sourceLineNo">162</span>     * @return the split row to use<a name="line.162"></a>
+<span class="sourceLineNo">163</span>     */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    byte[] split(byte[] start, byte[] end);<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>    /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>     * Split an entire table.<a name="line.167"></a>
+<span class="sourceLineNo">168</span>     *<a name="line.168"></a>
+<span class="sourceLineNo">169</span>     * @param numRegions<a name="line.169"></a>
+<span class="sourceLineNo">170</span>     *          number of regions to split the table into<a name="line.170"></a>
+<span class="sourceLineNo">171</span>     *<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     * @throws RuntimeException<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     *           user input is validated at this time. may throw a runtime<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     *           exception in response to a parse failure<a name="line.174"></a>
+<span class="sourceLineNo">175</span>     * @return array of split keys for the initial regions of the table. The<a name="line.175"></a>
+<span class="sourceLineNo">176</span>     *         length of the returned array should be numRegions-1.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>     */<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    byte[][] split(int numRegions);<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>    /**<a name="line.180"></a>
+<span class="sourceLineNo">181</span>     * In HBase, the first row is represented by an empty byte array. This might<a name="line.181"></a>
+<span class="sourceLineNo">182</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.182"></a>
+<span class="sourceLineNo">183</span>     * will be passed firstRow() instead of empty array.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>     *<a name="line.184"></a>
+<span class="sourceLineNo">185</span>     * @return your representation of your first row<a name="line.185"></a>
+<span class="sourceLineNo">186</span>     */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    byte[] firstRow();<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>    /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>     * In HBase, the last row is represented by an empty byte array. This might<a name="line.190"></a>
+<span class="sourceLineNo">191</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.191"></a>
+<span class="sourceLineNo">192</span>     * will be passed firstRow() instead of empty array.<a name="line.192"></a>
+<span class="sourceLineNo">193</span>     *<a name="line.193"></a>
+<span class="sourceLineNo">194</span>     * @return your representation of your last row<a name="line.194"></a>
+<span class="sourceLineNo">195</span>     */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    byte[] lastRow();<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>    /**<a name="line.198"></a>
+<span class="sourceLineNo">199</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.199"></a>
+<span class="sourceLineNo">200</span>     * value to help the split code understand how to evenly divide the first<a name="line.200"></a>
+<span class="sourceLineNo">201</span>     * region.<a name="line.201"></a>
+<span class="sourceLineNo">202</span>     *<a name="line.202"></a>
+<span class="sourceLineNo">203</span>     * @param userInput<a name="line.203"></a>
+<span class="sourceLineNo">204</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.204"></a>
+<span class="sourceLineNo">205</span>     */<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    void setFirstRow(String userInput);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.209"></a>
+<span class="sourceLineNo">210</span>     * value to help the split code understand how to evenly divide the last<a name="line.210"></a>
+<span class="sourceLineNo">211</span>     * region. Note that this last row is inclusive for all rows sharing the<a name="line.211"></a>
+<span class="sourceLineNo">212</span>     * same prefix.<a name="line.212"></a>
+<span class="sourceLineNo">213</span>     *<a name="line.213"></a>
+<span class="sourceLineNo">214</span>     * @param userInput<a name="line.214"></a>
+<span class="sourceLineNo">215</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.215"></a>
+<span class="sourceLineNo">216</span>     */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    void setLastRow(String userInput);<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    /**<a name="line.219"></a>
+<span class="sourceLineNo">220</span>     * @param input<a name="line.220"></a>
+<span class="sourceLineNo">221</span>     *          user or file input for row<a name="line.221"></a>
+<span class="sourceLineNo">222</span>     * @return byte array representation of this row for HBase<a name="line.222"></a>
+<span class="sourceLineNo">223</span>     */<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    byte[] strToRow(String input);<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>    /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>     * @param row<a name="line.227"></a>
+<span class="sourceLineNo">228</span>     *          byte array representing a row in HBase<a name="line.228"></a>
+<span class="sourceLineNo">229</span>     * @return String to use for debug &amp;amp; file printing<a name="line.229"></a>
+<span class="sourceLineNo">230</span>     */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    String rowToStr(byte[] row);<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>    /**<a name="line.233"></a>
+<span class="sourceLineNo">234</span>     * @return the separator character to use when storing / printing the row<a name="line.234"></a>
+<span class="sourceLineNo">235</span>     */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    String separator();<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>    /**<a name="line.238"></a>
+<span class="sourceLineNo">239</span>     * Set the first row<a name="line.239"></a>
+<span class="sourceLineNo">240</span>     * @param userInput byte array of the row key.<a name="line.240"></a>
+<span class="sourceLineNo">241</span>     */<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    void setFirstRow(byte[] userInput);<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>    /**<a name="line.244"></a>
+<span class="sourceLineNo">245</span>     * Set the last row<a name="line.245"></a>
+<span class="sourceLineNo">246</span>     * @param userInput byte array of the row key.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>     */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    void setLastRow(byte[] userInput);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>  /**<a name="line.251"></a>
+<span class="sourceLineNo">252</span>   * The main function for the RegionSplitter application. Common uses:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * &lt;p&gt;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * &lt;ul&gt;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * &lt;li&gt;create a table named 'myTable' with 60 pre-split regions containing 2<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * column families 'test' &amp;amp; 'rs', assuming the keys are hex-encoded ASCII:<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * &lt;ul&gt;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -c 60 -f test:rs<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * myTable HexStringSplit<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * &lt;/ul&gt;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   * &lt;li&gt;perform a rolling split of 'myTable' (i.e. 60 =&amp;gt; 120 regions), # 2<a name="line.261"></a>
+<span class="sourceLineNo">262</span>   * outstanding splits at a time, assuming keys are uniformly distributed<a name="line.262"></a>
+<span class="sourceLineNo">263</span>   * bytes:<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   * &lt;ul&gt;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -r -o 2 myTable<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * UniformSplit<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * &lt;/ul&gt;<a name="line.267"></a>
 <span class="sourceLineNo">268</span>   * &lt;/ul&gt;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * &lt;/ul&gt;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   *<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * There are two SplitAlgorithms built into RegionSplitter, HexStringSplit<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * and UniformSplit. These are different strategies for choosing region<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * boundaries. See their source code for details.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   *<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * @param args<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   *          Usage: RegionSplitter &amp;lt;TABLE&amp;gt; &amp;lt;SPLITALGORITHM&amp;gt;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   *          &amp;lt;-c &amp;lt;# regions&amp;gt; -f &amp;lt;family:family:...&amp;gt; | -r<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   *          [-o &amp;lt;# outstanding splits&amp;gt;]&amp;gt;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   *          [-D &amp;lt;conf.param=value&amp;gt;]<a name="line.279"></a>
-<span class="sourceLineNo">280</span>   * @throws IOException<a name="line.280"></a>
-<span class="sourceLineNo">281</span>   *           HBase IO problem<a name="line.281"></a>
-<span class="sourceLineNo">282</span>   * @throws InterruptedException<a name="line.282"></a>
-<span class="sourceLineNo">283</span>   *           user requested exit<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * @throws ParseException<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   *           problem parsing user input<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  @SuppressWarnings("static-access")<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  public static void main(String[] args) throws IOException,<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      InterruptedException, ParseException {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    Configuration conf = HBaseConfiguration.create();<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // parse user input<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    Options opt = new Options();<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    opt.addOption(OptionBuilder.withArgName("property=value").hasArg()<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        .withDescription("Override HBase Configuration Settings").create("D"));<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    opt.addOption(OptionBuilder.withArgName("region count").hasArg()<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        .withDescription(<a name="line.297"></a>
-<span class="sourceLineNo">298</span>            "Create a new table with a pre-split number of regions")<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        .create("c"));<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    opt.addOption(OptionBuilder.withArgName("family:family:...").hasArg()<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .withDescription(<a name="line.301"></a>
-<span class="sourceLineNo">302</span>            "Column Families to create with new table.  Required with -c")<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        .create("f"));<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    opt.addOption("h", false, "Print this usage help");<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    opt.addOption("r", false, "Perform a rolling split of an existing region");<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    opt.addOption(OptionBuilder.withArgName("count").hasArg().withDescription(<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        "Max outstanding splits that have unfinished major compactions")<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        .create("o"));<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    opt.addOption(null, "firstrow", true,<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        "First Row in Table for Split Algorithm");<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    opt.addOption(null, "lastrow", true,<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        "Last Row in Table for Split Algorithm");<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    opt.addOption(null, "risky", false,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        "Skip verification steps to complete quickly."<a name="line.314"></a>
-<span class="sourceLineNo">315</span>            + "STRONGLY DISCOURAGED for production systems.  ");<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    CommandLine cmd = new GnuParser().parse(opt, args);<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>    if (cmd.hasOption("D")) {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      for (String confOpt : cmd.getOptionValues("D")) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        String[] kv = confOpt.split("=", 2);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        if (kv.length == 2) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          conf.set(kv[0], kv[1]);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          LOG.debug("-D configuration override: " + kv[0] + "=" + kv[1]);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>        } else {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>          throw new ParseException("-D option format invalid: " + confOpt);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>        }<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      }<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    }<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span>    if (cmd.hasOption("risky")) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      conf.setBoolean("split.verify", false);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>    boolean createTable = cmd.hasOption("c") &amp;&amp; cmd.hasOption("f");<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    boolean rollingSplit = cmd.hasOption("r");<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    boolean oneOperOnly = createTable ^ rollingSplit;<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>    if (2 != cmd.getArgList().size() || !oneOperOnly || cmd.hasOption("h")) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      new HelpFormatter().printHelp("RegionSplitter &lt;TABLE&gt; &lt;SPLITALGORITHM&gt;\n"+<a name="line.339"></a>
-<span class="sourceLineNo">340</span>          "SPLITALGORITHM is a java class name of a class implementing " +<a name="line.340"></a>
-<span class="sourceLineNo">341</span>          "SplitAlgorithm, or one of the special strings HexStringSplit " +<a name="line.341"></a>
-<span class="sourceLineNo">342</span>          "or UniformSplit, which are built-in split algorithms. " +<a name="line.342"></a>
-<span class="sourceLineNo">343</span>          "HexStringSplit treats keys as hexadecimal ASCII, and " +<a name="line.343"></a>
-<span class="sourceLineNo">344</span>          "UniformSplit treats keys as arbitrary bytes.", opt);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      return;<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    TableName tableName = TableName.valueOf(cmd.getArgs()[0]);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    String splitClass = cmd.getArgs()[1];<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    SplitAlgorithm splitAlgo = newSplitAlgoInstance(conf, splitClass);<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    if (cmd.hasOption("firstrow")) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      splitAlgo.setFirstRow(cmd.getOptionValue("firstrow"));<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    if (cmd.hasOption("lastrow")) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      splitAlgo.setLastRow(cmd.getOptionValue("lastrow"));<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    if (createTable) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      conf.set("split.count", cmd.getOptionValue("c"));<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      createPresplitTable(tableName, splitAlgo, cmd.getOptionValue("f").split(":"), conf);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span>    if (rollingSplit) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      if (cmd.hasOption("o")) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        conf.set("split.outstanding", cmd.getOptionValue("o"));<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      rollingSplit(tableName, splitAlgo, conf);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>  static void createPresplitTable(TableName tableName, SplitAlgorithm splitAlgo,<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          String[] columnFamilies, Configuration conf)<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  throws IOException, InterruptedException {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    final int splitCount = conf.getInt("split.count", 0);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    Preconditions.checkArgument(splitCount &gt; 1, "Split count must be &gt; 1");<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>    Preconditions.checkArgument(columnFamilies.length &gt; 0,<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        "Must specify at least one column family. ");<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    LOG.debug("Creating table " + tableName + " with " + columnFamilies.length<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        + " column families.  Presplitting to " + splitCount + " regions");<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    for (String cf : columnFamilies) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      desc.addFamily(new HColumnDescriptor(Bytes.toBytes(cf)));<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    try (Connection connection = ConnectionFactory.createConnection(conf)) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      Admin admin = connection.getAdmin();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      try {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        Preconditions.checkArgument(!admin.tableExists(tableName),<a name="line.389"></a>
-<span class="sourceLineNo">390</span>          "Table already exists: " + tableName);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        admin.createTable(desc, splitAlgo.split(splitCount));<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      } finally {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>        admin.close();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      }<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      LOG.debug("Table created!  Waiting for regions to show online in META...");<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      if (!conf.getBoolean("split.verify", true)) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        // NOTE: createTable is synchronous on the table, but not on the regions<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        int onlineRegions = 0;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        while (onlineRegions &lt; splitCount) {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          onlineRegions = MetaTableAccessor.getRegionCount(connection, tableName);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          LOG.debug(onlineRegions + " of " + splitCount + " regions online...");<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          if (onlineRegions &lt; splitCount) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            Thread.sleep(10 * 1000); // sleep<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        }<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      LOG.debug("Finished creating table with " + splitCount + " regions");<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>  /**<a name="line.411"></a>
-<span class="sourceLineNo">412</span>   * Alternative getCurrentNrHRS which is no longer available.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>   * @param connection<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   * @return Rough count of regionservers out on cluster.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>   * @throws IOException <a name="line.415"></a>
-<span class="sourceLineNo">416</span>   */<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private static int getRegionServerCount(final Connection connection) throws IOException {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    try (Admin admin = connection.getAdmin()) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      ClusterStatus status = admin.getClusterStatus();<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      Collection&lt;ServerName&gt; servers = status.getServers();<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      return servers == null || servers.isEmpty()? 0: servers.size();<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
-<span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>  private static byte [] readFile(final FileSystem fs, final Path path) throws IOException {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    FSDataInputStream tmpIn = fs.open(path);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      byte [] rawData = new byte[tmpIn.available()];<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      tmpIn.readFully(rawData);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      return rawData;<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    } finally {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      tmpIn.close();<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  static void rollingSplit(TableName tableName, SplitAlgorithm splitAlgo, Configuration conf)<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  throws IOException, InterruptedException {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    final int minOS = conf.getInt("split.outstanding", 2);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    try (Connection connection = ConnectionFactory.createConnection(conf)) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      // Max outstanding splits. default == 50% of servers<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      final int MAX_OUTSTANDING = Math.max(getRegionServerCount(connection) / 2, minOS);<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>      Path hbDir = FSUtils.getRootDir(conf);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      Path tableDir = FSUtils.getTableDir(hbDir, tableName);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      Path splitFile = new Path(tableDir, "_balancedSplit");<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      FileSystem fs = FileSystem.get(conf);<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>      // Get a list of daughter regions to create<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; tmpRegionSet = null;<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      try (Table table = connection.getTable(tableName)) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        tmpRegionSet = getSplits(connection, tableName, splitAlgo);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      }<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; outstanding = Lists.newLinkedList();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      int splitCount = 0;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      final int origCount = tmpRegionSet.size();<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>      // all splits must compact &amp; we have 1 compact thread, so 2 split<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      // requests to the same RS can stall the outstanding split queue.<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      // To fix, group the regions into an RS pool and round-robin through it<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      LOG.debug("Bucketing regions by regionserver...");<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      TreeMap&lt;String, LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt;&gt; daughterRegions =<a name="line.461"></a>
-<span class="sourceLineNo">462</span>          Maps.newTreeMap();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      // Get a regionLocator.  Need it in below.<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      try (RegionLocator regionLocator = connection.getRegionLocator(tableName)) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>        for (Pair&lt;byte[], byte[]&gt; dr : tmpRegionSet) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>          String rsLocation = regionLocator.getRegionLocation(dr.getSecond()).getHostnamePort();<a name="line.466"></a>
-<span class="sourceLineNo">467</span>          if (!daughterRegions.containsKey(rsLocation)) {<a name="line.467"></a>
-<span class="sourceLineNo">468</span>            LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; entry = Lists.newLinkedList();<a name="line.468"></a>
-<span class="sourceLineNo">469</span>            daughterRegions.put(rsLocation, entry);<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          }<a name="line.470"></a>
-<span class="sourceLineNo">471</span>          daughterRegions.get(rsLocation).add(dr);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>        }<a name="line.472"></a>
-<span class="sourceLineNo">473</span>        LOG.debug("Done with bucketing.  Split time!");<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        long startTime = System.currentTimeMillis();<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>        // Open the split file and modify it as splits finish<a name="line.476"></a>
-<span class="sourceLineNo">477</span>        byte[] rawData = readFile(fs, splitFile);<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>        FSDataOutputStream splitOut = fs.create(splitFile);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        try {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>          splitOut.write(rawData);<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>          try {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>            // *** split code ***<a name="line.484"></a>
-<span class="sourceLineNo">485</span>            while (!daughterRegions.isEmpty()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>              LOG.debug(daughterRegions.size() + " RS have regions to splt.");<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>              // Get ServerName to region count mapping<a name="line.488"></a>
-<span class="sourceLineNo">489</span>              final TreeMap&lt;ServerName, Integer&gt; rsSizes = Maps.newTreeMap();<a name="line.489"></a>
-<span class="sourceLineNo">490</span>              List&lt;HRegionLocation&gt; hrls = regionLocator.getAllRegionLocations();<a name="line.490"></a>
-<span class="sourceLineNo">491</span>              for (HRegionLocation hrl: hrls) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>                ServerName sn = hrl.getServerName();<a name="line.492"></a>
-<span class="sourceLineNo">493</span>                if (rsSizes.containsKey(sn)) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>                  rsSizes.put(sn, rsSizes.get(sn) + 1);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>                } else {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>                  rsSizes.put(sn, 1);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>                }<a name="line.497"></a>
-<span class="sourceLineNo">498</span>              }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>              // Sort the ServerNames by the number of regions they have<a name="line.500"></a>
-<span class="sourceLineNo">501</span>              List&lt;String&gt; serversLeft = Lists.newArrayList(daughterRegions .keySet());<a name="line.501"></a>
-<span class="sourceLineNo">502</span>              Collections.sort(serversLeft, new Comparator&lt;String&gt;() {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>                public int compare(String o1, String o2) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>                  return rsSizes.get(o1).compareTo(rsSizes.get(o2));<a name="line.504"></a>
-<span class="sourceLineNo">505</span>                }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>              });<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>              // Round-robin through the ServerName list. Choose the lightest-loaded servers<a name="line.508"></a>
-<span class="sourceLineNo">509</span>              // first to keep the master from load-balancing regions as we split.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>              for (String rsLoc : serversLeft) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>                Pair&lt;byte[], byte[]&gt; dr = null;<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>                // Find a region in the ServerName list that hasn't been moved<a name="line.513"></a>
-<span class="sourceLineNo">514</span>                LOG.debug("Finding a region on " + rsLoc);<a name="line.514"></a>
-<span class="sourceLineNo">515</span>                LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; regionList = daughterRegions.get(rsLoc);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>                while (!regionList.isEmpty()) {<a name="line.516"></a>
-<span class="sourceLineNo">517</span>                  dr = regionList.pop();<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>                  // get current region info<a name="line.519"></a>
-<span class="sourceLineNo">520</span>                  byte[] split = dr.getSecond();<a name="line.520"></a>
-<span class="sourceLineNo">521</span>                  HRegionLocation regionLoc = regionLocator.getRegionLocation(split);<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>                  // if this region moved locations<a name="line.523"></a>
-<span class="sourceLineNo">524</span>                  String newRs = regionLoc.getHostnamePort();<a name="line.524"></a>
-<span class="sourceLineNo">525</span>                  if (newRs.compareTo(rsLoc) != 0) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>                    LOG.debug("Region with " + splitAlgo.rowToStr(split)<a name="line.526"></a>
-<span class="sourceLineNo">527</span>                        + " moved to " + newRs + ". Relocating...");<a name="line.527"></a>
-<span class="sourceLineNo">528</span>                    // relocate it, don't use it right now<a name="line.528"></a>
-<span class="sourceLineNo">529</span>                    if (!daughterRegions.containsKey(newRs)) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>                      LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; entry = Lists.newLinkedList();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>                      daughterRegions.put(newRs, entry);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>                    }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>                    daughterRegions.get(newRs).add(dr);<a name="line.533"></a>
-<span class="sourceLineNo">534</span>                    dr = null;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>                    continue;<a name="line.535"></a>
-<span class="sourceLineNo">536</span>                  }<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span>                  // make sure this region wasn't already split<a name="line.538"></a>
-<span class="sourceLineNo">539</span>                  byte[] sk = regionLoc.getRegionInfo().getStartKey();<a name="line.539"></a>
-<span class="sourceLineNo">540</span>                  if (sk.length != 0) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>                    if (Bytes.equals(split, sk)) {<a name="line.541"></a>
-<span class="sourceLineNo">542</span>                      LOG.debug("Region already split on "<a name="line.542"></a>
-<span class="sourceLineNo">543</span>                          + splitAlgo.rowToStr(split) + ".  Skipping this region...");<a name="line.543"></a>
-<span class="sourceLineNo">544</span>                      ++splitCount;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>                      dr = null;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>                      continue;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>                    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>                    byte[] start = dr.getFirst();<a name="line.548"></a>
-<span class="sourceLineNo">549</span>                    Preconditions.checkArgument(Bytes.equals(start, sk), splitAlgo<a name="line.549"></a>
-<span class="sourceLineNo">550</span>                        .rowToStr(start) + " != " + splitAlgo.rowToStr(sk));<a name="line.550"></a>
-<span class="sourceLineNo">551</span>                  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>                  // passed all checks! found a good region<a name="line.553"></a>
-<span class="sourceLineNo">554</span>                  break;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>                }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>                if (regionList.isEmpty()) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>                  daughterRegions.remove(rsLoc);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>                }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>                if (dr == null)<a name="line.559"></a>
-<span class="sourceLineNo">560</span>                  continue;<a name="line.560"></a>
+<span class="sourceLineNo">269</span>   *<a name="line.269"></a>
+<span class="sourceLineNo">270</span>   * There are two SplitAlgorithms built into RegionSplitter, HexStringSplit<a name="line.270"></a>
+<span class="sourceLineNo">271</span>   * and UniformSplit. These are different strategies for choosing region<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   * boundaries. See their source code for details.<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   *<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   * @param args<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   *          Usage: RegionSplitter &amp;lt;TABLE&amp;gt; &amp;lt;SPLITALGORITHM&amp;gt;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   *          &amp;lt;-c &amp;lt;# regions&amp;gt; -f &amp;lt;family:family:...&amp;gt; | -r<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   *          [-o &amp;lt;# outstanding splits&amp;gt;]&amp;gt;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   *          [-D &amp;lt;conf.param=value&amp;gt;]<a name="line.278"></a>
+<span class="sourceLineNo">279</span>   * @throws IOException<a name="line.279"></a>
+<span class="sourceLineNo">280</span>   *           HBase IO problem<a name="line.280"></a>
+<span class="sourceLineNo">281</span>   * @throws InterruptedException<a name="line.281"></a>
+<span class="sourceLineNo">282</span>   *           user requested exit<a name="line.282"></a>
+<span class="sourceLineNo">283</span>   * @throws ParseException<a name="line.283"></a>
+<span class="sourceLineNo">284</span>   *           problem parsing user input<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  @SuppressWarnings("static-access")<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  public static void main(String[] args) throws IOException,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      InterruptedException, ParseException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    Configuration conf = HBaseConfiguration.create();<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>    // parse user input<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    Options opt = new Options();<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    opt.addOption(OptionBuilder.withArgName("property=value").hasArg()<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        .withDescription("Override HBase Configuration Settings").create("D"));<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    opt.addOption(OptionBuilder.withArgName("region count").hasArg()<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        .withDescription(<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            "Create a new table with a pre-split number of regions")<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        .create("c"));<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    opt.addOption(OptionBuilder.withArgName("family:family:...").hasArg()<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        .withDescription(<a name="line.300"></a>
+<span class="sourceLineNo">301</span>            "Column Families to create with new table.  Required with -c")<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        .create("f"));<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    opt.addOption("h", false, "Print this usage help");<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    opt.addOption("r", false, "Perform a rolling split of an existing region");<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    opt.addOption(OptionBuilder.withArgName("count").hasArg().withDescription(<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        "Max outstanding splits that have unfinished major compactions")<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        .create("o"));<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    opt.addOption(null, "firstrow", true,<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        "First Row in Table for Split Algorithm");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    opt.addOption(null, "lastrow", true,<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        "Last Row in Table for Split Algorithm");<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    opt.addOption(null, "risky", false,<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        "Skip verification steps to complete quickly."<a name="line.313"></a>
+<span class="sourceLineNo">314</span>            + "STRONGLY DISCOURAGED for production systems.  ");<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    CommandLine cmd = new GnuParser().parse(opt, args);<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (cmd.hasOption("D")) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      for (String confOpt : cmd.getOptionValues("D")) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        String[] kv = confOpt.split("=", 2);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        if (kv.length == 2) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          conf.set(kv[0], kv[1]);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>          LOG.debug("-D configuration override: " + kv[0] + "=" + kv[1]);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>        } else {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          throw new ParseException("-D option format invalid: " + confOpt);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>    if (cmd.hasOption("risky")) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      conf.setBoolean("split.verify", false);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>    boolean createTable = cmd.hasOption("c") &amp;&amp; cmd.hasOption("f");<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    boolean rollingSplit = cmd.hasOption("r");<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    boolean oneOperOnly = createTable ^ rollingSplit;<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>    if (2 != cmd.getArgList().size() || !oneOperOnly || cmd.hasOption("h")) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      new HelpFormatter().printHelp("RegionSplitter &lt;TABLE&gt; &lt;SPLITALGORITHM&gt;\n"+<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          "SPLITALGORITHM is a java class name of a class implementing " +<a name="line.339"></a>
+<span class="sourceLineNo">340</span>          "SplitAlgorithm, or one of the special strings HexStringSplit " +<a name="line.340"></a>
+<span class="sourceLineNo">341</span>          "or UniformSplit, which are built-in split algorithms. " +<a name="line.341"></a>
+<span class="sourceLineNo">342</span>          "HexStringSplit treats keys as hexadecimal ASCII, and " +<a name="line.342"></a>
+<span class="sourceLin

<TRUNCATED>

[13/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-summary.html b/hbase-spark/project-summary.html
index e2fb2a0..a5287e0 100644
--- a/hbase-spark/project-summary.html
+++ b/hbase-spark/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/scaladocs/index.html
----------------------------------------------------------------------
diff --git a/hbase-spark/scaladocs/index.html b/hbase-spark/scaladocs/index.html
index 24f7a20..ebbaaba 100644
--- a/hbase-spark/scaladocs/index.html
+++ b/hbase-spark/scaladocs/index.html
@@ -40,7 +40,7 @@
             <ol class="templates"></ol>
             <ol class="packages"> <li class="pack" title="org.apache.hadoop.hbase.spark">
             <a class="tplshow" href="org/apache/hadoop/hbase/spark/package.html" target="template">org.apache.hadoop.hbase.spark</a>
-            <ol class="templates"><li title="org.apache.hadoop.hbase.spark.AndLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/AndLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">AndLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.AvroException"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/AvroException.html" target="template"><span class="class">(class)</span><span class="tplLink">AvroException</span></a></li><li title="org.apache.hadoop.hbase.spark.AvroSerdes"><a class="tplshow" href="org/apache/hadoop/hbase/spark/AvroSerdes$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">AvroSerdes</span></a></li><li title="org.apache.hadoop.hbase.spark.BulkLoadPartitioner"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/BulkLoadPar
 titioner.html" target="template"><span class="class">(class)</span><span class="tplLink">BulkLoadPartitioner</span></a></li><li title="org.apache.hadoop.hbase.spark.ByteArrayComparable"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ByteArrayComparable.html" target="template"><span class="class">(class)</span><span class="tplLink">ByteArrayComparable</span></a></li><li title="org.apache.hadoop.hbase.spark.ByteArrayWrapper"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ByteArrayWrapper.html" target="template"><span class="class">(class)</span><span class="tplLink">ByteArrayWrapper</span></a></li><li title="org.apache.hadoop.hbase.spark.ColumnFamilyQualifierMapKeyWrapper"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ColumnFamilyQualifierMapKeyWrapper.html" target="template"><span class="class">(class)</span><span class="tplLink">ColumnFamilyQualifierMapKeyWrapper</sp
 an></a></li><li title="org.apache.hadoop.hbase.spark.ColumnFilter"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ColumnFilter.html" target="template"><span class="class">(class)</span><span class="tplLink">ColumnFilter</span></a></li><li title="org.apache.hadoop.hbase.spark.ColumnFilterCollection"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ColumnFilterCollection.html" target="template"><span class="class">(class)</span><span class="tplLink">ColumnFilterCollection</span></a></li><li title="org.apache.hadoop.hbase.spark.CompareTrait"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/CompareTrait.html" target="template"><span class="trait">(trait)</span><span class="tplLink">CompareTrait</span></a></li><li title="org.apache.hadoop.hbase.spark.DefaultSource"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/DefaultSource.html" target=
 "template"><span class="class">(class)</span><span class="tplLink">DefaultSource</span></a></li><li title="org.apache.hadoop.hbase.spark.DefaultSourceStaticUtils"><a class="tplshow" href="org/apache/hadoop/hbase/spark/DefaultSourceStaticUtils$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">DefaultSourceStaticUtils</span></a></li><li title="org.apache.hadoop.hbase.spark.DynamicLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/DynamicLogicExpression.html" target="template"><span class="trait">(trait)</span><span class="tplLink">DynamicLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.DynamicLogicExpressionBuilder"><a class="tplshow" href="org/apache/hadoop/hbase/spark/DynamicLogicExpressionBuilder$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">DynamicLogicExpressionBuilder</span><
 /a></li><li title="org.apache.hadoop.hbase.spark.EqualLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/EqualLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">EqualLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.ExecutionRuleForUnitTesting"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ExecutionRuleForUnitTesting.html" target="template"><span class="class">(class)</span><span class="tplLink">ExecutionRuleForUnitTesting</span></a></li><li title="org.apache.hadoop.hbase.spark.FamiliesQualifiersValues"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/FamiliesQualifiersValues.html" target="template"><span class="class">(class)</span><span class="tplLink">FamiliesQualifiersValues</span></a></li><li title="org.apache.hadoop.hbase.spark.FamilyHFileWriteOptions"><div class="placeholder"></div><
 a class="tplshow" href="org/apache/hadoop/hbase/spark/FamilyHFileWriteOptions.html" target="template"><span class="class">(class)</span><span class="tplLink">FamilyHFileWriteOptions</span></a></li><li title="org.apache.hadoop.hbase.spark.GreaterThanLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/GreaterThanLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">GreaterThanLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.GreaterThanOrEqualLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/GreaterThanOrEqualLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">GreaterThanOrEqualLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.HBaseConnectionKey"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/HBaseConnectionKey.html"
  target="template"><span class="class">(class)</span><span class="tplLink">HBaseConnectionKey</span></a></li><li title="org.apache.hadoop.hbase.spark.HBaseContext"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/HBaseContext.html" target="template"><span class="class">(class)</span><span class="tplLink">HBaseContext</span></a></li><li title="org.apache.hadoop.hbase.spark.HBaseDStreamFunctions"><a class="tplshow" href="org/apache/hadoop/hbase/spark/HBaseDStreamFunctions$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">HBaseDStreamFunctions</span></a></li><li title="org.apache.hadoop.hbase.spark.HBaseRDDFunctions"><a class="tplshow" href="org/apache/hadoop/hbase/spark/HBaseRDDFunctions$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">HBaseRDDFunctions</span></a></li><li title="org.apache.hadoop.hbase.spark.HBaseRelation
 "><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/HBaseRelation.html" target="template"><span class="case class">(case class)</span><span class="tplLink">HBaseRelation</span></a></li><li title="org.apache.hadoop.hbase.spark.IsNullLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/IsNullLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">IsNullLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.JavaHBaseContext"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/JavaHBaseContext.html" target="template"><span class="class">(class)</span><span class="tplLink">JavaHBaseContext</span></a></li><li title="org.apache.hadoop.hbase.spark.KeyFamilyQualifier"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/KeyFamilyQualifier.html" target="template"><span class="class">(cl
 ass)</span><span class="tplLink">KeyFamilyQualifier</span></a></li><li title="org.apache.hadoop.hbase.spark.LatestHBaseContextCache"><a class="tplshow" href="org/apache/hadoop/hbase/spark/LatestHBaseContextCache$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">LatestHBaseContextCache</span></a></li><li title="org.apache.hadoop.hbase.spark.LessThanLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/LessThanLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">LessThanLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.LessThanOrEqualLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/LessThanOrEqualLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">LessThanOrEqualLogicExpression</span></a></li><li title="org.apache
 .hadoop.hbase.spark.NewHBaseRDD"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/NewHBaseRDD.html" target="template"><span class="class">(class)</span><span class="tplLink">NewHBaseRDD</span></a></li><li title="org.apache.hadoop.hbase.spark.OrLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/OrLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">OrLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.PassThroughLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/PassThroughLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">PassThroughLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.RowKeyFilter"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/RowKeyFilter.html" target="template">
 <span class="class">(class)</span><span class="tplLink">RowKeyFilter</span></a></li><li title="org.apache.hadoop.hbase.spark.ScanRange"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ScanRange.html" target="template"><span class="class">(class)</span><span class="tplLink">ScanRange</span></a></li><li title="org.apache.hadoop.hbase.spark.SchemaConversionException"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/SchemaConversionException.html" target="template"><span class="case class">(case class)</span><span class="tplLink">SchemaConversionException</span></a></li><li title="org.apache.hadoop.hbase.spark.SchemaConverters"><a class="tplshow" href="org/apache/hadoop/hbase/spark/SchemaConverters$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">SchemaConverters</span></a></li><li title="org.apache.hadoop.hbase.spark.SparkSQLPushDownFilter"><div cl
 ass="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/SparkSQLPushDownFilter.html" target="template"><span class="class">(class)</span><span class="tplLink">SparkSQLPushDownFilter</span></a></li></ol>
+            <ol class="templates"><li title="org.apache.hadoop.hbase.spark.AndLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/AndLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">AndLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.AvroException"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/AvroException.html" target="template"><span class="class">(class)</span><span class="tplLink">AvroException</span></a></li><li title="org.apache.hadoop.hbase.spark.AvroSerdes"><a class="tplshow" href="org/apache/hadoop/hbase/spark/AvroSerdes$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">AvroSerdes</span></a></li><li title="org.apache.hadoop.hbase.spark.BulkLoadPartitioner"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/BulkLoadPar
 titioner.html" target="template"><span class="class">(class)</span><span class="tplLink">BulkLoadPartitioner</span></a></li><li title="org.apache.hadoop.hbase.spark.ByteArrayComparable"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ByteArrayComparable.html" target="template"><span class="class">(class)</span><span class="tplLink">ByteArrayComparable</span></a></li><li title="org.apache.hadoop.hbase.spark.ByteArrayWrapper"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ByteArrayWrapper.html" target="template"><span class="class">(class)</span><span class="tplLink">ByteArrayWrapper</span></a></li><li title="org.apache.hadoop.hbase.spark.ColumnFamilyQualifierMapKeyWrapper"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ColumnFamilyQualifierMapKeyWrapper.html" target="template"><span class="class">(class)</span><span class="tplLink">ColumnFamilyQualifierMapKeyWrapper</sp
 an></a></li><li title="org.apache.hadoop.hbase.spark.ColumnFilter"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ColumnFilter.html" target="template"><span class="class">(class)</span><span class="tplLink">ColumnFilter</span></a></li><li title="org.apache.hadoop.hbase.spark.ColumnFilterCollection"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ColumnFilterCollection.html" target="template"><span class="class">(class)</span><span class="tplLink">ColumnFilterCollection</span></a></li><li title="org.apache.hadoop.hbase.spark.CompareTrait"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/CompareTrait.html" target="template"><span class="trait">(trait)</span><span class="tplLink">CompareTrait</span></a></li><li title="org.apache.hadoop.hbase.spark.DefaultSource"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/DefaultSource.html" target=
 "template"><span class="class">(class)</span><span class="tplLink">DefaultSource</span></a></li><li title="org.apache.hadoop.hbase.spark.DefaultSourceStaticUtils"><a class="tplshow" href="org/apache/hadoop/hbase/spark/DefaultSourceStaticUtils$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">DefaultSourceStaticUtils</span></a></li><li title="org.apache.hadoop.hbase.spark.DynamicLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/DynamicLogicExpression.html" target="template"><span class="trait">(trait)</span><span class="tplLink">DynamicLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.DynamicLogicExpressionBuilder"><a class="tplshow" href="org/apache/hadoop/hbase/spark/DynamicLogicExpressionBuilder$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">DynamicLogicExpressionBuilder</span><
 /a></li><li title="org.apache.hadoop.hbase.spark.EqualLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/EqualLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">EqualLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.ExecutionRuleForUnitTesting"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ExecutionRuleForUnitTesting.html" target="template"><span class="class">(class)</span><span class="tplLink">ExecutionRuleForUnitTesting</span></a></li><li title="org.apache.hadoop.hbase.spark.FamiliesQualifiersValues"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/FamiliesQualifiersValues.html" target="template"><span class="class">(class)</span><span class="tplLink">FamiliesQualifiersValues</span></a></li><li title="org.apache.hadoop.hbase.spark.FamilyHFileWriteOptions"><div class="placeholder"></div><
 a class="tplshow" href="org/apache/hadoop/hbase/spark/FamilyHFileWriteOptions.html" target="template"><span class="class">(class)</span><span class="tplLink">FamilyHFileWriteOptions</span></a></li><li title="org.apache.hadoop.hbase.spark.GreaterThanLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/GreaterThanLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">GreaterThanLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.GreaterThanOrEqualLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/GreaterThanOrEqualLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">GreaterThanOrEqualLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/HBaseConnectionCac
 heStat.html" target="template"><span class="case class">(case class)</span><span class="tplLink">HBaseConnectionCacheStat</span></a></li><li title="org.apache.hadoop.hbase.spark.HBaseConnectionKey"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/HBaseConnectionKey.html" target="template"><span class="class">(class)</span><span class="tplLink">HBaseConnectionKey</span></a></li><li title="org.apache.hadoop.hbase.spark.HBaseContext"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/HBaseContext.html" target="template"><span class="class">(class)</span><span class="tplLink">HBaseContext</span></a></li><li title="org.apache.hadoop.hbase.spark.HBaseDStreamFunctions"><a class="tplshow" href="org/apache/hadoop/hbase/spark/HBaseDStreamFunctions$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">HBaseDStreamFunctions</span></a></li><li title="org.apache.hado
 op.hbase.spark.HBaseRDDFunctions"><a class="tplshow" href="org/apache/hadoop/hbase/spark/HBaseRDDFunctions$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">HBaseRDDFunctions</span></a></li><li title="org.apache.hadoop.hbase.spark.HBaseRelation"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/HBaseRelation.html" target="template"><span class="case class">(case class)</span><span class="tplLink">HBaseRelation</span></a></li><li title="org.apache.hadoop.hbase.spark.IsNullLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/IsNullLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">IsNullLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.JavaHBaseContext"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/JavaHBaseContext.html" target="tem
 plate"><span class="class">(class)</span><span class="tplLink">JavaHBaseContext</span></a></li><li title="org.apache.hadoop.hbase.spark.KeyFamilyQualifier"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/KeyFamilyQualifier.html" target="template"><span class="class">(class)</span><span class="tplLink">KeyFamilyQualifier</span></a></li><li title="org.apache.hadoop.hbase.spark.LatestHBaseContextCache"><a class="tplshow" href="org/apache/hadoop/hbase/spark/LatestHBaseContextCache$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">LatestHBaseContextCache</span></a></li><li title="org.apache.hadoop.hbase.spark.LessThanLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/LessThanLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">LessThanLogicExpression</span></a></li><li title="org.apache.hadoop.
 hbase.spark.LessThanOrEqualLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/LessThanOrEqualLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">LessThanOrEqualLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.NewHBaseRDD"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/NewHBaseRDD.html" target="template"><span class="class">(class)</span><span class="tplLink">NewHBaseRDD</span></a></li><li title="org.apache.hadoop.hbase.spark.OrLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/OrLogicExpression.html" target="template"><span class="class">(class)</span><span class="tplLink">OrLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.PassThroughLogicExpression"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/PassThroughLogicExp
 ression.html" target="template"><span class="class">(class)</span><span class="tplLink">PassThroughLogicExpression</span></a></li><li title="org.apache.hadoop.hbase.spark.RowKeyFilter"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/RowKeyFilter.html" target="template"><span class="class">(class)</span><span class="tplLink">RowKeyFilter</span></a></li><li title="org.apache.hadoop.hbase.spark.ScanRange"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/ScanRange.html" target="template"><span class="class">(class)</span><span class="tplLink">ScanRange</span></a></li><li title="org.apache.hadoop.hbase.spark.SchemaConversionException"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/SchemaConversionException.html" target="template"><span class="case class">(case class)</span><span class="tplLink">SchemaConversionException</span></a></li><li title="org.apache.hadoop.hbase.spark.
 SchemaConverters"><a class="tplshow" href="org/apache/hadoop/hbase/spark/SchemaConverters$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">SchemaConverters</span></a></li><li title="org.apache.hadoop.hbase.spark.SparkSQLPushDownFilter"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/SparkSQLPushDownFilter.html" target="template"><span class="class">(class)</span><span class="tplLink">SparkSQLPushDownFilter</span></a></li></ol>
             <ol class="packages"> <li class="pack" title="org.apache.hadoop.hbase.spark.datasources">
             <a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/package.html" target="template">org.apache.hadoop.hbase.spark.datasources</a>
             <ol class="templates"><li title="org.apache.hadoop.hbase.spark.datasources.Bound"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/Bound.html" target="template"><span class="case class">(case class)</span><span class="tplLink">Bound</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.BoundRange"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/BoundRange.html" target="template"><span class="case class">(case class)</span><span class="tplLink">BoundRange</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.BoundRanges"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/BoundRanges.html" target="template"><span class="case class">(case class)</span><span class="tplLink">BoundRanges</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.BytesEncoder"><div class="placeholder"></div><a clas
 s="tplshow" href="org/apache/hadoop/hbase/spark/datasources/BytesEncoder.html" target="template"><span class="trait">(trait)</span><span class="tplLink">BytesEncoder</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.DoubleSerDes"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/DoubleSerDes.html" target="template"><span class="class">(class)</span><span class="tplLink">DoubleSerDes</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.GetResource"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/GetResource.html" target="template"><span class="case class">(case class)</span><span class="tplLink">GetResource</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.HBaseResources"><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/HBaseResources$.html" target="template"><span class="object">(object)</span><div class="placeholder">
 </div><span class="tplLink">HBaseResources</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.HBaseSparkConf"><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/HBaseSparkConf$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">HBaseSparkConf</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.HBaseTableScanRDD"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/HBaseTableScanRDD.html" target="template"><span class="class">(class)</span><span class="tplLink">HBaseTableScanRDD</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.JavaBytesEncoder"><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/JavaBytesEncoder$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">JavaBytesEncoder</span></a></li><li title="org.apache.hadoop.hbase.spark.d
 atasources.NaiveEncoder"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/NaiveEncoder.html" target="template"><span class="class">(class)</span><span class="tplLink">NaiveEncoder</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.Points"><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/Points$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">Points</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.Range"><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/Range$.html" target="template"><span class="object">(object)</span></a><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/Range.html" target="template"><span class="case class">(case class)</span><span class="tplLink">Range</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.Ranges"><a class="tplshow" href="org/apache/had
 oop/hbase/spark/datasources/Ranges$.html" target="template"><span class="object">(object)</span><div class="placeholder"></div><span class="tplLink">Ranges</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.RDDResources"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/RDDResources.html" target="template"><span class="case class">(case class)</span><span class="tplLink">RDDResources</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.ReferencedResource"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/ReferencedResource.html" target="template"><span class="trait">(trait)</span><span class="tplLink">ReferencedResource</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.RegionResource"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/RegionResource.html" target="template"><span class="case cl
 ass">(case class)</span><span class="tplLink">RegionResource</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.Resource"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/Resource.html" target="template"><span class="trait">(trait)</span><span class="tplLink">Resource</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.ScanResource"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/ScanResource.html" target="template"><span class="case class">(case class)</span><span class="tplLink">ScanResource</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.SerDes"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/SerDes.html" target="template"><span class="trait">(trait)</span><span class="tplLink">SerDes</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.SerializableConfiguration"><di
 v class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/SerializableConfiguration.html" target="template"><span class="class">(class)</span><span class="tplLink">SerializableConfiguration</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.SerializedFilter"><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/SerializedFilter$.html" target="template"><span class="object">(object)</span></a><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/SerializedFilter.html" target="template"><span class="case class">(case class)</span><span class="tplLink">SerializedFilter</span></a></li><li title="org.apache.hadoop.hbase.spark.datasources.TableResource"><div class="placeholder"></div><a class="tplshow" href="org/apache/hadoop/hbase/spark/datasources/TableResource.html" target="template"><span class="case class">(case class)</span><span class="tplLink">TableResource</span></a></li></ol>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/scaladocs/index.js
----------------------------------------------------------------------
diff --git a/hbase-spark/scaladocs/index.js b/hbase-spark/scaladocs/index.js
index 324935b..f370baa 100644
--- a/hbase-spark/scaladocs/index.js
+++ b/hbase-spark/scaladocs/index.js
@@ -1 +1 @@
-Index.PACKAGES = {"org.apache.hadoop.hbase.spark.datasources" : [{"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/Bound.html", "name" : "org.apache.hadoop.hbase.spark.datasources.Bound"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/BoundRange.html", "name" : "org.apache.hadoop.hbase.spark.datasources.BoundRange"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/BoundRanges.html", "name" : "org.apache.hadoop.hbase.spark.datasources.BoundRanges"}, {"trait" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/BytesEncoder.html", "name" : "org.apache.hadoop.hbase.spark.datasources.BytesEncoder"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/DoubleSerDes.html", "name" : "org.apache.hadoop.hbase.spark.datasources.DoubleSerDes"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/GetResource.html", "name" : "org.apache.hadoop.hbase.spark.datasources.GetResource"}, {"object" : "org\/apache\/hadoop\/hbase\/spark
 \/datasources\/HBaseResources$.html", "name" : "org.apache.hadoop.hbase.spark.datasources.HBaseResources"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/HBaseSparkConf$.html", "name" : "org.apache.hadoop.hbase.spark.datasources.HBaseSparkConf"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/HBaseTableScanRDD.html", "name" : "org.apache.hadoop.hbase.spark.datasources.HBaseTableScanRDD"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/JavaBytesEncoder$.html", "name" : "org.apache.hadoop.hbase.spark.datasources.JavaBytesEncoder"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/NaiveEncoder.html", "name" : "org.apache.hadoop.hbase.spark.datasources.NaiveEncoder"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/Points$.html", "name" : "org.apache.hadoop.hbase.spark.datasources.Points"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/Range$.html", "case class" : "org\/apache\/hadoop\/hbase\/spark\/datasou
 rces\/Range.html", "name" : "org.apache.hadoop.hbase.spark.datasources.Range"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/Ranges$.html", "name" : "org.apache.hadoop.hbase.spark.datasources.Ranges"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/RDDResources.html", "name" : "org.apache.hadoop.hbase.spark.datasources.RDDResources"}, {"trait" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/ReferencedResource.html", "name" : "org.apache.hadoop.hbase.spark.datasources.ReferencedResource"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/RegionResource.html", "name" : "org.apache.hadoop.hbase.spark.datasources.RegionResource"}, {"trait" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/Resource.html", "name" : "org.apache.hadoop.hbase.spark.datasources.Resource"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/ScanResource.html", "name" : "org.apache.hadoop.hbase.spark.datasources.ScanResource"}, {"trait" : "org\
 /apache\/hadoop\/hbase\/spark\/datasources\/SerDes.html", "name" : "org.apache.hadoop.hbase.spark.datasources.SerDes"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/SerializableConfiguration.html", "name" : "org.apache.hadoop.hbase.spark.datasources.SerializableConfiguration"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/SerializedFilter$.html", "case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/SerializedFilter.html", "name" : "org.apache.hadoop.hbase.spark.datasources.SerializedFilter"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/TableResource.html", "name" : "org.apache.hadoop.hbase.spark.datasources.TableResource"}], "org.apache.hadoop.hbase.spark.example" : [], "org.apache.hadoop.hbase.spark" : [{"class" : "org\/apache\/hadoop\/hbase\/spark\/AndLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.AndLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/AvroException.html", "name" : "org.apa
 che.hadoop.hbase.spark.AvroException"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/AvroSerdes$.html", "name" : "org.apache.hadoop.hbase.spark.AvroSerdes"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/BulkLoadPartitioner.html", "name" : "org.apache.hadoop.hbase.spark.BulkLoadPartitioner"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ByteArrayComparable.html", "name" : "org.apache.hadoop.hbase.spark.ByteArrayComparable"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ByteArrayWrapper.html", "name" : "org.apache.hadoop.hbase.spark.ByteArrayWrapper"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ColumnFamilyQualifierMapKeyWrapper.html", "name" : "org.apache.hadoop.hbase.spark.ColumnFamilyQualifierMapKeyWrapper"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ColumnFilter.html", "name" : "org.apache.hadoop.hbase.spark.ColumnFilter"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ColumnFilterCollection.html", "name" : "org.apache.hadoop.hbase.spark.ColumnFilterCollection"}
 , {"trait" : "org\/apache\/hadoop\/hbase\/spark\/CompareTrait.html", "name" : "org.apache.hadoop.hbase.spark.CompareTrait"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/DefaultSource.html", "name" : "org.apache.hadoop.hbase.spark.DefaultSource"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/DefaultSourceStaticUtils$.html", "name" : "org.apache.hadoop.hbase.spark.DefaultSourceStaticUtils"}, {"trait" : "org\/apache\/hadoop\/hbase\/spark\/DynamicLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.DynamicLogicExpression"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/DynamicLogicExpressionBuilder$.html", "name" : "org.apache.hadoop.hbase.spark.DynamicLogicExpressionBuilder"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/EqualLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.EqualLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ExecutionRuleForUnitTesting.html", "name" : "org.apache.hadoop.hbase.spark.ExecutionRuleForUnitTesting"}, {"cl
 ass" : "org\/apache\/hadoop\/hbase\/spark\/FamiliesQualifiersValues.html", "name" : "org.apache.hadoop.hbase.spark.FamiliesQualifiersValues"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/FamilyHFileWriteOptions.html", "name" : "org.apache.hadoop.hbase.spark.FamilyHFileWriteOptions"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/GreaterThanLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.GreaterThanLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/GreaterThanOrEqualLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.GreaterThanOrEqualLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/HBaseConnectionKey.html", "name" : "org.apache.hadoop.hbase.spark.HBaseConnectionKey"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/HBaseContext.html", "name" : "org.apache.hadoop.hbase.spark.HBaseContext"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/HBaseDStreamFunctions$.html", "name" : "org.apache.hadoop.hbase.spark.HBaseDStreamFunct
 ions"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/HBaseRDDFunctions$.html", "name" : "org.apache.hadoop.hbase.spark.HBaseRDDFunctions"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/HBaseRelation.html", "name" : "org.apache.hadoop.hbase.spark.HBaseRelation"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/IsNullLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.IsNullLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/JavaHBaseContext.html", "name" : "org.apache.hadoop.hbase.spark.JavaHBaseContext"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/KeyFamilyQualifier.html", "name" : "org.apache.hadoop.hbase.spark.KeyFamilyQualifier"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/LatestHBaseContextCache$.html", "name" : "org.apache.hadoop.hbase.spark.LatestHBaseContextCache"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/LessThanLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.LessThanLogicExpression"}, {"class" : "org\/apache\/
 hadoop\/hbase\/spark\/LessThanOrEqualLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.LessThanOrEqualLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/NewHBaseRDD.html", "name" : "org.apache.hadoop.hbase.spark.NewHBaseRDD"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/OrLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.OrLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/PassThroughLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.PassThroughLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/RowKeyFilter.html", "name" : "org.apache.hadoop.hbase.spark.RowKeyFilter"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ScanRange.html", "name" : "org.apache.hadoop.hbase.spark.ScanRange"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/SchemaConversionException.html", "name" : "org.apache.hadoop.hbase.spark.SchemaConversionException"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/SchemaConverters
 $.html", "name" : "org.apache.hadoop.hbase.spark.SchemaConverters"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/SparkSQLPushDownFilter.html", "name" : "org.apache.hadoop.hbase.spark.SparkSQLPushDownFilter"}], "org.apache.hadoop.hbase.spark.example.datasources" : [{"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/AvroHBaseRecord$.html", "case class" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/AvroHBaseRecord.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.AvroHBaseRecord"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/AvroSource$.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.AvroSource"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/DataType$.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.DataType"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/HBaseRecord$.html", "case class" : "org\/apache\/hadoop\/hbase\/spar
 k\/example\/datasources\/HBaseRecord.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.HBaseRecord"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/HBaseSource$.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.HBaseSource"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/IntKeyRecord$.html", "case class" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/IntKeyRecord.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.IntKeyRecord"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/UserCustomizedSampleException$.html", "class" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/UserCustomizedSampleException.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.UserCustomizedSampleException"}], "org.apache.hadoop" : [], "org.apache.spark" : [], "org.apache" : [], "org.apache.spark.sql.datasources.hbase" : [{"object" : "org\/apache\/spark\
 /sql\/datasources\/hbase\/DataTypeParserWrapper$.html", "name" : "org.apache.spark.sql.datasources.hbase.DataTypeParserWrapper"}, {"case class" : "org\/apache\/spark\/sql\/datasources\/hbase\/Field.html", "name" : "org.apache.spark.sql.datasources.hbase.Field"}, {"object" : "org\/apache\/spark\/sql\/datasources\/hbase\/HBaseTableCatalog$.html", "case class" : "org\/apache\/spark\/sql\/datasources\/hbase\/HBaseTableCatalog.html", "name" : "org.apache.spark.sql.datasources.hbase.HBaseTableCatalog"}, {"case class" : "org\/apache\/spark\/sql\/datasources\/hbase\/RowKey.html", "name" : "org.apache.spark.sql.datasources.hbase.RowKey"}, {"case class" : "org\/apache\/spark\/sql\/datasources\/hbase\/SchemaMap.html", "name" : "org.apache.spark.sql.datasources.hbase.SchemaMap"}, {"case class" : "org\/apache\/spark\/sql\/datasources\/hbase\/SchemaQualifierDefinition.html", "name" : "org.apache.spark.sql.datasources.hbase.SchemaQualifierDefinition"}, {"object" : "org\/apache\/spark\/sql\/datasou
 rces\/hbase\/Utils$.html", "name" : "org.apache.spark.sql.datasources.hbase.Utils"}], "org.apache.spark.sql.datasources" : [], "org.apache.hadoop.hbase.spark.example.hbasecontext" : [{"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseBulkDeleteExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseBulkDeleteExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseBulkGetExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseBulkGetExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseBulkPutExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseBulkPutExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseBulkPutExampleFromFile$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseBulkPutExampleFromFile"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hba
 secontext\/HBaseBulkPutTimestampExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseBulkPutTimestampExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseDistributedScanExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseDistributedScanExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseStreamingBulkPutExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseStreamingBulkPutExample"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/JavaHBaseBulkDeleteExample.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseBulkDeleteExample"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/JavaHBaseBulkGetExample.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseBulkGetExample"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/Ja
 vaHBaseBulkPutExample.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseBulkPutExample"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/JavaHBaseDistributedScan.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseDistributedScan"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/JavaHBaseMapGetPutExample.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseMapGetPutExample"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/JavaHBaseStreamingBulkPutExample.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseStreamingBulkPutExample"}], "org.apache.hadoop.hbase.spark.example.rdd" : [{"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/rdd\/HBaseBulkDeleteExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.rdd.HBaseBulkDeleteExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/rdd\/HBaseBul
 kGetExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.rdd.HBaseBulkGetExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/rdd\/HBaseBulkPutExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.rdd.HBaseBulkPutExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/rdd\/HBaseForeachPartitionExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.rdd.HBaseForeachPartitionExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/rdd\/HBaseMapPartitionExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.rdd.HBaseMapPartitionExample"}], "org.apache.hadoop.hbase" : [], "org.apache.spark.sql" : [], "org" : [], "org.apache.hadoop.hbase.spark.protobuf" : [], "org.apache.hadoop.hbase.spark.protobuf.generated" : [{"class" : "org\/apache\/hadoop\/hbase\/spark\/protobuf\/generated\/SparkFilterProtos.html", "name" : "org.apache.hadoop.hbase.spark.protobuf.generated.SparkFilterProtos"}]};
\ No newline at end of file
+Index.PACKAGES = {"org.apache.hadoop.hbase.spark.datasources" : [{"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/Bound.html", "name" : "org.apache.hadoop.hbase.spark.datasources.Bound"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/BoundRange.html", "name" : "org.apache.hadoop.hbase.spark.datasources.BoundRange"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/BoundRanges.html", "name" : "org.apache.hadoop.hbase.spark.datasources.BoundRanges"}, {"trait" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/BytesEncoder.html", "name" : "org.apache.hadoop.hbase.spark.datasources.BytesEncoder"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/DoubleSerDes.html", "name" : "org.apache.hadoop.hbase.spark.datasources.DoubleSerDes"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/GetResource.html", "name" : "org.apache.hadoop.hbase.spark.datasources.GetResource"}, {"object" : "org\/apache\/hadoop\/hbase\/spark
 \/datasources\/HBaseResources$.html", "name" : "org.apache.hadoop.hbase.spark.datasources.HBaseResources"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/HBaseSparkConf$.html", "name" : "org.apache.hadoop.hbase.spark.datasources.HBaseSparkConf"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/HBaseTableScanRDD.html", "name" : "org.apache.hadoop.hbase.spark.datasources.HBaseTableScanRDD"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/JavaBytesEncoder$.html", "name" : "org.apache.hadoop.hbase.spark.datasources.JavaBytesEncoder"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/NaiveEncoder.html", "name" : "org.apache.hadoop.hbase.spark.datasources.NaiveEncoder"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/Points$.html", "name" : "org.apache.hadoop.hbase.spark.datasources.Points"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/Range$.html", "case class" : "org\/apache\/hadoop\/hbase\/spark\/datasou
 rces\/Range.html", "name" : "org.apache.hadoop.hbase.spark.datasources.Range"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/Ranges$.html", "name" : "org.apache.hadoop.hbase.spark.datasources.Ranges"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/RDDResources.html", "name" : "org.apache.hadoop.hbase.spark.datasources.RDDResources"}, {"trait" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/ReferencedResource.html", "name" : "org.apache.hadoop.hbase.spark.datasources.ReferencedResource"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/RegionResource.html", "name" : "org.apache.hadoop.hbase.spark.datasources.RegionResource"}, {"trait" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/Resource.html", "name" : "org.apache.hadoop.hbase.spark.datasources.Resource"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/ScanResource.html", "name" : "org.apache.hadoop.hbase.spark.datasources.ScanResource"}, {"trait" : "org\
 /apache\/hadoop\/hbase\/spark\/datasources\/SerDes.html", "name" : "org.apache.hadoop.hbase.spark.datasources.SerDes"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/SerializableConfiguration.html", "name" : "org.apache.hadoop.hbase.spark.datasources.SerializableConfiguration"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/SerializedFilter$.html", "case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/SerializedFilter.html", "name" : "org.apache.hadoop.hbase.spark.datasources.SerializedFilter"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/datasources\/TableResource.html", "name" : "org.apache.hadoop.hbase.spark.datasources.TableResource"}], "org.apache.hadoop.hbase.spark.example" : [], "org.apache.hadoop.hbase.spark" : [{"class" : "org\/apache\/hadoop\/hbase\/spark\/AndLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.AndLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/AvroException.html", "name" : "org.apa
 che.hadoop.hbase.spark.AvroException"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/AvroSerdes$.html", "name" : "org.apache.hadoop.hbase.spark.AvroSerdes"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/BulkLoadPartitioner.html", "name" : "org.apache.hadoop.hbase.spark.BulkLoadPartitioner"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ByteArrayComparable.html", "name" : "org.apache.hadoop.hbase.spark.ByteArrayComparable"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ByteArrayWrapper.html", "name" : "org.apache.hadoop.hbase.spark.ByteArrayWrapper"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ColumnFamilyQualifierMapKeyWrapper.html", "name" : "org.apache.hadoop.hbase.spark.ColumnFamilyQualifierMapKeyWrapper"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ColumnFilter.html", "name" : "org.apache.hadoop.hbase.spark.ColumnFilter"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ColumnFilterCollection.html", "name" : "org.apache.hadoop.hbase.spark.ColumnFilterCollection"}
 , {"trait" : "org\/apache\/hadoop\/hbase\/spark\/CompareTrait.html", "name" : "org.apache.hadoop.hbase.spark.CompareTrait"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/DefaultSource.html", "name" : "org.apache.hadoop.hbase.spark.DefaultSource"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/DefaultSourceStaticUtils$.html", "name" : "org.apache.hadoop.hbase.spark.DefaultSourceStaticUtils"}, {"trait" : "org\/apache\/hadoop\/hbase\/spark\/DynamicLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.DynamicLogicExpression"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/DynamicLogicExpressionBuilder$.html", "name" : "org.apache.hadoop.hbase.spark.DynamicLogicExpressionBuilder"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/EqualLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.EqualLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ExecutionRuleForUnitTesting.html", "name" : "org.apache.hadoop.hbase.spark.ExecutionRuleForUnitTesting"}, {"cl
 ass" : "org\/apache\/hadoop\/hbase\/spark\/FamiliesQualifiersValues.html", "name" : "org.apache.hadoop.hbase.spark.FamiliesQualifiersValues"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/FamilyHFileWriteOptions.html", "name" : "org.apache.hadoop.hbase.spark.FamilyHFileWriteOptions"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/GreaterThanLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.GreaterThanLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/GreaterThanOrEqualLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.GreaterThanOrEqualLogicExpression"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/HBaseConnectionCacheStat.html", "name" : "org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/HBaseConnectionKey.html", "name" : "org.apache.hadoop.hbase.spark.HBaseConnectionKey"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/HBaseContext.html", "name" : "org.apache.hadoop.hbase.spark
 .HBaseContext"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/HBaseDStreamFunctions$.html", "name" : "org.apache.hadoop.hbase.spark.HBaseDStreamFunctions"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/HBaseRDDFunctions$.html", "name" : "org.apache.hadoop.hbase.spark.HBaseRDDFunctions"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/HBaseRelation.html", "name" : "org.apache.hadoop.hbase.spark.HBaseRelation"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/IsNullLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.IsNullLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/JavaHBaseContext.html", "name" : "org.apache.hadoop.hbase.spark.JavaHBaseContext"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/KeyFamilyQualifier.html", "name" : "org.apache.hadoop.hbase.spark.KeyFamilyQualifier"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/LatestHBaseContextCache$.html", "name" : "org.apache.hadoop.hbase.spark.LatestHBaseContextCache"}, {"class" : "org\/a
 pache\/hadoop\/hbase\/spark\/LessThanLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.LessThanLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/LessThanOrEqualLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.LessThanOrEqualLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/NewHBaseRDD.html", "name" : "org.apache.hadoop.hbase.spark.NewHBaseRDD"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/OrLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.OrLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/PassThroughLogicExpression.html", "name" : "org.apache.hadoop.hbase.spark.PassThroughLogicExpression"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/RowKeyFilter.html", "name" : "org.apache.hadoop.hbase.spark.RowKeyFilter"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/ScanRange.html", "name" : "org.apache.hadoop.hbase.spark.ScanRange"}, {"case class" : "org\/apache\/hadoop\/hbase\/spark\/SchemaConversi
 onException.html", "name" : "org.apache.hadoop.hbase.spark.SchemaConversionException"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/SchemaConverters$.html", "name" : "org.apache.hadoop.hbase.spark.SchemaConverters"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/SparkSQLPushDownFilter.html", "name" : "org.apache.hadoop.hbase.spark.SparkSQLPushDownFilter"}], "org.apache.hadoop.hbase.spark.example.datasources" : [{"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/AvroHBaseRecord$.html", "case class" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/AvroHBaseRecord.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.AvroHBaseRecord"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/AvroSource$.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.AvroSource"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/DataType$.html", "name" : "org.apache.hadoop.hbase.spark.example.datasource
 s.DataType"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/HBaseRecord$.html", "case class" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/HBaseRecord.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.HBaseRecord"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/HBaseSource$.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.HBaseSource"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/IntKeyRecord$.html", "case class" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/IntKeyRecord.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.IntKeyRecord"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/UserCustomizedSampleException$.html", "class" : "org\/apache\/hadoop\/hbase\/spark\/example\/datasources\/UserCustomizedSampleException.html", "name" : "org.apache.hadoop.hbase.spark.example.datasources.UserCustomizedSampleExceptio
 n"}], "org.apache.hadoop" : [], "org.apache.spark" : [], "org.apache" : [], "org.apache.spark.sql.datasources.hbase" : [{"object" : "org\/apache\/spark\/sql\/datasources\/hbase\/DataTypeParserWrapper$.html", "name" : "org.apache.spark.sql.datasources.hbase.DataTypeParserWrapper"}, {"case class" : "org\/apache\/spark\/sql\/datasources\/hbase\/Field.html", "name" : "org.apache.spark.sql.datasources.hbase.Field"}, {"object" : "org\/apache\/spark\/sql\/datasources\/hbase\/HBaseTableCatalog$.html", "case class" : "org\/apache\/spark\/sql\/datasources\/hbase\/HBaseTableCatalog.html", "name" : "org.apache.spark.sql.datasources.hbase.HBaseTableCatalog"}, {"case class" : "org\/apache\/spark\/sql\/datasources\/hbase\/RowKey.html", "name" : "org.apache.spark.sql.datasources.hbase.RowKey"}, {"case class" : "org\/apache\/spark\/sql\/datasources\/hbase\/SchemaMap.html", "name" : "org.apache.spark.sql.datasources.hbase.SchemaMap"}, {"case class" : "org\/apache\/spark\/sql\/datasources\/hbase\/Sche
 maQualifierDefinition.html", "name" : "org.apache.spark.sql.datasources.hbase.SchemaQualifierDefinition"}, {"object" : "org\/apache\/spark\/sql\/datasources\/hbase\/Utils$.html", "name" : "org.apache.spark.sql.datasources.hbase.Utils"}], "org.apache.spark.sql.datasources" : [], "org.apache.hadoop.hbase.spark.example.hbasecontext" : [{"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseBulkDeleteExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseBulkDeleteExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseBulkGetExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseBulkGetExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseBulkPutExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseBulkPutExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseBulkPutExampleFromFile$.html", 
 "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseBulkPutExampleFromFile"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseBulkPutTimestampExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseBulkPutTimestampExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseDistributedScanExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseDistributedScanExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/HBaseStreamingBulkPutExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.HBaseStreamingBulkPutExample"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/JavaHBaseBulkDeleteExample.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseBulkDeleteExample"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/JavaHBaseBulkGetExample.html", "name" :
  "org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseBulkGetExample"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/JavaHBaseBulkPutExample.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseBulkPutExample"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/JavaHBaseDistributedScan.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseDistributedScan"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/JavaHBaseMapGetPutExample.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseMapGetPutExample"}, {"class" : "org\/apache\/hadoop\/hbase\/spark\/example\/hbasecontext\/JavaHBaseStreamingBulkPutExample.html", "name" : "org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseStreamingBulkPutExample"}], "org.apache.hadoop.hbase.spark.example.rdd" : [{"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/rdd\/HBaseBulkDeleteExample$.htm
 l", "name" : "org.apache.hadoop.hbase.spark.example.rdd.HBaseBulkDeleteExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/rdd\/HBaseBulkGetExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.rdd.HBaseBulkGetExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/rdd\/HBaseBulkPutExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.rdd.HBaseBulkPutExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/rdd\/HBaseForeachPartitionExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.rdd.HBaseForeachPartitionExample"}, {"object" : "org\/apache\/hadoop\/hbase\/spark\/example\/rdd\/HBaseMapPartitionExample$.html", "name" : "org.apache.hadoop.hbase.spark.example.rdd.HBaseMapPartitionExample"}], "org.apache.hadoop.hbase" : [], "org.apache.spark.sql" : [], "org" : [], "org.apache.hadoop.hbase.spark.protobuf" : [], "org.apache.hadoop.hbase.spark.protobuf.generated" : [{"class" : "org\/apache\/hadoop\/hbase\/spark\/proto
 buf\/generated\/SparkFilterProtos.html", "name" : "org.apache.hadoop.hbase.spark.protobuf.generated.SparkFilterProtos"}]};
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/scaladocs/index/index-h.html
----------------------------------------------------------------------
diff --git a/hbase-spark/scaladocs/index/index-h.html b/hbase-spark/scaladocs/index/index-h.html
index 4d0788d..da2e536 100644
--- a/hbase-spark/scaladocs/index/index-h.html
+++ b/hbase-spark/scaladocs/index/index-h.html
@@ -30,6 +30,9 @@
       <div class="name">HBaseBulkPutTimestampExample</div>
       <div class="occurrences"><a href="../org/apache/hadoop/hbase/spark/example/hbasecontext/package.html" class="extype" name="org.apache.hadoop.hbase.spark.example.hbasecontext">hbasecontext</a> </div>
     </div><div class="entry">
+      <div class="name">HBaseConnectionCacheStat</div>
+      <div class="occurrences"><a href="../org/apache/hadoop/hbase/spark/package.html" class="extype" name="org.apache.hadoop.hbase.spark">spark</a> </div>
+    </div><div class="entry">
       <div class="name">HBaseConnectionKey</div>
       <div class="occurrences"><a href="../org/apache/hadoop/hbase/spark/package.html" class="extype" name="org.apache.hadoop.hbase.spark">spark</a> </div>
     </div><div class="entry">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/scaladocs/index/index-n.html
----------------------------------------------------------------------
diff --git a/hbase-spark/scaladocs/index/index-n.html b/hbase-spark/scaladocs/index/index-n.html
index f4f7765..57a13d2 100644
--- a/hbase-spark/scaladocs/index/index-n.html
+++ b/hbase-spark/scaladocs/index/index-n.html
@@ -36,7 +36,16 @@
       <div class="name">nullable</div>
       <div class="occurrences"><a href="../org/apache/hadoop/hbase/spark/SchemaConverters$$SchemaType.html" class="extype" name="org.apache.hadoop.hbase.spark.SchemaConverters.SchemaType">SchemaType</a> </div>
     </div><div class="entry">
+      <div class="name">numActiveConnections</div>
+      <div class="occurrences"><a href="../org/apache/hadoop/hbase/spark/HBaseConnectionCacheStat.html" class="extype" name="org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat">HBaseConnectionCacheStat</a> </div>
+    </div><div class="entry">
+      <div class="name">numActualConnectionsCreated</div>
+      <div class="occurrences"><a href="../org/apache/hadoop/hbase/spark/HBaseConnectionCacheStat.html" class="extype" name="org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat">HBaseConnectionCacheStat</a> </div>
+    </div><div class="entry">
       <div class="name">numPartitions</div>
       <div class="occurrences"><a href="../org/apache/hadoop/hbase/spark/BulkLoadPartitioner.html" class="extype" name="org.apache.hadoop.hbase.spark.BulkLoadPartitioner">BulkLoadPartitioner</a> </div>
+    </div><div class="entry">
+      <div class="name">numTotalRequests</div>
+      <div class="occurrences"><a href="../org/apache/hadoop/hbase/spark/HBaseConnectionCacheStat.html" class="extype" name="org.apache.hadoop.hbase.spark.HBaseConnectionCacheStat">HBaseConnectionCacheStat</a> </div>
     </div></body>
       </html>
\ No newline at end of file


[04/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html b/xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
index bd34b19..cae8355 100644
--- a/xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
+++ b/xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
@@ -372,12 +372,12 @@
 <a class="jxr_linenumber" name="362" href="#362">362</a> <em class="jxr_javadoccomment">   * @param regionLocator region locator</em>
 <a class="jxr_linenumber" name="363" href="#363">363</a> <em class="jxr_javadoccomment">   * @param silence true to ignore unmatched column families</em>
 <a class="jxr_linenumber" name="364" href="#364">364</a> <em class="jxr_javadoccomment">   * @param copyFile always copy hfiles if true</em>
-<a class="jxr_linenumber" name="365" href="#365">365</a> <em class="jxr_javadoccomment">   * @return List of filenames which were not found</em>
+<a class="jxr_linenumber" name="365" href="#365">365</a> <em class="jxr_javadoccomment">   * @return Map of LoadQueueItem to region</em>
 <a class="jxr_linenumber" name="366" href="#366">366</a> <em class="jxr_javadoccomment">   * @throws TableNotFoundException if table does not yet exist</em>
 <a class="jxr_linenumber" name="367" href="#367">367</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="368" href="#368">368</a>   <strong class="jxr_keyword">public</strong> List&lt;String&gt; doBulkLoad(Map&lt;byte[], List&lt;Path&gt;&gt; map, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html">Admin</a> admin, <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table,
-<a class="jxr_linenumber" name="369" href="#369">369</a>           <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html">RegionLocator</a> regionLocator, <strong class="jxr_keyword">boolean</strong> silence, <strong class="jxr_keyword">boolean</strong> copyFile)
-<a class="jxr_linenumber" name="370" href="#370">370</a>               <strong class="jxr_keyword">throws</strong> TableNotFoundException, IOException {
+<a class="jxr_linenumber" name="368" href="#368">368</a>   <strong class="jxr_keyword">public</strong> Map&lt;LoadQueueItem, ByteBuffer&gt; doBulkLoad(Map&lt;byte[], List&lt;Path&gt;&gt; map, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html">Admin</a> admin,
+<a class="jxr_linenumber" name="369" href="#369">369</a>       <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html">RegionLocator</a> regionLocator, <strong class="jxr_keyword">boolean</strong> silence, <strong class="jxr_keyword">boolean</strong> copyFile)
+<a class="jxr_linenumber" name="370" href="#370">370</a>           <strong class="jxr_keyword">throws</strong> TableNotFoundException, IOException {
 <a class="jxr_linenumber" name="371" href="#371">371</a>     <strong class="jxr_keyword">if</strong> (!admin.isTableAvailable(regionLocator.getName())) {
 <a class="jxr_linenumber" name="372" href="#372">372</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html">TableNotFoundException</a>(<span class="jxr_string">"Table "</span> + table.getName() + <span class="jxr_string">" is not currently available."</span>);
 <a class="jxr_linenumber" name="373" href="#373">373</a>     }
@@ -459,8 +459,8 @@
 <a class="jxr_linenumber" name="449" href="#449">449</a>     }
 <a class="jxr_linenumber" name="450" href="#450">450</a>   }
 <a class="jxr_linenumber" name="451" href="#451">451</a>
-<a class="jxr_linenumber" name="452" href="#452">452</a>   List&lt;String&gt; performBulkLoad(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html">Admin</a> admin, <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html">RegionLocator</a> regionLocator,
-<a class="jxr_linenumber" name="453" href="#453">453</a>       Deque&lt;LoadQueueItem&gt; queue, ExecutorService pool,
+<a class="jxr_linenumber" name="452" href="#452">452</a>   Map&lt;LoadQueueItem, ByteBuffer&gt; performBulkLoad(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html">Admin</a> admin, <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table,
+<a class="jxr_linenumber" name="453" href="#453">453</a>       <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html">RegionLocator</a> regionLocator, Deque&lt;LoadQueueItem&gt; queue, ExecutorService pool,
 <a class="jxr_linenumber" name="454" href="#454">454</a>       <a href="../../../../../org/apache/hadoop/hbase/client/SecureBulkLoadClient.html">SecureBulkLoadClient</a> secureClient, <strong class="jxr_keyword">boolean</strong> copyFile) <strong class="jxr_keyword">throws</strong> IOException {
 <a class="jxr_linenumber" name="455" href="#455">455</a>     <strong class="jxr_keyword">int</strong> count = 0;
 <a class="jxr_linenumber" name="456" href="#456">456</a>
@@ -474,802 +474,815 @@
 <a class="jxr_linenumber" name="464" href="#464">464</a>     <em class="jxr_comment">// fs is the source filesystem</em>
 <a class="jxr_linenumber" name="465" href="#465">465</a>     fsDelegationToken.acquireDelegationToken(fs);
 <a class="jxr_linenumber" name="466" href="#466">466</a>     bulkToken = secureClient.prepareBulkLoad(admin.getConnection());
-<a class="jxr_linenumber" name="467" href="#467">467</a>     Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; pair = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="467" href="#467">467</a>     Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; pair = <strong class="jxr_keyword">null</strong>;
 <a class="jxr_linenumber" name="468" href="#468">468</a>
-<a class="jxr_linenumber" name="469" href="#469">469</a>     <em class="jxr_comment">// Assumes that region splits can happen while this occurs.</em>
-<a class="jxr_linenumber" name="470" href="#470">470</a>     <strong class="jxr_keyword">while</strong> (!queue.isEmpty()) {
-<a class="jxr_linenumber" name="471" href="#471">471</a>       <em class="jxr_comment">// need to reload split keys each iteration.</em>
-<a class="jxr_linenumber" name="472" href="#472">472</a>       <strong class="jxr_keyword">final</strong> Pair&lt;byte[][], byte[][]&gt; startEndKeys = regionLocator.getStartEndKeys();
-<a class="jxr_linenumber" name="473" href="#473">473</a>       <strong class="jxr_keyword">if</strong> (count != 0) {
-<a class="jxr_linenumber" name="474" href="#474">474</a>         LOG.info(<span class="jxr_string">"Split occured while grouping HFiles, retry attempt "</span> +
-<a class="jxr_linenumber" name="475" href="#475">475</a>             + count + <span class="jxr_string">" with "</span> + queue.size() + <span class="jxr_string">" files remaining to group or split"</span>);
-<a class="jxr_linenumber" name="476" href="#476">476</a>       }
-<a class="jxr_linenumber" name="477" href="#477">477</a>
-<a class="jxr_linenumber" name="478" href="#478">478</a>       <strong class="jxr_keyword">int</strong> maxRetries = getConf().getInt(HConstants.BULKLOAD_MAX_RETRIES_NUMBER, 10);
-<a class="jxr_linenumber" name="479" href="#479">479</a>       maxRetries = Math.max(maxRetries, startEndKeys.getFirst().length + 1);
-<a class="jxr_linenumber" name="480" href="#480">480</a>       <strong class="jxr_keyword">if</strong> (maxRetries != 0 &amp;&amp; count &gt;= maxRetries) {
-<a class="jxr_linenumber" name="481" href="#481">481</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Retry attempted "</span> + count +
-<a class="jxr_linenumber" name="482" href="#482">482</a>             <span class="jxr_string">" times without completing, bailing out"</span>);
-<a class="jxr_linenumber" name="483" href="#483">483</a>       }
-<a class="jxr_linenumber" name="484" href="#484">484</a>       count++;
-<a class="jxr_linenumber" name="485" href="#485">485</a>
-<a class="jxr_linenumber" name="486" href="#486">486</a>       <em class="jxr_comment">// Using ByteBuffer for byte[] equality semantics</em>
-<a class="jxr_linenumber" name="487" href="#487">487</a>       pair = groupOrSplitPhase(table, pool, queue, startEndKeys);
-<a class="jxr_linenumber" name="488" href="#488">488</a>       Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = pair.getFirst();
-<a class="jxr_linenumber" name="489" href="#489">489</a>
-<a class="jxr_linenumber" name="490" href="#490">490</a>       <strong class="jxr_keyword">if</strong> (!checkHFilesCountPerRegionPerFamily(regionGroups)) {
-<a class="jxr_linenumber" name="491" href="#491">491</a>         <em class="jxr_comment">// Error is logged inside checkHFilesCountPerRegionPerFamily.</em>
-<a class="jxr_linenumber" name="492" href="#492">492</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Trying to load more than "</span> + maxFilesPerRegionPerFamily
-<a class="jxr_linenumber" name="493" href="#493">493</a>             + <span class="jxr_string">" hfiles to one family of one region"</span>);
-<a class="jxr_linenumber" name="494" href="#494">494</a>       }
-<a class="jxr_linenumber" name="495" href="#495">495</a>
-<a class="jxr_linenumber" name="496" href="#496">496</a>       bulkLoadPhase(table, admin.getConnection(), pool, queue, regionGroups, copyFile);
-<a class="jxr_linenumber" name="497" href="#497">497</a>
-<a class="jxr_linenumber" name="498" href="#498">498</a>       <em class="jxr_comment">// NOTE: The next iteration's split / group could happen in parallel to</em>
-<a class="jxr_linenumber" name="499" href="#499">499</a>       <em class="jxr_comment">// atomic bulkloads assuming that there are splits and no merges, and</em>
-<a class="jxr_linenumber" name="500" href="#500">500</a>       <em class="jxr_comment">// that we can atomically pull out the groups we want to retry.</em>
-<a class="jxr_linenumber" name="501" href="#501">501</a>     }
-<a class="jxr_linenumber" name="502" href="#502">502</a>
-<a class="jxr_linenumber" name="503" href="#503">503</a>     <strong class="jxr_keyword">if</strong> (!queue.isEmpty()) {
-<a class="jxr_linenumber" name="504" href="#504">504</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"Bulk load aborted with some files not yet loaded."</span>
-<a class="jxr_linenumber" name="505" href="#505">505</a>         + <span class="jxr_string">"Please check log for more details."</span>);
-<a class="jxr_linenumber" name="506" href="#506">506</a>     }
-<a class="jxr_linenumber" name="507" href="#507">507</a>     <strong class="jxr_keyword">if</strong> (pair == <strong class="jxr_keyword">null</strong>) <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="508" href="#508">508</a>     <strong class="jxr_keyword">return</strong> pair.getSecond();
-<a class="jxr_linenumber" name="509" href="#509">509</a>   }
-<a class="jxr_linenumber" name="510" href="#510">510</a>
-<a class="jxr_linenumber" name="511" href="#511">511</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="512" href="#512">512</a> <em class="jxr_javadoccomment">   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the</em>
-<a class="jxr_linenumber" name="513" href="#513">513</a> <em class="jxr_javadoccomment">   * passed directory and validates whether the prepared queue has all the valid table column</em>
-<a class="jxr_linenumber" name="514" href="#514">514</a> <em class="jxr_javadoccomment">   * families in it.</em>
-<a class="jxr_linenumber" name="515" href="#515">515</a> <em class="jxr_javadoccomment">   * @param hfilesDir directory containing list of hfiles to be loaded into the table</em>
-<a class="jxr_linenumber" name="516" href="#516">516</a> <em class="jxr_javadoccomment">   * @param table table to which hfiles should be loaded</em>
-<a class="jxr_linenumber" name="517" href="#517">517</a> <em class="jxr_javadoccomment">   * @param queue queue which needs to be loaded into the table</em>
-<a class="jxr_linenumber" name="518" href="#518">518</a> <em class="jxr_javadoccomment">   * @param validateHFile if true hfiles will be validated for its format</em>
-<a class="jxr_linenumber" name="519" href="#519">519</a> <em class="jxr_javadoccomment">   * @throws IOException If any I/O or network error occurred</em>
-<a class="jxr_linenumber" name="520" href="#520">520</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="521" href="#521">521</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> prepareHFileQueue(Path hfilesDir, <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, Deque&lt;LoadQueueItem&gt; queue,
-<a class="jxr_linenumber" name="522" href="#522">522</a>       <strong class="jxr_keyword">boolean</strong> validateHFile) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="523" href="#523">523</a>     prepareHFileQueue(hfilesDir, table, queue, validateHFile, false);
-<a class="jxr_linenumber" name="524" href="#524">524</a>   }
-<a class="jxr_linenumber" name="525" href="#525">525</a>
-<a class="jxr_linenumber" name="526" href="#526">526</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="527" href="#527">527</a> <em class="jxr_javadoccomment">   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the</em>
-<a class="jxr_linenumber" name="528" href="#528">528</a> <em class="jxr_javadoccomment">   * passed directory and validates whether the prepared queue has all the valid table column</em>
-<a class="jxr_linenumber" name="529" href="#529">529</a> <em class="jxr_javadoccomment">   * families in it.</em>
-<a class="jxr_linenumber" name="530" href="#530">530</a> <em class="jxr_javadoccomment">   * @param hfilesDir directory containing list of hfiles to be loaded into the table</em>
-<a class="jxr_linenumber" name="531" href="#531">531</a> <em class="jxr_javadoccomment">   * @param table table to which hfiles should be loaded</em>
-<a class="jxr_linenumber" name="532" href="#532">532</a> <em class="jxr_javadoccomment">   * @param queue queue which needs to be loaded into the table</em>
-<a class="jxr_linenumber" name="533" href="#533">533</a> <em class="jxr_javadoccomment">   * @param validateHFile if true hfiles will be validated for its format</em>
-<a class="jxr_linenumber" name="534" href="#534">534</a> <em class="jxr_javadoccomment">   * @param silence  true to ignore unmatched column families</em>
-<a class="jxr_linenumber" name="535" href="#535">535</a> <em class="jxr_javadoccomment">   * @throws IOException If any I/O or network error occurred</em>
-<a class="jxr_linenumber" name="536" href="#536">536</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="537" href="#537">537</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> prepareHFileQueue(Path hfilesDir, <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table,
-<a class="jxr_linenumber" name="538" href="#538">538</a>       Deque&lt;LoadQueueItem&gt; queue, <strong class="jxr_keyword">boolean</strong> validateHFile, <strong class="jxr_keyword">boolean</strong> silence) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="539" href="#539">539</a>     discoverLoadQueue(queue, hfilesDir, validateHFile);
-<a class="jxr_linenumber" name="540" href="#540">540</a>     validateFamiliesInHFiles(table, queue, silence);
-<a class="jxr_linenumber" name="541" href="#541">541</a>   }
-<a class="jxr_linenumber" name="542" href="#542">542</a>
-<a class="jxr_linenumber" name="543" href="#543">543</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="544" href="#544">544</a> <em class="jxr_javadoccomment">   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the</em>
-<a class="jxr_linenumber" name="545" href="#545">545</a> <em class="jxr_javadoccomment">   * passed directory and validates whether the prepared queue has all the valid table column</em>
-<a class="jxr_linenumber" name="546" href="#546">546</a> <em class="jxr_javadoccomment">   * families in it.</em>
-<a class="jxr_linenumber" name="547" href="#547">547</a> <em class="jxr_javadoccomment">   * @param map map of family to List of hfiles</em>
-<a class="jxr_linenumber" name="548" href="#548">548</a> <em class="jxr_javadoccomment">   * @param table table to which hfiles should be loaded</em>
-<a class="jxr_linenumber" name="549" href="#549">549</a> <em class="jxr_javadoccomment">   * @param queue queue which needs to be loaded into the table</em>
-<a class="jxr_linenumber" name="550" href="#550">550</a> <em class="jxr_javadoccomment">   * @param silence  true to ignore unmatched column families</em>
-<a class="jxr_linenumber" name="551" href="#551">551</a> <em class="jxr_javadoccomment">   * @throws IOException If any I/O or network error occurred</em>
-<a class="jxr_linenumber" name="552" href="#552">552</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="553" href="#553">553</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> prepareHFileQueue(Map&lt;byte[], List&lt;Path&gt;&gt; map, <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table,
-<a class="jxr_linenumber" name="554" href="#554">554</a>       Deque&lt;LoadQueueItem&gt; queue, <strong class="jxr_keyword">boolean</strong> silence) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="555" href="#555">555</a>     populateLoadQueue(queue, map);
-<a class="jxr_linenumber" name="556" href="#556">556</a>     validateFamiliesInHFiles(table, queue, silence);
-<a class="jxr_linenumber" name="557" href="#557">557</a>   }
-<a class="jxr_linenumber" name="558" href="#558">558</a>
-<a class="jxr_linenumber" name="559" href="#559">559</a>   <em class="jxr_comment">// Initialize a thread pool</em>
-<a class="jxr_linenumber" name="560" href="#560">560</a>   <strong class="jxr_keyword">private</strong> ExecutorService createExecutorService() {
-<a class="jxr_linenumber" name="561" href="#561">561</a>     ThreadFactoryBuilder builder = <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder();
-<a class="jxr_linenumber" name="562" href="#562">562</a>     builder.setNameFormat(<span class="jxr_string">"LoadIncrementalHFiles-%1$d"</span>);
-<a class="jxr_linenumber" name="563" href="#563">563</a>     ExecutorService pool = <strong class="jxr_keyword">new</strong> ThreadPoolExecutor(nrThreads, nrThreads, 60, TimeUnit.SECONDS,
-<a class="jxr_linenumber" name="564" href="#564">564</a>         <strong class="jxr_keyword">new</strong> LinkedBlockingQueue&lt;Runnable&gt;(), builder.build());
-<a class="jxr_linenumber" name="565" href="#565">565</a>     ((ThreadPoolExecutor) pool).allowCoreThreadTimeOut(<strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="566" href="#566">566</a>     <strong class="jxr_keyword">return</strong> pool;
-<a class="jxr_linenumber" name="567" href="#567">567</a>   }
-<a class="jxr_linenumber" name="568" href="#568">568</a>
-<a class="jxr_linenumber" name="569" href="#569">569</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="570" href="#570">570</a> <em class="jxr_javadoccomment">   * Checks whether there is any invalid family name in HFiles to be bulk loaded.</em>
-<a class="jxr_linenumber" name="571" href="#571">571</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="572" href="#572">572</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> validateFamiliesInHFiles(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, Deque&lt;LoadQueueItem&gt; queue, <strong class="jxr_keyword">boolean</strong> silence)
-<a class="jxr_linenumber" name="573" href="#573">573</a>       <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="574" href="#574">574</a>     Collection&lt;HColumnDescriptor&gt; families = table.getTableDescriptor().getFamilies();
-<a class="jxr_linenumber" name="575" href="#575">575</a>     List&lt;String&gt; familyNames = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(families.size());
-<a class="jxr_linenumber" name="576" href="#576">576</a>     <strong class="jxr_keyword">for</strong> (HColumnDescriptor family : families) {
-<a class="jxr_linenumber" name="577" href="#577">577</a>       familyNames.add(family.getNameAsString());
-<a class="jxr_linenumber" name="578" href="#578">578</a>     }
-<a class="jxr_linenumber" name="579" href="#579">579</a>     Iterator&lt;LoadQueueItem&gt; queueIter = queue.iterator();
-<a class="jxr_linenumber" name="580" href="#580">580</a>     <strong class="jxr_keyword">while</strong> (queueIter.hasNext()) {
-<a class="jxr_linenumber" name="581" href="#581">581</a>       <a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html">LoadQueueItem</a> lqi = queueIter.next();
-<a class="jxr_linenumber" name="582" href="#582">582</a>       String familyNameInHFile = Bytes.toString(lqi.family);
-<a class="jxr_linenumber" name="583" href="#583">583</a>       <strong class="jxr_keyword">if</strong> (!familyNames.contains(familyNameInHFile)) {
-<a class="jxr_linenumber" name="584" href="#584">584</a>         unmatchedFamilies.add(familyNameInHFile);
-<a class="jxr_linenumber" name="585" href="#585">585</a>       }
-<a class="jxr_linenumber" name="586" href="#586">586</a>     }
-<a class="jxr_linenumber" name="587" href="#587">587</a>     <strong class="jxr_keyword">if</strong> (unmatchedFamilies.size() &gt; 0) {
-<a class="jxr_linenumber" name="588" href="#588">588</a>       String msg =
-<a class="jxr_linenumber" name="589" href="#589">589</a>           <span class="jxr_string">"Unmatched family names found: unmatched family names in HFiles to be bulkloaded: "</span>
-<a class="jxr_linenumber" name="590" href="#590">590</a>               + unmatchedFamilies + <span class="jxr_string">"; valid family names of table "</span> + table.getName() + <span class="jxr_string">" are: "</span>
-<a class="jxr_linenumber" name="591" href="#591">591</a>               + familyNames;
-<a class="jxr_linenumber" name="592" href="#592">592</a>       LOG.error(msg);
-<a class="jxr_linenumber" name="593" href="#593">593</a>       <strong class="jxr_keyword">if</strong> (!silence) <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(msg);
-<a class="jxr_linenumber" name="594" href="#594">594</a>     }
-<a class="jxr_linenumber" name="595" href="#595">595</a>   }
-<a class="jxr_linenumber" name="596" href="#596">596</a>
-<a class="jxr_linenumber" name="597" href="#597">597</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="598" href="#598">598</a> <em class="jxr_javadoccomment">   * Used by the replication sink to load the hfiles from the source cluster. It does the following,</em>
-<a class="jxr_linenumber" name="599" href="#599">599</a> <em class="jxr_javadoccomment">   * &lt;ol&gt;</em>
-<a class="jxr_linenumber" name="600" href="#600">600</a> <em class="jxr_javadoccomment">   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;</em>
-<a class="jxr_linenumber" name="601" href="#601">601</a> <em class="jxr_javadoccomment">   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)</em>
-<a class="jxr_linenumber" name="602" href="#602">602</a> <em class="jxr_javadoccomment">   * &lt;/li&gt;</em>
-<a class="jxr_linenumber" name="603" href="#603">603</a> <em class="jxr_javadoccomment">   * &lt;/ol&gt;</em>
-<a class="jxr_linenumber" name="604" href="#604">604</a> <em class="jxr_javadoccomment">   * @param table Table to which these hfiles should be loaded to</em>
-<a class="jxr_linenumber" name="605" href="#605">605</a> <em class="jxr_javadoccomment">   * @param conn Connection to use</em>
-<a class="jxr_linenumber" name="606" href="#606">606</a> <em class="jxr_javadoccomment">   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded</em>
-<a class="jxr_linenumber" name="607" href="#607">607</a> <em class="jxr_javadoccomment">   * @param startEndKeys starting and ending row keys of the region</em>
-<a class="jxr_linenumber" name="608" href="#608">608</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="609" href="#609">609</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> loadHFileQueue(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html">Connection</a> conn, Deque&lt;LoadQueueItem&gt; queue,
-<a class="jxr_linenumber" name="610" href="#610">610</a>       Pair&lt;byte[][], byte[][]&gt; startEndKeys) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="611" href="#611">611</a>     loadHFileQueue(table, conn, queue, startEndKeys, false);
-<a class="jxr_linenumber" name="612" href="#612">612</a>   }
-<a class="jxr_linenumber" name="613" href="#613">613</a>
-<a class="jxr_linenumber" name="614" href="#614">614</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="615" href="#615">615</a> <em class="jxr_javadoccomment">   * Used by the replication sink to load the hfiles from the source cluster. It does the following,</em>
-<a class="jxr_linenumber" name="616" href="#616">616</a> <em class="jxr_javadoccomment">   * &lt;ol&gt;</em>
-<a class="jxr_linenumber" name="617" href="#617">617</a> <em class="jxr_javadoccomment">   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;</em>
-<a class="jxr_linenumber" name="618" href="#618">618</a> <em class="jxr_javadoccomment">   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)</em>
-<a class="jxr_linenumber" name="619" href="#619">619</a> <em class="jxr_javadoccomment">   * &lt;/li&gt;</em>
-<a class="jxr_linenumber" name="620" href="#620">620</a> <em class="jxr_javadoccomment">   * &lt;/ol&gt;</em>
-<a class="jxr_linenumber" name="621" href="#621">621</a> <em class="jxr_javadoccomment">   * @param table Table to which these hfiles should be loaded to</em>
-<a class="jxr_linenumber" name="622" href="#622">622</a> <em class="jxr_javadoccomment">   * @param conn Connection to use</em>
-<a class="jxr_linenumber" name="623" href="#623">623</a> <em class="jxr_javadoccomment">   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded</em>
-<a class="jxr_linenumber" name="624" href="#624">624</a> <em class="jxr_javadoccomment">   * @param startEndKeys starting and ending row keys of the region</em>
-<a class="jxr_linenumber" name="625" href="#625">625</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="626" href="#626">626</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> loadHFileQueue(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html">Connection</a> conn, Deque&lt;LoadQueueItem&gt; queue,
-<a class="jxr_linenumber" name="627" href="#627">627</a>       Pair&lt;byte[][], byte[][]&gt; startEndKeys, <strong class="jxr_keyword">boolean</strong> copyFile) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="628" href="#628">628</a>     ExecutorService pool = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="629" href="#629">629</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="630" href="#630">630</a>       pool = createExecutorService();
-<a class="jxr_linenumber" name="631" href="#631">631</a>       Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups =
-<a class="jxr_linenumber" name="632" href="#632">632</a>           groupOrSplitPhase(table, pool, queue, startEndKeys).getFirst();
-<a class="jxr_linenumber" name="633" href="#633">633</a>       bulkLoadPhase(table, conn, pool, queue, regionGroups, copyFile);
-<a class="jxr_linenumber" name="634" href="#634">634</a>     } <strong class="jxr_keyword">finally</strong> {
-<a class="jxr_linenumber" name="635" href="#635">635</a>       <strong class="jxr_keyword">if</strong> (pool != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="636" href="#636">636</a>         pool.shutdown();
-<a class="jxr_linenumber" name="637" href="#637">637</a>       }
-<a class="jxr_linenumber" name="638" href="#638">638</a>     }
-<a class="jxr_linenumber" name="639" href="#639">639</a>   }
-<a class="jxr_linenumber" name="640" href="#640">640</a>
-<a class="jxr_linenumber" name="641" href="#641">641</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="642" href="#642">642</a> <em class="jxr_javadoccomment">   * This takes the LQI's grouped by likely regions and attempts to bulk load</em>
-<a class="jxr_linenumber" name="643" href="#643">643</a> <em class="jxr_javadoccomment">   * them.  Any failures are re-queued for another pass with the</em>
-<a class="jxr_linenumber" name="644" href="#644">644</a> <em class="jxr_javadoccomment">   * groupOrSplitPhase.</em>
-<a class="jxr_linenumber" name="645" href="#645">645</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="646" href="#646">646</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> bulkLoadPhase(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html">Connection</a> conn,
-<a class="jxr_linenumber" name="647" href="#647">647</a>       ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,
-<a class="jxr_linenumber" name="648" href="#648">648</a>       <strong class="jxr_keyword">final</strong> Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, <strong class="jxr_keyword">boolean</strong> copyFile) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="649" href="#649">649</a>     <em class="jxr_comment">// atomically bulk load the groups.</em>
-<a class="jxr_linenumber" name="650" href="#650">650</a>     Set&lt;Future&lt;List&lt;LoadQueueItem&gt;&gt;&gt; loadingFutures = <strong class="jxr_keyword">new</strong> HashSet&lt;&gt;();
-<a class="jxr_linenumber" name="651" href="#651">651</a>     <strong class="jxr_keyword">for</strong> (Entry&lt;ByteBuffer, ? <strong class="jxr_keyword">extends</strong> Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()){
-<a class="jxr_linenumber" name="652" href="#652">652</a>       <strong class="jxr_keyword">final</strong> byte[] first = e.getKey().array();
-<a class="jxr_linenumber" name="653" href="#653">653</a>       <strong class="jxr_keyword">final</strong> Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();
-<a class="jxr_linenumber" name="654" href="#654">654</a>
-<a class="jxr_linenumber" name="655" href="#655">655</a>       <strong class="jxr_keyword">final</strong> Callable&lt;List&lt;LoadQueueItem&gt;&gt; call = <strong class="jxr_keyword">new</strong> Callable&lt;List&lt;LoadQueueItem&gt;&gt;() {
-<a class="jxr_linenumber" name="656" href="#656">656</a>         @Override
-<a class="jxr_linenumber" name="657" href="#657">657</a>         <strong class="jxr_keyword">public</strong> List&lt;LoadQueueItem&gt; call() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="658" href="#658">658</a>           List&lt;LoadQueueItem&gt; toRetry =
-<a class="jxr_linenumber" name="659" href="#659">659</a>               tryAtomicRegionLoad(conn, table.getName(), first, lqis, copyFile);
-<a class="jxr_linenumber" name="660" href="#660">660</a>           <strong class="jxr_keyword">return</strong> toRetry;
-<a class="jxr_linenumber" name="661" href="#661">661</a>         }
-<a class="jxr_linenumber" name="662" href="#662">662</a>       };
-<a class="jxr_linenumber" name="663" href="#663">663</a>       loadingFutures.add(pool.submit(call));
-<a class="jxr_linenumber" name="664" href="#664">664</a>     }
-<a class="jxr_linenumber" name="665" href="#665">665</a>
-<a class="jxr_linenumber" name="666" href="#666">666</a>     <em class="jxr_comment">// get all the results.</em>
-<a class="jxr_linenumber" name="667" href="#667">667</a>     <strong class="jxr_keyword">for</strong> (Future&lt;List&lt;LoadQueueItem&gt;&gt; future : loadingFutures) {
-<a class="jxr_linenumber" name="668" href="#668">668</a>       <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="669" href="#669">669</a>         List&lt;LoadQueueItem&gt; toRetry = future.get();
-<a class="jxr_linenumber" name="670" href="#670">670</a>
-<a class="jxr_linenumber" name="671" href="#671">671</a>         <em class="jxr_comment">// LQIs that are requeued to be regrouped.</em>
-<a class="jxr_linenumber" name="672" href="#672">672</a>         queue.addAll(toRetry);
-<a class="jxr_linenumber" name="673" href="#673">673</a>
-<a class="jxr_linenumber" name="674" href="#674">674</a>       } <strong class="jxr_keyword">catch</strong> (ExecutionException e1) {
-<a class="jxr_linenumber" name="675" href="#675">675</a>         Throwable t = e1.getCause();
-<a class="jxr_linenumber" name="676" href="#676">676</a>         <strong class="jxr_keyword">if</strong> (t instanceof IOException) {
-<a class="jxr_linenumber" name="677" href="#677">677</a>           <em class="jxr_comment">// At this point something unrecoverable has happened.</em>
-<a class="jxr_linenumber" name="678" href="#678">678</a>           <em class="jxr_comment">// TODO Implement bulk load recovery</em>
-<a class="jxr_linenumber" name="679" href="#679">679</a>           <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"BulkLoad encountered an unrecoverable problem"</span>, t);
-<a class="jxr_linenumber" name="680" href="#680">680</a>         }
-<a class="jxr_linenumber" name="681" href="#681">681</a>         LOG.error(<span class="jxr_string">"Unexpected execution exception during bulk load"</span>, e1);
-<a class="jxr_linenumber" name="682" href="#682">682</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(t);
-<a class="jxr_linenumber" name="683" href="#683">683</a>       } <strong class="jxr_keyword">catch</strong> (InterruptedException e1) {
-<a class="jxr_linenumber" name="684" href="#684">684</a>         LOG.error(<span class="jxr_string">"Unexpected interrupted exception during bulk load"</span>, e1);
-<a class="jxr_linenumber" name="685" href="#685">685</a>         <strong class="jxr_keyword">throw</strong> (InterruptedIOException)<strong class="jxr_keyword">new</strong> InterruptedIOException().initCause(e1);
-<a class="jxr_linenumber" name="686" href="#686">686</a>       }
-<a class="jxr_linenumber" name="687" href="#687">687</a>     }
-<a class="jxr_linenumber" name="688" href="#688">688</a>   }
-<a class="jxr_linenumber" name="689" href="#689">689</a>
-<a class="jxr_linenumber" name="690" href="#690">690</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> checkHFilesCountPerRegionPerFamily(
-<a class="jxr_linenumber" name="691" href="#691">691</a>       <strong class="jxr_keyword">final</strong> Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups) {
-<a class="jxr_linenumber" name="692" href="#692">692</a>     <strong class="jxr_keyword">for</strong> (Entry&lt;ByteBuffer,
-<a class="jxr_linenumber" name="693" href="#693">693</a>       ? <strong class="jxr_keyword">extends</strong> Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()) {
-<a class="jxr_linenumber" name="694" href="#694">694</a>       <strong class="jxr_keyword">final</strong> Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();
-<a class="jxr_linenumber" name="695" href="#695">695</a>       HashMap&lt;byte[], MutableInt&gt; filesMap = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
-<a class="jxr_linenumber" name="696" href="#696">696</a>       <strong class="jxr_keyword">for</strong> (LoadQueueItem lqi: lqis) {
-<a class="jxr_linenumber" name="697" href="#697">697</a>         MutableInt count = filesMap.get(lqi.family);
-<a class="jxr_linenumber" name="698" href="#698">698</a>         <strong class="jxr_keyword">if</strong> (count == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="699" href="#699">699</a>           count = <strong class="jxr_keyword">new</strong> MutableInt();
-<a class="jxr_linenumber" name="700" href="#700">700</a>           filesMap.put(lqi.family, count);
-<a class="jxr_linenumber" name="701" href="#701">701</a>         }
-<a class="jxr_linenumber" name="702" href="#702">702</a>         count.increment();
-<a class="jxr_linenumber" name="703" href="#703">703</a>         <strong class="jxr_keyword">if</strong> (count.intValue() &gt; maxFilesPerRegionPerFamily) {
-<a class="jxr_linenumber" name="704" href="#704">704</a>           LOG.error(<span class="jxr_string">"Trying to load more than "</span> + maxFilesPerRegionPerFamily
-<a class="jxr_linenumber" name="705" href="#705">705</a>             + <span class="jxr_string">" hfiles to family "</span> + Bytes.toStringBinary(lqi.family)
-<a class="jxr_linenumber" name="706" href="#706">706</a>             + <span class="jxr_string">" of region with start key "</span>
-<a class="jxr_linenumber" name="707" href="#707">707</a>             + Bytes.toStringBinary(e.getKey()));
-<a class="jxr_linenumber" name="708" href="#708">708</a>           <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="709" href="#709">709</a>         }
-<a class="jxr_linenumber" name="710" href="#710">710</a>       }
-<a class="jxr_linenumber" name="711" href="#711">711</a>     }
-<a class="jxr_linenumber" name="712" href="#712">712</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="713" href="#713">713</a>   }
-<a class="jxr_linenumber" name="714" href="#714">714</a>
-<a class="jxr_linenumber" name="715" href="#715">715</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="716" href="#716">716</a> <em class="jxr_javadoccomment">   * @param table the table to load into</em>
-<a class="jxr_linenumber" name="717" href="#717">717</a> <em class="jxr_javadoccomment">   * @param pool the ExecutorService</em>
-<a class="jxr_linenumber" name="718" href="#718">718</a> <em class="jxr_javadoccomment">   * @param queue the queue for LoadQueueItem</em>
-<a class="jxr_linenumber" name="719" href="#719">719</a> <em class="jxr_javadoccomment">   * @param startEndKeys start and end keys</em>
-<a class="jxr_linenumber" name="720" href="#720">720</a> <em class="jxr_javadoccomment">   * @return A map that groups LQI by likely bulk load region targets and List of missing hfiles.</em>
-<a class="jxr_linenumber" name="721" href="#721">721</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="722" href="#722">722</a>   <strong class="jxr_keyword">private</strong> Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; groupOrSplitPhase(
-<a class="jxr_linenumber" name="723" href="#723">723</a>       <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,
-<a class="jxr_linenumber" name="724" href="#724">724</a>       <strong class="jxr_keyword">final</strong> Pair&lt;byte[][], byte[][]&gt; startEndKeys) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="725" href="#725">725</a>     <em class="jxr_comment">// &lt;region start key, LQI&gt; need synchronized only within this scope of this</em>
-<a class="jxr_linenumber" name="726" href="#726">726</a>     <em class="jxr_comment">// phase because of the puts that happen in futures.</em>
-<a class="jxr_linenumber" name="727" href="#727">727</a>     Multimap&lt;ByteBuffer, LoadQueueItem&gt; rgs = HashMultimap.create();
-<a class="jxr_linenumber" name="728" href="#728">728</a>     <strong class="jxr_keyword">final</strong> Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = Multimaps.synchronizedMultimap(rgs);
-<a class="jxr_linenumber" name="729" href="#729">729</a>     List&lt;String&gt; missingHFiles = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
-<a class="jxr_linenumber" name="730" href="#730">730</a>     Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; pair = <strong class="jxr_keyword">new</strong> Pair&lt;&gt;(regionGroups,
-<a class="jxr_linenumber" name="731" href="#731">731</a>         missingHFiles);
-<a class="jxr_linenumber" name="732" href="#732">732</a>
-<a class="jxr_linenumber" name="733" href="#733">733</a>     <em class="jxr_comment">// drain LQIs and figure out bulk load groups</em>
-<a class="jxr_linenumber" name="734" href="#734">734</a>     Set&lt;Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;&gt; splittingFutures = <strong class="jxr_keyword">new</strong> HashSet&lt;&gt;();
-<a class="jxr_linenumber" name="735" href="#735">735</a>     <strong class="jxr_keyword">while</strong> (!queue.isEmpty()) {
-<a class="jxr_linenumber" name="736" href="#736">736</a>       <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html">LoadQueueItem</a> item = queue.remove();
-<a class="jxr_linenumber" name="737" href="#737">737</a>
-<a class="jxr_linenumber" name="738" href="#738">738</a>       <strong class="jxr_keyword">final</strong> Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; call =
-<a class="jxr_linenumber" name="739" href="#739">739</a>           <strong class="jxr_keyword">new</strong> Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;() {
-<a class="jxr_linenumber" name="740" href="#740">740</a>         @Override
-<a class="jxr_linenumber" name="741" href="#741">741</a>         <strong class="jxr_keyword">public</strong> Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; call() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="742" href="#742">742</a>           Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = groupOrSplit(regionGroups, item, table,
-<a class="jxr_linenumber" name="743" href="#743">743</a>               startEndKeys);
-<a class="jxr_linenumber" name="744" href="#744">744</a>           <strong class="jxr_keyword">return</strong> splits;
-<a class="jxr_linenumber" name="745" href="#745">745</a>         }
-<a class="jxr_linenumber" name="746" href="#746">746</a>       };
-<a class="jxr_linenumber" name="747" href="#747">747</a>       splittingFutures.add(pool.submit(call));
-<a class="jxr_linenumber" name="748" href="#748">748</a>     }
-<a class="jxr_linenumber" name="749" href="#749">749</a>     <em class="jxr_comment">// get all the results.  All grouping and splitting must finish before</em>
-<a class="jxr_linenumber" name="750" href="#750">750</a>     <em class="jxr_comment">// we can attempt the atomic loads.</em>
-<a class="jxr_linenumber" name="751" href="#751">751</a>     <strong class="jxr_keyword">for</strong> (Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; lqis : splittingFutures) {
-<a class="jxr_linenumber" name="752" href="#752">752</a>       <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="753" href="#753">753</a>         Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = lqis.get();
-<a class="jxr_linenumber" name="754" href="#754">754</a>         <strong class="jxr_keyword">if</strong> (splits != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="755" href="#755">755</a>           <strong class="jxr_keyword">if</strong> (splits.getFirst() != <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="756" href="#756">756</a>             queue.addAll(splits.getFirst());
-<a class="jxr_linenumber" name="757" href="#757">757</a>           } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="758" href="#758">758</a>             missingHFiles.add(splits.getSecond());
-<a class="jxr_linenumber" name="759" href="#759">759</a>           }
-<a class="jxr_linenumber" name="760" href="#760">760</a>         }
-<a class="jxr_linenumber" name="761" href="#761">761</a>       } <strong class="jxr_keyword">catch</strong> (ExecutionException e1) {
-<a class="jxr_linenumber" name="762" href="#762">762</a>         Throwable t = e1.getCause();
-<a class="jxr_linenumber" name="763" href="#763">763</a>         <strong class="jxr_keyword">if</strong> (t instanceof IOException) {
-<a class="jxr_linenumber" name="764" href="#764">764</a>           LOG.error(<span class="jxr_string">"IOException during splitting"</span>, e1);
-<a class="jxr_linenumber" name="765" href="#765">765</a>           <strong class="jxr_keyword">throw</strong> (IOException)t; <em class="jxr_comment">// would have been thrown if not parallelized,</em>
-<a class="jxr_linenumber" name="766" href="#766">766</a>         }
-<a class="jxr_linenumber" name="767" href="#767">767</a>         LOG.error(<span class="jxr_string">"Unexpected execution exception during splitting"</span>, e1);
-<a class="jxr_linenumber" name="768" href="#768">768</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(t);
-<a class="jxr_linenumber" name="769" href="#769">769</a>       } <strong class="jxr_keyword">catch</strong> (InterruptedException e1) {
-<a class="jxr_linenumber" name="770" href="#770">770</a>         LOG.error(<span class="jxr_string">"Unexpected interrupted exception during splitting"</span>, e1);
-<a class="jxr_linenumber" name="771" href="#771">771</a>         <strong class="jxr_keyword">throw</strong> (InterruptedIOException)<strong class="jxr_keyword">new</strong> InterruptedIOException().initCause(e1);
-<a class="jxr_linenumber" name="772" href="#772">772</a>       }
-<a class="jxr_linenumber" name="773" href="#773">773</a>     }
-<a class="jxr_linenumber" name="774" href="#774">774</a>     <strong class="jxr_keyword">return</strong> pair;
-<a class="jxr_linenumber" name="775" href="#775">775</a>   }
-<a class="jxr_linenumber" name="776" href="#776">776</a>
-<a class="jxr_linenumber" name="777" href="#777">777</a>   <em class="jxr_comment">// unique file name for the table</em>
-<a class="jxr_linenumber" name="778" href="#778">778</a>   <strong class="jxr_keyword">private</strong> String getUniqueName() {
-<a class="jxr_linenumber" name="779" href="#779">779</a>     <strong class="jxr_keyword">return</strong> UUID.randomUUID().toString().replaceAll(<span class="jxr_string">"-"</span>, <span class="jxr_string">""</span>);
-<a class="jxr_linenumber" name="780" href="#780">780</a>   }
-<a class="jxr_linenumber" name="781" href="#781">781</a>
-<a class="jxr_linenumber" name="782" href="#782">782</a>   <strong class="jxr_keyword">protected</strong> List&lt;LoadQueueItem&gt; splitStoreFile(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html">LoadQueueItem</a> item,
-<a class="jxr_linenumber" name="783" href="#783">783</a>       <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, byte[] startKey,
-<a class="jxr_linenumber" name="784" href="#784">784</a>       byte[] splitKey) <strong class="jxr_keyword">throws</strong> IOException {
-<a class="jxr_linenumber" name="785" href="#785">785</a>     <strong class="jxr_keyword">final</strong> Path hfilePath = item.hfilePath;
-<a class="jxr_linenumber" name="786" href="#786">786</a>
-<a class="jxr_linenumber" name="787" href="#787">787</a>     Path tmpDir = item.hfilePath.getParent();
-<a class="jxr_linenumber" name="788" href="#788">788</a>     <strong class="jxr_keyword">if</strong> (!tmpDir.getName().equals(TMP_DIR)) {
-<a class="jxr_linenumber" name="789" href="#789">789</a>       tmpDir = <strong class="jxr_keyword">new</strong> Path(tmpDir, TMP_DIR);
-<a class="jxr_linenumber" name="790" href="#790">790</a>     }
-<a class="jxr_linenumber" name="791" href="#791">791</a>
-<a class="jxr_linenumber" name="792" href="#792">792</a>     LOG.info(<span class="jxr_string">"HFile at "</span> + hfilePath + <span class="jxr_string">" no longer fits inside a single "</span> +
-<a class="jxr_linenumber" name="793" href="#793">793</a>       <span class="jxr_string">"region. Splitting..."</span>);
-<a class="jxr_linenumber" name="794" href="#794">794</a>
-<a class="jxr_linenumber" name="795" href="#795">795</a>     String uniqueName = getUniqueName();
-<a class="jxr_linenumber" name="796" href="#796">796</a>     <a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html">HColumnDescriptor</a> familyDesc = table.getTableDescriptor().getFamily(item.family);
-<a class="jxr_linenumber" name="797" href="#797">797</a>
-<a class="jxr_linenumber" name="798" href="#798">798</a>     Path botOut = <strong class="jxr_keyword">new</strong> Path(tmpDir, uniqueName + <span class="jxr_string">".bottom"</span>);
-<a class="jxr_linenumber" name="799" href="#799">799</a>     Path topOut = <strong class="jxr_keyword">new</strong> Path(tmpDir, uniqueName + <span class="jxr_string">".top"</span>);
-<a class="jxr_linenumber" name="800" href="#800">800</a>     splitStoreFile(getConf(), hfilePath, familyDesc, splitKey, botOut, topOut);
-<a class="jxr_linenumber" name="801" href="#801">801</a>
-<a class="jxr_linenumber" name="802" href="#802">802</a>     FileSystem fs = tmpDir.getFileSystem(getConf());
-<a class="jxr_linenumber" name="803" href="#803">803</a>     fs.setPermission(tmpDir, FsPermission.valueOf(<span class="jxr_string">"-rwxrwxrwx"</span>));
-<a class="jxr_linenumber" name="804" href="#804">804</a>     fs.setPermission(botOut, FsPermission.valueOf(<span class="jxr_string">"-rwxrwxrwx"</span>));
-<a class="jxr_linenumber" name="805" href="#805">805</a>     fs.setPermission(topOut, FsPermission.valueOf(<span class="jxr_string">"-rwxrwxrwx"</span>));
+<a class="jxr_linenumber" name="469" href="#469">469</a>     Map&lt;LoadQueueItem, ByteBuffer&gt; item2RegionMap = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
+<a class="jxr_linenumber" name="470" href="#470">470</a>     <em class="jxr_comment">// Assumes that region splits can happen while this occurs.</em>
+<a class="jxr_linenumber" name="471" href="#471">471</a>     <strong class="jxr_keyword">while</strong> (!queue.isEmpty()) {
+<a class="jxr_linenumber" name="472" href="#472">472</a>       <em class="jxr_comment">// need to reload split keys each iteration.</em>
+<a class="jxr_linenumber" name="473" href="#473">473</a>       <strong class="jxr_keyword">final</strong> Pair&lt;byte[][], byte[][]&gt; startEndKeys = regionLocator.getStartEndKeys();
+<a class="jxr_linenumber" name="474" href="#474">474</a>       <strong class="jxr_keyword">if</strong> (count != 0) {
+<a class="jxr_linenumber" name="475" href="#475">475</a>         LOG.info(<span class="jxr_string">"Split occured while grouping HFiles, retry attempt "</span> +
+<a class="jxr_linenumber" name="476" href="#476">476</a>             + count + <span class="jxr_string">" with "</span> + queue.size() + <span class="jxr_string">" files remaining to group or split"</span>);
+<a class="jxr_linenumber" name="477" href="#477">477</a>       }
+<a class="jxr_linenumber" name="478" href="#478">478</a>
+<a class="jxr_linenumber" name="479" href="#479">479</a>       <strong class="jxr_keyword">int</strong> maxRetries = getConf().getInt(HConstants.BULKLOAD_MAX_RETRIES_NUMBER, 10);
+<a class="jxr_linenumber" name="480" href="#480">480</a>       maxRetries = Math.max(maxRetries, startEndKeys.getFirst().length + 1);
+<a class="jxr_linenumber" name="481" href="#481">481</a>       <strong class="jxr_keyword">if</strong> (maxRetries != 0 &amp;&amp; count &gt;= maxRetries) {
+<a class="jxr_linenumber" name="482" href="#482">482</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Retry attempted "</span> + count +
+<a class="jxr_linenumber" name="483" href="#483">483</a>             <span class="jxr_string">" times without completing, bailing out"</span>);
+<a class="jxr_linenumber" name="484" href="#484">484</a>       }
+<a class="jxr_linenumber" name="485" href="#485">485</a>       count++;
+<a class="jxr_linenumber" name="486" href="#486">486</a>
+<a class="jxr_linenumber" name="487" href="#487">487</a>       <em class="jxr_comment">// Using ByteBuffer for byte[] equality semantics</em>
+<a class="jxr_linenumber" name="488" href="#488">488</a>       pair = groupOrSplitPhase(table, pool, queue, startEndKeys);
+<a class="jxr_linenumber" name="489" href="#489">489</a>       Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = pair.getFirst();
+<a class="jxr_linenumber" name="490" href="#490">490</a>
+<a class="jxr_linenumber" name="491" href="#491">491</a>       <strong class="jxr_keyword">if</strong> (!checkHFilesCountPerRegionPerFamily(regionGroups)) {
+<a class="jxr_linenumber" name="492" href="#492">492</a>         <em class="jxr_comment">// Error is logged inside checkHFilesCountPerRegionPerFamily.</em>
+<a class="jxr_linenumber" name="493" href="#493">493</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"Trying to load more than "</span> + maxFilesPerRegionPerFamily
+<a class="jxr_linenumber" name="494" href="#494">494</a>             + <span class="jxr_string">" hfiles to one family of one region"</span>);
+<a class="jxr_linenumber" name="495" href="#495">495</a>       }
+<a class="jxr_linenumber" name="496" href="#496">496</a>
+<a class="jxr_linenumber" name="497" href="#497">497</a>       bulkLoadPhase(table, admin.getConnection(), pool, queue, regionGroups, copyFile,
+<a class="jxr_linenumber" name="498" href="#498">498</a>           item2RegionMap);
+<a class="jxr_linenumber" name="499" href="#499">499</a>
+<a class="jxr_linenumber" name="500" href="#500">500</a>       <em class="jxr_comment">// NOTE: The next iteration's split / group could happen in parallel to</em>
+<a class="jxr_linenumber" name="501" href="#501">501</a>       <em class="jxr_comment">// atomic bulkloads assuming that there are splits and no merges, and</em>
+<a class="jxr_linenumber" name="502" href="#502">502</a>       <em class="jxr_comment">// that we can atomically pull out the groups we want to retry.</em>
+<a class="jxr_linenumber" name="503" href="#503">503</a>     }
+<a class="jxr_linenumber" name="504" href="#504">504</a>
+<a class="jxr_linenumber" name="505" href="#505">505</a>     <strong class="jxr_keyword">if</strong> (!queue.isEmpty()) {
+<a class="jxr_linenumber" name="506" href="#506">506</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"Bulk load aborted with some files not yet loaded."</span>
+<a class="jxr_linenumber" name="507" href="#507">507</a>         + <span class="jxr_string">"Please check log for more details."</span>);
+<a class="jxr_linenumber" name="508" href="#508">508</a>     }
+<a class="jxr_linenumber" name="509" href="#509">509</a>     <strong class="jxr_keyword">return</strong> item2RegionMap;
+<a class="jxr_linenumber" name="510" href="#510">510</a>   }
+<a class="jxr_linenumber" name="511" href="#511">511</a>
+<a class="jxr_linenumber" name="512" href="#512">512</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="513" href="#513">513</a> <em class="jxr_javadoccomment">   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the</em>
+<a class="jxr_linenumber" name="514" href="#514">514</a> <em class="jxr_javadoccomment">   * passed directory and validates whether the prepared queue has all the valid table column</em>
+<a class="jxr_linenumber" name="515" href="#515">515</a> <em class="jxr_javadoccomment">   * families in it.</em>
+<a class="jxr_linenumber" name="516" href="#516">516</a> <em class="jxr_javadoccomment">   * @param hfilesDir directory containing list of hfiles to be loaded into the table</em>
+<a class="jxr_linenumber" name="517" href="#517">517</a> <em class="jxr_javadoccomment">   * @param table table to which hfiles should be loaded</em>
+<a class="jxr_linenumber" name="518" href="#518">518</a> <em class="jxr_javadoccomment">   * @param queue queue which needs to be loaded into the table</em>
+<a class="jxr_linenumber" name="519" href="#519">519</a> <em class="jxr_javadoccomment">   * @param validateHFile if true hfiles will be validated for its format</em>
+<a class="jxr_linenumber" name="520" href="#520">520</a> <em class="jxr_javadoccomment">   * @throws IOException If any I/O or network error occurred</em>
+<a class="jxr_linenumber" name="521" href="#521">521</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="522" href="#522">522</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> prepareHFileQueue(Path hfilesDir, <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, Deque&lt;LoadQueueItem&gt; queue,
+<a class="jxr_linenumber" name="523" href="#523">523</a>       <strong class="jxr_keyword">boolean</strong> validateHFile) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="524" href="#524">524</a>     prepareHFileQueue(hfilesDir, table, queue, validateHFile, false);
+<a class="jxr_linenumber" name="525" href="#525">525</a>   }
+<a class="jxr_linenumber" name="526" href="#526">526</a>
+<a class="jxr_linenumber" name="527" href="#527">527</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="528" href="#528">528</a> <em class="jxr_javadoccomment">   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the</em>
+<a class="jxr_linenumber" name="529" href="#529">529</a> <em class="jxr_javadoccomment">   * passed directory and validates whether the prepared queue has all the valid table column</em>
+<a class="jxr_linenumber" name="530" href="#530">530</a> <em class="jxr_javadoccomment">   * families in it.</em>
+<a class="jxr_linenumber" name="531" href="#531">531</a> <em class="jxr_javadoccomment">   * @param hfilesDir directory containing list of hfiles to be loaded into the table</em>
+<a class="jxr_linenumber" name="532" href="#532">532</a> <em class="jxr_javadoccomment">   * @param table table to which hfiles should be loaded</em>
+<a class="jxr_linenumber" name="533" href="#533">533</a> <em class="jxr_javadoccomment">   * @param queue queue which needs to be loaded into the table</em>
+<a class="jxr_linenumber" name="534" href="#534">534</a> <em class="jxr_javadoccomment">   * @param validateHFile if true hfiles will be validated for its format</em>
+<a class="jxr_linenumber" name="535" href="#535">535</a> <em class="jxr_javadoccomment">   * @param silence  true to ignore unmatched column families</em>
+<a class="jxr_linenumber" name="536" href="#536">536</a> <em class="jxr_javadoccomment">   * @throws IOException If any I/O or network error occurred</em>
+<a class="jxr_linenumber" name="537" href="#537">537</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="538" href="#538">538</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> prepareHFileQueue(Path hfilesDir, <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table,
+<a class="jxr_linenumber" name="539" href="#539">539</a>       Deque&lt;LoadQueueItem&gt; queue, <strong class="jxr_keyword">boolean</strong> validateHFile, <strong class="jxr_keyword">boolean</strong> silence) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="540" href="#540">540</a>     discoverLoadQueue(queue, hfilesDir, validateHFile);
+<a class="jxr_linenumber" name="541" href="#541">541</a>     validateFamiliesInHFiles(table, queue, silence);
+<a class="jxr_linenumber" name="542" href="#542">542</a>   }
+<a class="jxr_linenumber" name="543" href="#543">543</a>
+<a class="jxr_linenumber" name="544" href="#544">544</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="545" href="#545">545</a> <em class="jxr_javadoccomment">   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the</em>
+<a class="jxr_linenumber" name="546" href="#546">546</a> <em class="jxr_javadoccomment">   * passed directory and validates whether the prepared queue has all the valid table column</em>
+<a class="jxr_linenumber" name="547" href="#547">547</a> <em class="jxr_javadoccomment">   * families in it.</em>
+<a class="jxr_linenumber" name="548" href="#548">548</a> <em class="jxr_javadoccomment">   * @param map map of family to List of hfiles</em>
+<a class="jxr_linenumber" name="549" href="#549">549</a> <em class="jxr_javadoccomment">   * @param table table to which hfiles should be loaded</em>
+<a class="jxr_linenumber" name="550" href="#550">550</a> <em class="jxr_javadoccomment">   * @param queue queue which needs to be loaded into the table</em>
+<a class="jxr_linenumber" name="551" href="#551">551</a> <em class="jxr_javadoccomment">   * @param silence  true to ignore unmatched column families</em>
+<a class="jxr_linenumber" name="552" href="#552">552</a> <em class="jxr_javadoccomment">   * @throws IOException If any I/O or network error occurred</em>
+<a class="jxr_linenumber" name="553" href="#553">553</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="554" href="#554">554</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> prepareHFileQueue(Map&lt;byte[], List&lt;Path&gt;&gt; map, <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table,
+<a class="jxr_linenumber" name="555" href="#555">555</a>       Deque&lt;LoadQueueItem&gt; queue, <strong class="jxr_keyword">boolean</strong> silence) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="556" href="#556">556</a>     populateLoadQueue(queue, map);
+<a class="jxr_linenumber" name="557" href="#557">557</a>     validateFamiliesInHFiles(table, queue, silence);
+<a class="jxr_linenumber" name="558" href="#558">558</a>   }
+<a class="jxr_linenumber" name="559" href="#559">559</a>
+<a class="jxr_linenumber" name="560" href="#560">560</a>   <em class="jxr_comment">// Initialize a thread pool</em>
+<a class="jxr_linenumber" name="561" href="#561">561</a>   <strong class="jxr_keyword">private</strong> ExecutorService createExecutorService() {
+<a class="jxr_linenumber" name="562" href="#562">562</a>     ThreadFactoryBuilder builder = <strong class="jxr_keyword">new</strong> ThreadFactoryBuilder();
+<a class="jxr_linenumber" name="563" href="#563">563</a>     builder.setNameFormat(<span class="jxr_string">"LoadIncrementalHFiles-%1$d"</span>);
+<a class="jxr_linenumber" name="564" href="#564">564</a>     ExecutorService pool = <strong class="jxr_keyword">new</strong> ThreadPoolExecutor(nrThreads, nrThreads, 60, TimeUnit.SECONDS,
+<a class="jxr_linenumber" name="565" href="#565">565</a>         <strong class="jxr_keyword">new</strong> LinkedBlockingQueue&lt;Runnable&gt;(), builder.build());
+<a class="jxr_linenumber" name="566" href="#566">566</a>     ((ThreadPoolExecutor) pool).allowCoreThreadTimeOut(<strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="567" href="#567">567</a>     <strong class="jxr_keyword">return</strong> pool;
+<a class="jxr_linenumber" name="568" href="#568">568</a>   }
+<a class="jxr_linenumber" name="569" href="#569">569</a>
+<a class="jxr_linenumber" name="570" href="#570">570</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="571" href="#571">571</a> <em class="jxr_javadoccomment">   * Checks whether there is any invalid family name in HFiles to be bulk loaded.</em>
+<a class="jxr_linenumber" name="572" href="#572">572</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="573" href="#573">573</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> validateFamiliesInHFiles(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, Deque&lt;LoadQueueItem&gt; queue, <strong class="jxr_keyword">boolean</strong> silence)
+<a class="jxr_linenumber" name="574" href="#574">574</a>       <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="575" href="#575">575</a>     Collection&lt;HColumnDescriptor&gt; families = table.getTableDescriptor().getFamilies();
+<a class="jxr_linenumber" name="576" href="#576">576</a>     List&lt;String&gt; familyNames = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(families.size());
+<a class="jxr_linenumber" name="577" href="#577">577</a>     <strong class="jxr_keyword">for</strong> (HColumnDescriptor family : families) {
+<a class="jxr_linenumber" name="578" href="#578">578</a>       familyNames.add(family.getNameAsString());
+<a class="jxr_linenumber" name="579" href="#579">579</a>     }
+<a class="jxr_linenumber" name="580" href="#580">580</a>     Iterator&lt;LoadQueueItem&gt; queueIter = queue.iterator();
+<a class="jxr_linenumber" name="581" href="#581">581</a>     <strong class="jxr_keyword">while</strong> (queueIter.hasNext()) {
+<a class="jxr_linenumber" name="582" href="#582">582</a>       <a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html">LoadQueueItem</a> lqi = queueIter.next();
+<a class="jxr_linenumber" name="583" href="#583">583</a>       String familyNameInHFile = Bytes.toString(lqi.family);
+<a class="jxr_linenumber" name="584" href="#584">584</a>       <strong class="jxr_keyword">if</strong> (!familyNames.contains(familyNameInHFile)) {
+<a class="jxr_linenumber" name="585" href="#585">585</a>         unmatchedFamilies.add(familyNameInHFile);
+<a class="jxr_linenumber" name="586" href="#586">586</a>       }
+<a class="jxr_linenumber" name="587" href="#587">587</a>     }
+<a class="jxr_linenumber" name="588" href="#588">588</a>     <strong class="jxr_keyword">if</strong> (unmatchedFamilies.size() &gt; 0) {
+<a class="jxr_linenumber" name="589" href="#589">589</a>       String msg =
+<a class="jxr_linenumber" name="590" href="#590">590</a>           <span class="jxr_string">"Unmatched family names found: unmatched family names in HFiles to be bulkloaded: "</span>
+<a class="jxr_linenumber" name="591" href="#591">591</a>               + unmatchedFamilies + <span class="jxr_string">"; valid family names of table "</span> + table.getName() + <span class="jxr_string">" are: "</span>
+<a class="jxr_linenumber" name="592" href="#592">592</a>               + familyNames;
+<a class="jxr_linenumber" name="593" href="#593">593</a>       LOG.error(msg);
+<a class="jxr_linenumber" name="594" href="#594">594</a>       <strong class="jxr_keyword">if</strong> (!silence) <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(msg);
+<a class="jxr_linenumber" name="595" href="#595">595</a>     }
+<a class="jxr_linenumber" name="596" href="#596">596</a>   }
+<a class="jxr_linenumber" name="597" href="#597">597</a>
+<a class="jxr_linenumber" name="598" href="#598">598</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="599" href="#599">599</a> <em class="jxr_javadoccomment">   * Used by the replication sink to load the hfiles from the source cluster. It does the following,</em>
+<a class="jxr_linenumber" name="600" href="#600">600</a> <em class="jxr_javadoccomment">   * &lt;ol&gt;</em>
+<a class="jxr_linenumber" name="601" href="#601">601</a> <em class="jxr_javadoccomment">   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;</em>
+<a class="jxr_linenumber" name="602" href="#602">602</a> <em class="jxr_javadoccomment">   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)</em>
+<a class="jxr_linenumber" name="603" href="#603">603</a> <em class="jxr_javadoccomment">   * &lt;/li&gt;</em>
+<a class="jxr_linenumber" name="604" href="#604">604</a> <em class="jxr_javadoccomment">   * &lt;/ol&gt;</em>
+<a class="jxr_linenumber" name="605" href="#605">605</a> <em class="jxr_javadoccomment">   * @param table Table to which these hfiles should be loaded to</em>
+<a class="jxr_linenumber" name="606" href="#606">606</a> <em class="jxr_javadoccomment">   * @param conn Connection to use</em>
+<a class="jxr_linenumber" name="607" href="#607">607</a> <em class="jxr_javadoccomment">   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded</em>
+<a class="jxr_linenumber" name="608" href="#608">608</a> <em class="jxr_javadoccomment">   * @param startEndKeys starting and ending row keys of the region</em>
+<a class="jxr_linenumber" name="609" href="#609">609</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="610" href="#610">610</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> loadHFileQueue(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html">Connection</a> conn, Deque&lt;LoadQueueItem&gt; queue,
+<a class="jxr_linenumber" name="611" href="#611">611</a>       Pair&lt;byte[][], byte[][]&gt; startEndKeys) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="612" href="#612">612</a>     loadHFileQueue(table, conn, queue, startEndKeys, false);
+<a class="jxr_linenumber" name="613" href="#613">613</a>   }
+<a class="jxr_linenumber" name="614" href="#614">614</a>
+<a class="jxr_linenumber" name="615" href="#615">615</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="616" href="#616">616</a> <em class="jxr_javadoccomment">   * Used by the replication sink to load the hfiles from the source cluster. It does the following,</em>
+<a class="jxr_linenumber" name="617" href="#617">617</a> <em class="jxr_javadoccomment">   * &lt;ol&gt;</em>
+<a class="jxr_linenumber" name="618" href="#618">618</a> <em class="jxr_javadoccomment">   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;</em>
+<a class="jxr_linenumber" name="619" href="#619">619</a> <em class="jxr_javadoccomment">   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)</em>
+<a class="jxr_linenumber" name="620" href="#620">620</a> <em class="jxr_javadoccomment">   * &lt;/li&gt;</em>
+<a class="jxr_linenumber" name="621" href="#621">621</a> <em class="jxr_javadoccomment">   * &lt;/ol&gt;</em>
+<a class="jxr_linenumber" name="622" href="#622">622</a> <em class="jxr_javadoccomment">   * @param table Table to which these hfiles should be loaded to</em>
+<a class="jxr_linenumber" name="623" href="#623">623</a> <em class="jxr_javadoccomment">   * @param conn Connection to use</em>
+<a class="jxr_linenumber" name="624" href="#624">624</a> <em class="jxr_javadoccomment">   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded</em>
+<a class="jxr_linenumber" name="625" href="#625">625</a> <em class="jxr_javadoccomment">   * @param startEndKeys starting and ending row keys of the region</em>
+<a class="jxr_linenumber" name="626" href="#626">626</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="627" href="#627">627</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> loadHFileQueue(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html">Connection</a> conn, Deque&lt;LoadQueueItem&gt; queue,
+<a class="jxr_linenumber" name="628" href="#628">628</a>       Pair&lt;byte[][], byte[][]&gt; startEndKeys, <strong class="jxr_keyword">boolean</strong> copyFile) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="629" href="#629">629</a>     ExecutorService pool = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="630" href="#630">630</a>     <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="631" href="#631">631</a>       pool = createExecutorService();
+<a class="jxr_linenumber" name="632" href="#632">632</a>       Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups =
+<a class="jxr_linenumber" name="633" href="#633">633</a>           groupOrSplitPhase(table, pool, queue, startEndKeys).getFirst();
+<a class="jxr_linenumber" name="634" href="#634">634</a>       bulkLoadPhase(table, conn, pool, queue, regionGroups, copyFile, <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="635" href="#635">635</a>     } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="636" href="#636">636</a>       <strong class="jxr_keyword">if</strong> (pool != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="637" href="#637">637</a>         pool.shutdown();
+<a class="jxr_linenumber" name="638" href="#638">638</a>       }
+<a class="jxr_linenumber" name="639" href="#639">639</a>     }
+<a class="jxr_linenumber" name="640" href="#640">640</a>   }
+<a class="jxr_linenumber" name="641" href="#641">641</a>
+<a class="jxr_linenumber" name="642" href="#642">642</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="643" href="#643">643</a> <em class="jxr_javadoccomment">   * This takes the LQI's grouped by likely regions and attempts to bulk load</em>
+<a class="jxr_linenumber" name="644" href="#644">644</a> <em class="jxr_javadoccomment">   * them.  Any failures are re-queued for another pass with the</em>
+<a class="jxr_linenumber" name="645" href="#645">645</a> <em class="jxr_javadoccomment">   * groupOrSplitPhase.</em>
+<a class="jxr_linenumber" name="646" href="#646">646</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="647" href="#647">647</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> bulkLoadPhase(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html">Connection</a> conn,
+<a class="jxr_linenumber" name="648" href="#648">648</a>       ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,
+<a class="jxr_linenumber" name="649" href="#649">649</a>       <strong class="jxr_keyword">final</strong> Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, <strong class="jxr_keyword">boolean</strong> copyFile,
+<a class="jxr_linenumber" name="650" href="#650">650</a>       Map&lt;LoadQueueItem, ByteBuffer&gt; item2RegionMap) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="651" href="#651">651</a>     <em class="jxr_comment">// atomically bulk load the groups.</em>
+<a class="jxr_linenumber" name="652" href="#652">652</a>     Set&lt;Future&lt;List&lt;LoadQueueItem&gt;&gt;&gt; loadingFutures = <strong class="jxr_keyword">new</strong> HashSet&lt;&gt;();
+<a class="jxr_linenumber" name="653" href="#653">653</a>     <strong class="jxr_keyword">for</strong> (Entry&lt;ByteBuffer, ? <strong class="jxr_keyword">extends</strong> Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()){
+<a class="jxr_linenumber" name="654" href="#654">654</a>       <strong class="jxr_keyword">final</strong> byte[] first = e.getKey().array();
+<a class="jxr_linenumber" name="655" href="#655">655</a>       <strong class="jxr_keyword">final</strong> Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();
+<a class="jxr_linenumber" name="656" href="#656">656</a>
+<a class="jxr_linenumber" name="657" href="#657">657</a>       <strong class="jxr_keyword">final</strong> Callable&lt;List&lt;LoadQueueItem&gt;&gt; call = <strong class="jxr_keyword">new</strong> Callable&lt;List&lt;LoadQueueItem&gt;&gt;() {
+<a class="jxr_linenumber" name="658" href="#658">658</a>         @Override
+<a class="jxr_linenumber" name="659" href="#659">659</a>         <strong class="jxr_keyword">public</strong> List&lt;LoadQueueItem&gt; call() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="660" href="#660">660</a>           List&lt;LoadQueueItem&gt; toRetry =
+<a class="jxr_linenumber" name="661" href="#661">661</a>               tryAtomicRegionLoad(conn, table.getName(), first, lqis, copyFile);
+<a class="jxr_linenumber" name="662" href="#662">662</a>           <strong class="jxr_keyword">return</strong> toRetry;
+<a class="jxr_linenumber" name="663" href="#663">663</a>         }
+<a class="jxr_linenumber" name="664" href="#664">664</a>       };
+<a class="jxr_linenumber" name="665" href="#665">665</a>       <strong class="jxr_keyword">if</strong> (item2RegionMap != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="666" href="#666">666</a>         <strong class="jxr_keyword">for</strong> (LoadQueueItem lqi : lqis) {
+<a class="jxr_linenumber" name="667" href="#667">667</a>           item2RegionMap.put(lqi, e.getKey());
+<a class="jxr_linenumber" name="668" href="#668">668</a>         }
+<a class="jxr_linenumber" name="669" href="#669">669</a>       }
+<a class="jxr_linenumber" name="670" href="#670">670</a>       loadingFutures.add(pool.submit(call));
+<a class="jxr_linenumber" name="671" href="#671">671</a>     }
+<a class="jxr_linenumber" name="672" href="#672">672</a>
+<a class="jxr_linenumber" name="673" href="#673">673</a>     <em class="jxr_comment">// get all the results.</em>
+<a class="jxr_linenumber" name="674" href="#674">674</a>     <strong class="jxr_keyword">for</strong> (Future&lt;List&lt;LoadQueueItem&gt;&gt; future : loadingFutures) {
+<a class="jxr_linenumber" name="675" href="#675">675</a>       <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="676" href="#676">676</a>         List&lt;LoadQueueItem&gt; toRetry = future.get();
+<a class="jxr_linenumber" name="677" href="#677">677</a>
+<a class="jxr_linenumber" name="678" href="#678">678</a>         <strong class="jxr_keyword">if</strong> (item2RegionMap != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="679" href="#679">679</a>           <strong class="jxr_keyword">for</strong> (LoadQueueItem lqi : toRetry) {
+<a class="jxr_linenumber" name="680" href="#680">680</a>             item2RegionMap.remove(lqi);
+<a class="jxr_linenumber" name="681" href="#681">681</a>           }
+<a class="jxr_linenumber" name="682" href="#682">682</a>         }
+<a class="jxr_linenumber" name="683" href="#683">683</a>         <em class="jxr_comment">// LQIs that are requeued to be regrouped.</em>
+<a class="jxr_linenumber" name="684" href="#684">684</a>         queue.addAll(toRetry);
+<a class="jxr_linenumber" name="685" href="#685">685</a>
+<a class="jxr_linenumber" name="686" href="#686">686</a>       } <strong class="jxr_keyword">catch</strong> (ExecutionException e1) {
+<a class="jxr_linenumber" name="687" href="#687">687</a>         Throwable t = e1.getCause();
+<a class="jxr_linenumber" name="688" href="#688">688</a>         <strong class="jxr_keyword">if</strong> (t instanceof IOException) {
+<a class="jxr_linenumber" name="689" href="#689">689</a>           <em class="jxr_comment">// At this point something unrecoverable has happened.</em>
+<a class="jxr_linenumber" name="690" href="#690">690</a>           <em class="jxr_comment">// TODO Implement bulk load recovery</em>
+<a class="jxr_linenumber" name="691" href="#691">691</a>           <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(<span class="jxr_string">"BulkLoad encountered an unrecoverable problem"</span>, t);
+<a class="jxr_linenumber" name="692" href="#692">692</a>         }
+<a class="jxr_linenumber" name="693" href="#693">693</a>         LOG.error(<span class="jxr_string">"Unexpected execution exception during bulk load"</span>, e1);
+<a class="jxr_linenumber" name="694" href="#694">694</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(t);
+<a class="jxr_linenumber" name="695" href="#695">695</a>       } <strong class="jxr_keyword">catch</strong> (InterruptedException e1) {
+<a class="jxr_linenumber" name="696" href="#696">696</a>         LOG.error(<span class="jxr_string">"Unexpected interrupted exception during bulk load"</span>, e1);
+<a class="jxr_linenumber" name="697" href="#697">697</a>         <strong class="jxr_keyword">throw</strong> (InterruptedIOException)<strong class="jxr_keyword">new</strong> InterruptedIOException().initCause(e1);
+<a class="jxr_linenumber" name="698" href="#698">698</a>       }
+<a class="jxr_linenumber" name="699" href="#699">699</a>     }
+<a class="jxr_linenumber" name="700" href="#700">700</a>   }
+<a class="jxr_linenumber" name="701" href="#701">701</a>
+<a class="jxr_linenumber" name="702" href="#702">702</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> checkHFilesCountPerRegionPerFamily(
+<a class="jxr_linenumber" name="703" href="#703">703</a>       <strong class="jxr_keyword">final</strong> Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups) {
+<a class="jxr_linenumber" name="704" href="#704">704</a>     <strong class="jxr_keyword">for</strong> (Entry&lt;ByteBuffer,
+<a class="jxr_linenumber" name="705" href="#705">705</a>       ? <strong class="jxr_keyword">extends</strong> Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()) {
+<a class="jxr_linenumber" name="706" href="#706">706</a>       <strong class="jxr_keyword">final</strong> Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();
+<a class="jxr_linenumber" name="707" href="#707">707</a>       HashMap&lt;byte[], MutableInt&gt; filesMap = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
+<a class="jxr_linenumber" name="708" href="#708">708</a>       <strong class="jxr_keyword">for</strong> (LoadQueueItem lqi: lqis) {
+<a class="jxr_linenumber" name="709" href="#709">709</a>         MutableInt count = filesMap.get(lqi.family);
+<a class="jxr_linenumber" name="710" href="#710">710</a>         <strong class="jxr_keyword">if</strong> (count == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="711" href="#711">711</a>           count = <strong class="jxr_keyword">new</strong> MutableInt();
+<a class="jxr_linenumber" name="712" href="#712">712</a>           filesMap.put(lqi.family, count);
+<a class="jxr_linenumber" name="713" href="#713">713</a>         }
+<a class="jxr_linenumber" name="714" href="#714">714</a>         count.increment();
+<a class="jxr_linenumber" name="715" href="#715">715</a>         <strong class="jxr_keyword">if</strong> (count.intValue() &gt; maxFilesPerRegionPerFamily) {
+<a class="jxr_linenumber" name="716" href="#716">716</a>           LOG.error(<span class="jxr_string">"Trying to load more than "</span> + maxFilesPerRegionPerFamily
+<a class="jxr_linenumber" name="717" href="#717">717</a>             + <span class="jxr_string">" hfiles to family "</span> + Bytes.toStringBinary(lqi.family)
+<a class="jxr_linenumber" name="718" href="#718">718</a>             + <span class="jxr_string">" of region with start key "</span>
+<a class="jxr_linenumber" name="719" href="#719">719</a>             + Bytes.toStringBinary(e.getKey()));
+<a class="jxr_linenumber" name="720" href="#720">720</a>           <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="721" href="#721">721</a>         }
+<a class="jxr_linenumber" name="722" href="#722">722</a>       }
+<a class="jxr_linenumber" name="723" href="#723">723</a>     }
+<a class="jxr_linenumber" name="724" href="#724">724</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="725" href="#725">725</a>   }
+<a class="jxr_linenumber" name="726" href="#726">726</a>
+<a class="jxr_linenumber" name="727" href="#727">727</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="728" href="#728">728</a> <em class="jxr_javadoccomment">   * @param table the table to load into</em>
+<a class="jxr_linenumber" name="729" href="#729">729</a> <em class="jxr_javadoccomment">   * @param pool the ExecutorService</em>
+<a class="jxr_linenumber" name="730" href="#730">730</a> <em class="jxr_javadoccomment">   * @param queue the queue for LoadQueueItem</em>
+<a class="jxr_linenumber" name="731" href="#731">731</a> <em class="jxr_javadoccomment">   * @param startEndKeys start and end keys</em>
+<a class="jxr_linenumber" name="732" href="#732">732</a> <em class="jxr_javadoccomment">   * @return A map that groups LQI by likely bulk load region targets and Set of missing hfiles.</em>
+<a class="jxr_linenumber" name="733" href="#733">733</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="734" href="#734">734</a>   <strong class="jxr_keyword">private</strong> Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; groupOrSplitPhase(
+<a class="jxr_linenumber" name="735" href="#735">735</a>       <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/hadoop/hbase/client/Table.html">Table</a> table, ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,
+<a class="jxr_linenumber" name="736" href="#736">736</a>       <strong class="jxr_keyword">final</strong> Pair&lt;byte[][], byte[][]&gt; startEndKeys) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="737" href="#737">737</a>     <em class="jxr_comment">// &lt;region start key, LQI&gt; need synchronized only within this scope of this</em>
+<a class="jxr_linenumber" name="738" href="#738">738</a>     <em class="jxr_comment">// phase because of the puts that happen in futures.</em>
+<a class="jxr_linenumber" name="739" href="#739">739</a>     Multimap&lt;ByteBuffer, LoadQueueItem&gt; rgs = HashMultimap.create();
+<a class="jxr_linenumber" name="740" href="#740">740</a>     <strong class="jxr_keyword">final</strong> Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = Multimaps.synchronizedMultimap(rgs);
+<a class="jxr_linenumber" name="741" href="#741">741</a>     Set&lt;String&gt; missingHFiles = <strong class="jxr_keyword">new</strong> HashSet&lt;&gt;();
+<a class="jxr_linenumber" name="742" href="#742">742</a>     Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; pair = <strong class="jxr_keyword">new</strong> Pair&lt;&gt;(regionGroups,
+<a class="jxr_linenumber" name="743" href="#743">743</a>         missingHFiles);
+<a class="jxr_linenumber" name="744" href="#744">744</a>
+<a class="jxr_linenumber" name="745" href="#745">745</a>     <em class="jxr_comment">// drain LQIs and figure out bulk load groups</em>
+<a class="jxr_linenumber" 

<TRUNCATED>

[03/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html b/xref/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html
index d089d65..e342d7a 100644
--- a/xref/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html
+++ b/xref/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html
@@ -261,145 +261,153 @@
 <a class="jxr_linenumber" name="251" href="#251">251</a>   }
 <a class="jxr_linenumber" name="252" href="#252">252</a>
 <a class="jxr_linenumber" name="253" href="#253">253</a>   <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="254" href="#254">254</a> <em class="jxr_javadoccomment">   * It "atomically" copies all the wals queues from another region server and returns them all</em>
-<a class="jxr_linenumber" name="255" href="#255">255</a> <em class="jxr_javadoccomment">   * sorted per peer cluster (appended with the dead server's znode).</em>
+<a class="jxr_linenumber" name="254" href="#254">254</a> <em class="jxr_javadoccomment">   * It "atomically" copies one peer's wals queue from another dead region server and returns them</em>
+<a class="jxr_linenumber" name="255" href="#255">255</a> <em class="jxr_javadoccomment">   * all sorted. The new peer id is equal to the old peer id appended with the dead server's znode.</em>
 <a class="jxr_linenumber" name="256" href="#256">256</a> <em class="jxr_javadoccomment">   * @param znode pertaining to the region server to copy the queues from</em>
-<a class="jxr_linenumber" name="257" href="#257">257</a> <em class="jxr_javadoccomment">   */</em>
-<a class="jxr_linenumber" name="258" href="#258">258</a>   <strong class="jxr_keyword">private</strong> Pair&lt;String, SortedSet&lt;String&gt;&gt; moveQueueUsingMulti(String znode, String peerId) {
-<a class="jxr_linenumber" name="259" href="#259">259</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="260" href="#260">260</a>       <em class="jxr_comment">// hbase/replication/rs/deadrs</em>
-<a class="jxr_linenumber" name="261" href="#261">261</a>       String deadRSZnodePath = ZKUtil.joinZNode(<strong class="jxr_keyword">this</strong>.queuesZNode, znode);
-<a class="jxr_linenumber" name="262" href="#262">262</a>       List&lt;ZKUtilOp&gt; listOfOps = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
-<a class="jxr_linenumber" name="263" href="#263">263</a>       <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueInfo.html">ReplicationQueueInfo</a> replicationQueueInfo = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueInfo.html">ReplicationQueueInfo</a>(peerId);
-<a class="jxr_linenumber" name="264" href="#264">264</a>       <strong class="jxr_keyword">if</strong> (!peerExists(replicationQueueInfo.getPeerId())) {
-<a class="jxr_linenumber" name="265" href="#265">265</a>         <em class="jxr_comment">// the orphaned queues must be moved, otherwise the delete op of dead rs will fail,</em>
-<a class="jxr_linenumber" name="266" href="#266">266</a>         <em class="jxr_comment">// this will cause the whole multi op fail.</em>
-<a class="jxr_linenumber" name="267" href="#267">267</a>         <em class="jxr_comment">// NodeFailoverWorker will skip the orphaned queues.</em>
-<a class="jxr_linenumber" name="268" href="#268">268</a>         LOG.warn(<span class="jxr_string">"Peer "</span> + peerId +
-<a class="jxr_linenumber" name="269" href="#269">269</a>             <span class="jxr_string">" didn't exist, will move its queue to avoid the failure of multi op"</span>);
-<a class="jxr_linenumber" name="270" href="#270">270</a>       }
-<a class="jxr_linenumber" name="271" href="#271">271</a>       String newPeerId = peerId + <span class="jxr_string">"-"</span> + znode;
-<a class="jxr_linenumber" name="272" href="#272">272</a>       String newPeerZnode = ZKUtil.joinZNode(<strong class="jxr_keyword">this</strong>.myQueuesZnode, newPeerId);
-<a class="jxr_linenumber" name="273" href="#273">273</a>       <em class="jxr_comment">// check the logs queue for the old peer cluster</em>
-<a class="jxr_linenumber" name="274" href="#274">274</a>       String oldClusterZnode = ZKUtil.joinZNode(deadRSZnodePath, peerId);
-<a class="jxr_linenumber" name="275" href="#275">275</a>       List&lt;String&gt; wals = ZKUtil.listChildrenNoWatch(<strong class="jxr_keyword">this</strong>.zookeeper, oldClusterZnode);
-<a class="jxr_linenumber" name="276" href="#276">276</a>       SortedSet&lt;String&gt; logQueue = <strong class="jxr_keyword">new</strong> TreeSet&lt;&gt;();
-<a class="jxr_linenumber" name="277" href="#277">277</a>       <strong class="jxr_keyword">if</strong> (wals == <strong class="jxr_keyword">null</strong> || wals.size() == 0) {
-<a class="jxr_linenumber" name="278" href="#278">278</a>         listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));
-<a class="jxr_linenumber" name="279" href="#279">279</a>       } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="280" href="#280">280</a>         <em class="jxr_comment">// create the new cluster znode</em>
-<a class="jxr_linenumber" name="281" href="#281">281</a>         <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKUtil.html">ZKUtilOp</a> op = ZKUtilOp.createAndFailSilent(newPeerZnode, HConstants.EMPTY_BYTE_ARRAY);
-<a class="jxr_linenumber" name="282" href="#282">282</a>         listOfOps.add(op);
-<a class="jxr_linenumber" name="283" href="#283">283</a>         <em class="jxr_comment">// get the offset of the logs and set it to new znodes</em>
-<a class="jxr_linenumber" name="284" href="#284">284</a>         <strong class="jxr_keyword">for</strong> (String wal : wals) {
-<a class="jxr_linenumber" name="285" href="#285">285</a>           String oldWalZnode = ZKUtil.joinZNode(oldClusterZnode, wal);
-<a class="jxr_linenumber" name="286" href="#286">286</a>           byte[] logOffset = ZKUtil.getData(<strong class="jxr_keyword">this</strong>.zookeeper, oldWalZnode);
-<a class="jxr_linenumber" name="287" href="#287">287</a>           LOG.debug(<span class="jxr_string">"Creating "</span> + wal + <span class="jxr_string">" with data "</span> + Bytes.toString(logOffset));
-<a class="jxr_linenumber" name="288" href="#288">288</a>           String newLogZnode = ZKUtil.joinZNode(newPeerZnode, wal);
-<a class="jxr_linenumber" name="289" href="#289">289</a>           listOfOps.add(ZKUtilOp.createAndFailSilent(newLogZnode, logOffset));
-<a class="jxr_linenumber" name="290" href="#290">290</a>           listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldWalZnode));
-<a class="jxr_linenumber" name="291" href="#291">291</a>           logQueue.add(wal);
-<a class="jxr_linenumber" name="292" href="#292">292</a>         }
-<a class="jxr_linenumber" name="293" href="#293">293</a>         <em class="jxr_comment">// add delete op for peer</em>
-<a class="jxr_linenumber" name="294" href="#294">294</a>         listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));
-<a class="jxr_linenumber" name="295" href="#295">295</a>
-<a class="jxr_linenumber" name="296" href="#296">296</a>         <strong class="jxr_keyword">if</strong> (LOG.isTraceEnabled())
-<a class="jxr_linenumber" name="297" href="#297">297</a>           LOG.trace(<span class="jxr_string">" The multi list size is: "</span> + listOfOps.size());
-<a class="jxr_linenumber" name="298" href="#298">298</a>       }
-<a class="jxr_linenumber" name="299" href="#299">299</a>       ZKUtil.multiOrSequential(<strong class="jxr_keyword">this</strong>.zookeeper, listOfOps, false);
-<a class="jxr_linenumber" name="300" href="#300">300</a>       <strong class="jxr_keyword">if</strong> (LOG.isTraceEnabled())
-<a class="jxr_linenumber" name="301" href="#301">301</a>         LOG.trace(<span class="jxr_string">"Atomically moved the dead regionserver logs. "</span>);
-<a class="jxr_linenumber" name="302" href="#302">302</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Pair&lt;&gt;(newPeerId, logQueue);
-<a class="jxr_linenumber" name="303" href="#303">303</a>     } <strong class="jxr_keyword">catch</strong> (KeeperException e) {
-<a class="jxr_linenumber" name="304" href="#304">304</a>       <em class="jxr_comment">// Multi call failed; it looks like some other regionserver took away the logs.</em>
-<a class="jxr_linenumber" name="305" href="#305">305</a>       LOG.warn(<span class="jxr_string">"Got exception in copyQueuesFromRSUsingMulti: "</span>, e);
-<a class="jxr_linenumber" name="306" href="#306">306</a>     } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
-<a class="jxr_linenumber" name="307" href="#307">307</a>       LOG.warn(<span class="jxr_string">"Got exception in copyQueuesFromRSUsingMulti: "</span>, e);
-<a class="jxr_linenumber" name="308" href="#308">308</a>       Thread.currentThread().interrupt();
-<a class="jxr_linenumber" name="309" href="#309">309</a>     }
-<a class="jxr_linenumber" name="310" href="#310">310</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="311" href="#311">311</a>   }
-<a class="jxr_linenumber" name="312" href="#312">312</a>
-<a class="jxr_linenumber" name="313" href="#313">313</a>   @Override
-<a class="jxr_linenumber" name="314" href="#314">314</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addHFileRefs(String peerId, List&lt;String&gt; files) <strong class="jxr_keyword">throws</strong> ReplicationException {
-<a class="jxr_linenumber" name="315" href="#315">315</a>     String peerZnode = ZKUtil.joinZNode(<strong class="jxr_keyword">this</strong>.hfileRefsZNode, peerId);
-<a class="jxr_linenumber" name="316" href="#316">316</a>     <strong class="jxr_keyword">boolean</strong> debugEnabled = LOG.isDebugEnabled();
-<a class="jxr_linenumber" name="317" href="#317">317</a>     <strong class="jxr_keyword">if</strong> (debugEnabled) {
-<a class="jxr_linenumber" name="318" href="#318">318</a>       LOG.debug(<span class="jxr_string">"Adding hfile references "</span> + files + <span class="jxr_string">" in queue "</span> + peerZnode);
-<a class="jxr_linenumber" name="319" href="#319">319</a>     }
-<a class="jxr_linenumber" name="320" href="#320">320</a>     List&lt;ZKUtilOp&gt; listOfOps = <strong class="jxr_keyword">new</strong> ArrayList&lt;ZKUtil.ZKUtilOp&gt;();
-<a class="jxr_linenumber" name="321" href="#321">321</a>     <strong class="jxr_keyword">int</strong> size = files.size();
-<a class="jxr_linenumber" name="322" href="#322">322</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; size; i++) {
-<a class="jxr_linenumber" name="323" href="#323">323</a>       listOfOps.add(ZKUtilOp.createAndFailSilent(ZKUtil.joinZNode(peerZnode, files.get(i)),
-<a class="jxr_linenumber" name="324" href="#324">324</a>         HConstants.EMPTY_BYTE_ARRAY));
-<a class="jxr_linenumber" name="325" href="#325">325</a>     }
-<a class="jxr_linenumber" name="326" href="#326">326</a>     <strong class="jxr_keyword">if</strong> (debugEnabled) {
-<a class="jxr_linenumber" name="327" href="#327">327</a>       LOG.debug(<span class="jxr_string">" The multi list size for adding hfile references in zk for node "</span> + peerZnode
-<a class="jxr_linenumber" name="328" href="#328">328</a>           + <span class="jxr_string">" is "</span> + listOfOps.size());
-<a class="jxr_linenumber" name="329" href="#329">329</a>     }
-<a class="jxr_linenumber" name="330" href="#330">330</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="331" href="#331">331</a>       ZKUtil.multiOrSequential(<strong class="jxr_keyword">this</strong>.zookeeper, listOfOps, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="332" href="#332">332</a>     } <strong class="jxr_keyword">catch</strong> (KeeperException e) {
-<a class="jxr_linenumber" name="333" href="#333">333</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html">ReplicationException</a>(<span class="jxr_string">"Failed to create hfile reference znode="</span> + e.getPath(), e);
-<a class="jxr_linenumber" name="334" href="#334">334</a>     }
-<a class="jxr_linenumber" name="335" href="#335">335</a>   }
-<a class="jxr_linenumber" name="336" href="#336">336</a>
-<a class="jxr_linenumber" name="337" href="#337">337</a>   @Override
-<a class="jxr_linenumber" name="338" href="#338">338</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeHFileRefs(String peerId, List&lt;String&gt; files) {
-<a class="jxr_linenumber" name="339" href="#339">339</a>     String peerZnode = ZKUtil.joinZNode(<strong class="jxr_keyword">this</strong>.hfileRefsZNode, peerId);
-<a class="jxr_linenumber" name="340" href="#340">340</a>     <strong class="jxr_keyword">boolean</strong> debugEnabled = LOG.isDebugEnabled();
-<a class="jxr_linenumber" name="341" href="#341">341</a>     <strong class="jxr_keyword">if</strong> (debugEnabled) {
-<a class="jxr_linenumber" name="342" href="#342">342</a>       LOG.debug(<span class="jxr_string">"Removing hfile references "</span> + files + <span class="jxr_string">" from queue "</span> + peerZnode);
-<a class="jxr_linenumber" name="343" href="#343">343</a>     }
-<a class="jxr_linenumber" name="344" href="#344">344</a>     List&lt;ZKUtilOp&gt; listOfOps = <strong class="jxr_keyword">new</strong> ArrayList&lt;ZKUtil.ZKUtilOp&gt;();
-<a class="jxr_linenumber" name="345" href="#345">345</a>     <strong class="jxr_keyword">int</strong> size = files.size();
-<a class="jxr_linenumber" name="346" href="#346">346</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; size; i++) {
-<a class="jxr_linenumber" name="347" href="#347">347</a>       listOfOps.add(ZKUtilOp.deleteNodeFailSilent(ZKUtil.joinZNode(peerZnode, files.get(i))));
-<a class="jxr_linenumber" name="348" href="#348">348</a>     }
+<a class="jxr_linenumber" name="257" href="#257">257</a> <em class="jxr_javadoccomment">   * @peerId peerId pertaining to the queue need to be copied</em>
+<a class="jxr_linenumber" name="258" href="#258">258</a> <em class="jxr_javadoccomment">   */</em>
+<a class="jxr_linenumber" name="259" href="#259">259</a>   <strong class="jxr_keyword">private</strong> Pair&lt;String, SortedSet&lt;String&gt;&gt; moveQueueUsingMulti(String znode, String peerId) {
+<a class="jxr_linenumber" name="260" href="#260">260</a>     <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="261" href="#261">261</a>       <em class="jxr_comment">// hbase/replication/rs/deadrs</em>
+<a class="jxr_linenumber" name="262" href="#262">262</a>       String deadRSZnodePath = ZKUtil.joinZNode(<strong class="jxr_keyword">this</strong>.queuesZNode, znode);
+<a class="jxr_linenumber" name="263" href="#263">263</a>       List&lt;ZKUtilOp&gt; listOfOps = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
+<a class="jxr_linenumber" name="264" href="#264">264</a>       <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueInfo.html">ReplicationQueueInfo</a> replicationQueueInfo = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueInfo.html">ReplicationQueueInfo</a>(peerId);
+<a class="jxr_linenumber" name="265" href="#265">265</a>
+<a class="jxr_linenumber" name="266" href="#266">266</a>       String newPeerId = peerId + <span class="jxr_string">"-"</span> + znode;
+<a class="jxr_linenumber" name="267" href="#267">267</a>       String newPeerZnode = ZKUtil.joinZNode(<strong class="jxr_keyword">this</strong>.myQueuesZnode, newPeerId);
+<a class="jxr_linenumber" name="268" href="#268">268</a>       <em class="jxr_comment">// check the logs queue for the old peer cluster</em>
+<a class="jxr_linenumber" name="269" href="#269">269</a>       String oldClusterZnode = ZKUtil.joinZNode(deadRSZnodePath, peerId);
+<a class="jxr_linenumber" name="270" href="#270">270</a>       List&lt;String&gt; wals = ZKUtil.listChildrenNoWatch(<strong class="jxr_keyword">this</strong>.zookeeper, oldClusterZnode);
+<a class="jxr_linenumber" name="271" href="#271">271</a>
+<a class="jxr_linenumber" name="272" href="#272">272</a>       <strong class="jxr_keyword">if</strong> (!peerExists(replicationQueueInfo.getPeerId())) {
+<a class="jxr_linenumber" name="273" href="#273">273</a>         LOG.warn(<span class="jxr_string">"Peer "</span> + replicationQueueInfo.getPeerId() +
+<a class="jxr_linenumber" name="274" href="#274">274</a>                 <span class="jxr_string">" didn't exist, will move its queue to avoid the failure of multi op"</span>);
+<a class="jxr_linenumber" name="275" href="#275">275</a>         <strong class="jxr_keyword">for</strong> (String wal : wals) {
+<a class="jxr_linenumber" name="276" href="#276">276</a>           String oldWalZnode = ZKUtil.joinZNode(oldClusterZnode, wal);
+<a class="jxr_linenumber" name="277" href="#277">277</a>           listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldWalZnode));
+<a class="jxr_linenumber" name="278" href="#278">278</a>         }
+<a class="jxr_linenumber" name="279" href="#279">279</a>         listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));
+<a class="jxr_linenumber" name="280" href="#280">280</a>         ZKUtil.multiOrSequential(<strong class="jxr_keyword">this</strong>.zookeeper, listOfOps, false);
+<a class="jxr_linenumber" name="281" href="#281">281</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="282" href="#282">282</a>       }
+<a class="jxr_linenumber" name="283" href="#283">283</a>
+<a class="jxr_linenumber" name="284" href="#284">284</a>       SortedSet&lt;String&gt; logQueue = <strong class="jxr_keyword">new</strong> TreeSet&lt;&gt;();
+<a class="jxr_linenumber" name="285" href="#285">285</a>       <strong class="jxr_keyword">if</strong> (wals == <strong class="jxr_keyword">null</strong> || wals.size() == 0) {
+<a class="jxr_linenumber" name="286" href="#286">286</a>         listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));
+<a class="jxr_linenumber" name="287" href="#287">287</a>       } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="288" href="#288">288</a>         <em class="jxr_comment">// create the new cluster znode</em>
+<a class="jxr_linenumber" name="289" href="#289">289</a>         <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKUtil.html">ZKUtilOp</a> op = ZKUtilOp.createAndFailSilent(newPeerZnode, HConstants.EMPTY_BYTE_ARRAY);
+<a class="jxr_linenumber" name="290" href="#290">290</a>         listOfOps.add(op);
+<a class="jxr_linenumber" name="291" href="#291">291</a>         <em class="jxr_comment">// get the offset of the logs and set it to new znodes</em>
+<a class="jxr_linenumber" name="292" href="#292">292</a>         <strong class="jxr_keyword">for</strong> (String wal : wals) {
+<a class="jxr_linenumber" name="293" href="#293">293</a>           String oldWalZnode = ZKUtil.joinZNode(oldClusterZnode, wal);
+<a class="jxr_linenumber" name="294" href="#294">294</a>           byte[] logOffset = ZKUtil.getData(<strong class="jxr_keyword">this</strong>.zookeeper, oldWalZnode);
+<a class="jxr_linenumber" name="295" href="#295">295</a>           LOG.debug(<span class="jxr_string">"Creating "</span> + wal + <span class="jxr_string">" with data "</span> + Bytes.toString(logOffset));
+<a class="jxr_linenumber" name="296" href="#296">296</a>           String newLogZnode = ZKUtil.joinZNode(newPeerZnode, wal);
+<a class="jxr_linenumber" name="297" href="#297">297</a>           listOfOps.add(ZKUtilOp.createAndFailSilent(newLogZnode, logOffset));
+<a class="jxr_linenumber" name="298" href="#298">298</a>           listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldWalZnode));
+<a class="jxr_linenumber" name="299" href="#299">299</a>           logQueue.add(wal);
+<a class="jxr_linenumber" name="300" href="#300">300</a>         }
+<a class="jxr_linenumber" name="301" href="#301">301</a>         <em class="jxr_comment">// add delete op for peer</em>
+<a class="jxr_linenumber" name="302" href="#302">302</a>         listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));
+<a class="jxr_linenumber" name="303" href="#303">303</a>
+<a class="jxr_linenumber" name="304" href="#304">304</a>         <strong class="jxr_keyword">if</strong> (LOG.isTraceEnabled())
+<a class="jxr_linenumber" name="305" href="#305">305</a>           LOG.trace(<span class="jxr_string">" The multi list size is: "</span> + listOfOps.size());
+<a class="jxr_linenumber" name="306" href="#306">306</a>       }
+<a class="jxr_linenumber" name="307" href="#307">307</a>       ZKUtil.multiOrSequential(<strong class="jxr_keyword">this</strong>.zookeeper, listOfOps, false);
+<a class="jxr_linenumber" name="308" href="#308">308</a>
+<a class="jxr_linenumber" name="309" href="#309">309</a>       LOG.info(<span class="jxr_string">"Atomically moved "</span> + znode + <span class="jxr_string">"/"</span> + peerId + <span class="jxr_string">"'s WALs to my queue"</span>);
+<a class="jxr_linenumber" name="310" href="#310">310</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Pair&lt;&gt;(newPeerId, logQueue);
+<a class="jxr_linenumber" name="311" href="#311">311</a>     } <strong class="jxr_keyword">catch</strong> (KeeperException e) {
+<a class="jxr_linenumber" name="312" href="#312">312</a>       <em class="jxr_comment">// Multi call failed; it looks like some other regionserver took away the logs.</em>
+<a class="jxr_linenumber" name="313" href="#313">313</a>       LOG.warn(<span class="jxr_string">"Got exception in copyQueuesFromRSUsingMulti: "</span>, e);
+<a class="jxr_linenumber" name="314" href="#314">314</a>     } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
+<a class="jxr_linenumber" name="315" href="#315">315</a>       LOG.warn(<span class="jxr_string">"Got exception in copyQueuesFromRSUsingMulti: "</span>, e);
+<a class="jxr_linenumber" name="316" href="#316">316</a>       Thread.currentThread().interrupt();
+<a class="jxr_linenumber" name="317" href="#317">317</a>     }
+<a class="jxr_linenumber" name="318" href="#318">318</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="319" href="#319">319</a>   }
+<a class="jxr_linenumber" name="320" href="#320">320</a>
+<a class="jxr_linenumber" name="321" href="#321">321</a>   @Override
+<a class="jxr_linenumber" name="322" href="#322">322</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addHFileRefs(String peerId, List&lt;String&gt; files) <strong class="jxr_keyword">throws</strong> ReplicationException {
+<a class="jxr_linenumber" name="323" href="#323">323</a>     String peerZnode = ZKUtil.joinZNode(<strong class="jxr_keyword">this</strong>.hfileRefsZNode, peerId);
+<a class="jxr_linenumber" name="324" href="#324">324</a>     <strong class="jxr_keyword">boolean</strong> debugEnabled = LOG.isDebugEnabled();
+<a class="jxr_linenumber" name="325" href="#325">325</a>     <strong class="jxr_keyword">if</strong> (debugEnabled) {
+<a class="jxr_linenumber" name="326" href="#326">326</a>       LOG.debug(<span class="jxr_string">"Adding hfile references "</span> + files + <span class="jxr_string">" in queue "</span> + peerZnode);
+<a class="jxr_linenumber" name="327" href="#327">327</a>     }
+<a class="jxr_linenumber" name="328" href="#328">328</a>     List&lt;ZKUtilOp&gt; listOfOps = <strong class="jxr_keyword">new</strong> ArrayList&lt;ZKUtil.ZKUtilOp&gt;();
+<a class="jxr_linenumber" name="329" href="#329">329</a>     <strong class="jxr_keyword">int</strong> size = files.size();
+<a class="jxr_linenumber" name="330" href="#330">330</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; size; i++) {
+<a class="jxr_linenumber" name="331" href="#331">331</a>       listOfOps.add(ZKUtilOp.createAndFailSilent(ZKUtil.joinZNode(peerZnode, files.get(i)),
+<a class="jxr_linenumber" name="332" href="#332">332</a>         HConstants.EMPTY_BYTE_ARRAY));
+<a class="jxr_linenumber" name="333" href="#333">333</a>     }
+<a class="jxr_linenumber" name="334" href="#334">334</a>     <strong class="jxr_keyword">if</strong> (debugEnabled) {
+<a class="jxr_linenumber" name="335" href="#335">335</a>       LOG.debug(<span class="jxr_string">" The multi list size for adding hfile references in zk for node "</span> + peerZnode
+<a class="jxr_linenumber" name="336" href="#336">336</a>           + <span class="jxr_string">" is "</span> + listOfOps.size());
+<a class="jxr_linenumber" name="337" href="#337">337</a>     }
+<a class="jxr_linenumber" name="338" href="#338">338</a>     <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="339" href="#339">339</a>       ZKUtil.multiOrSequential(<strong class="jxr_keyword">this</strong>.zookeeper, listOfOps, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="340" href="#340">340</a>     } <strong class="jxr_keyword">catch</strong> (KeeperException e) {
+<a class="jxr_linenumber" name="341" href="#341">341</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html">ReplicationException</a>(<span class="jxr_string">"Failed to create hfile reference znode="</span> + e.getPath(), e);
+<a class="jxr_linenumber" name="342" href="#342">342</a>     }
+<a class="jxr_linenumber" name="343" href="#343">343</a>   }
+<a class="jxr_linenumber" name="344" href="#344">344</a>
+<a class="jxr_linenumber" name="345" href="#345">345</a>   @Override
+<a class="jxr_linenumber" name="346" href="#346">346</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeHFileRefs(String peerId, List&lt;String&gt; files) {
+<a class="jxr_linenumber" name="347" href="#347">347</a>     String peerZnode = ZKUtil.joinZNode(<strong class="jxr_keyword">this</strong>.hfileRefsZNode, peerId);
+<a class="jxr_linenumber" name="348" href="#348">348</a>     <strong class="jxr_keyword">boolean</strong> debugEnabled = LOG.isDebugEnabled();
 <a class="jxr_linenumber" name="349" href="#349">349</a>     <strong class="jxr_keyword">if</strong> (debugEnabled) {
-<a class="jxr_linenumber" name="350" href="#350">350</a>       LOG.debug(<span class="jxr_string">" The multi list size for removing hfile references in zk for node "</span> + peerZnode
-<a class="jxr_linenumber" name="351" href="#351">351</a>           + <span class="jxr_string">" is "</span> + listOfOps.size());
-<a class="jxr_linenumber" name="352" href="#352">352</a>     }
-<a class="jxr_linenumber" name="353" href="#353">353</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="354" href="#354">354</a>       ZKUtil.multiOrSequential(<strong class="jxr_keyword">this</strong>.zookeeper, listOfOps, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="355" href="#355">355</a>     } <strong class="jxr_keyword">catch</strong> (KeeperException e) {
-<a class="jxr_linenumber" name="356" href="#356">356</a>       LOG.error(<span class="jxr_string">"Failed to remove hfile reference znode="</span> + e.getPath(), e);
-<a class="jxr_linenumber" name="357" href="#357">357</a>     }
-<a class="jxr_linenumber" name="358" href="#358">358</a>   }
-<a class="jxr_linenumber" name="359" href="#359">359</a>
-<a class="jxr_linenumber" name="360" href="#360">360</a>   @Override
-<a class="jxr_linenumber" name="361" href="#361">361</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addPeerToHFileRefs(String peerId) <strong class="jxr_keyword">throws</strong> ReplicationException {
-<a class="jxr_linenumber" name="362" href="#362">362</a>     String peerZnode = ZKUtil.joinZNode(<strong class="jxr_keyword">this</strong>.hfileRefsZNode, peerId);
-<a class="jxr_linenumber" name="363" href="#363">363</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="364" href="#364">364</a>       <strong class="jxr_keyword">if</strong> (ZKUtil.checkExists(<strong class="jxr_keyword">this</strong>.zookeeper, peerZnode) == -1) {
-<a class="jxr_linenumber" name="365" href="#365">365</a>         LOG.info(<span class="jxr_string">"Adding peer "</span> + peerId + <span class="jxr_string">" to hfile reference queue."</span>);
-<a class="jxr_linenumber" name="366" href="#366">366</a>         ZKUtil.createWithParents(<strong class="jxr_keyword">this</strong>.zookeeper, peerZnode);
-<a class="jxr_linenumber" name="367" href="#367">367</a>       }
-<a class="jxr_linenumber" name="368" href="#368">368</a>     } <strong class="jxr_keyword">catch</strong> (KeeperException e) {
-<a class="jxr_linenumber" name="369" href="#369">369</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html">ReplicationException</a>(<span class="jxr_string">"Failed to add peer "</span> + peerId + <span class="jxr_string">" to hfile reference queue."</span>,
-<a class="jxr_linenumber" name="370" href="#370">370</a>           e);
-<a class="jxr_linenumber" name="371" href="#371">371</a>     }
-<a class="jxr_linenumber" name="372" href="#372">372</a>   }
-<a class="jxr_linenumber" name="373" href="#373">373</a>
-<a class="jxr_linenumber" name="374" href="#374">374</a>   @Override
-<a class="jxr_linenumber" name="375" href="#375">375</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removePeerFromHFileRefs(String peerId) {
-<a class="jxr_linenumber" name="376" href="#376">376</a>     <strong class="jxr_keyword">final</strong> String peerZnode = ZKUtil.joinZNode(<strong class="jxr_keyword">this</strong>.hfileRefsZNode, peerId);
-<a class="jxr_linenumber" name="377" href="#377">377</a>     <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="378" href="#378">378</a>       <strong class="jxr_keyword">if</strong> (ZKUtil.checkExists(<strong class="jxr_keyword">this</strong>.zookeeper, peerZnode) == -1) {
-<a class="jxr_linenumber" name="379" href="#379">379</a>         <strong class="jxr_keyword">if</strong> (LOG.isDebugEnabled()) {
-<a class="jxr_linenumber" name="380" href="#380">380</a>           LOG.debug(<span class="jxr_string">"Peer "</span> + peerZnode + <span class="jxr_string">" not found in hfile reference queue."</span>);
-<a class="jxr_linenumber" name="381" href="#381">381</a>         }
-<a class="jxr_linenumber" name="382" href="#382">382</a>         <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="383" href="#383">383</a>       } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="384" href="#384">384</a>         LOG.info(<span class="jxr_string">"Removing peer "</span> + peerZnode + <span class="jxr_string">" from hfile reference queue."</span>);
-<a class="jxr_linenumber" name="385" href="#385">385</a>         ZKUtil.deleteNodeRecursively(<strong class="jxr_keyword">this</strong>.zookeeper, peerZnode);
-<a class="jxr_linenumber" name="386" href="#386">386</a>       }
-<a class="jxr_linenumber" name="387" href="#387">387</a>     } <strong class="jxr_keyword">catch</strong> (KeeperException e) {
-<a class="jxr_linenumber" name="388" href="#388">388</a>       LOG.error(<span class="jxr_string">"Ignoring the exception to remove peer "</span> + peerId + <span class="jxr_string">" from hfile reference queue."</span>,
-<a class="jxr_linenumber" name="389" href="#389">389</a>         e);
-<a class="jxr_linenumber" name="390" href="#390">390</a>     }
-<a class="jxr_linenumber" name="391" href="#391">391</a>   }
-<a class="jxr_linenumber" name="392" href="#392">392</a> }
+<a class="jxr_linenumber" name="350" href="#350">350</a>       LOG.debug(<span class="jxr_string">"Removing hfile references "</span> + files + <span class="jxr_string">" from queue "</span> + peerZnode);
+<a class="jxr_linenumber" name="351" href="#351">351</a>     }
+<a class="jxr_linenumber" name="352" href="#352">352</a>     List&lt;ZKUtilOp&gt; listOfOps = <strong class="jxr_keyword">new</strong> ArrayList&lt;ZKUtil.ZKUtilOp&gt;();
+<a class="jxr_linenumber" name="353" href="#353">353</a>     <strong class="jxr_keyword">int</strong> size = files.size();
+<a class="jxr_linenumber" name="354" href="#354">354</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; size; i++) {
+<a class="jxr_linenumber" name="355" href="#355">355</a>       listOfOps.add(ZKUtilOp.deleteNodeFailSilent(ZKUtil.joinZNode(peerZnode, files.get(i))));
+<a class="jxr_linenumber" name="356" href="#356">356</a>     }
+<a class="jxr_linenumber" name="357" href="#357">357</a>     <strong class="jxr_keyword">if</strong> (debugEnabled) {
+<a class="jxr_linenumber" name="358" href="#358">358</a>       LOG.debug(<span class="jxr_string">" The multi list size for removing hfile references in zk for node "</span> + peerZnode
+<a class="jxr_linenumber" name="359" href="#359">359</a>           + <span class="jxr_string">" is "</span> + listOfOps.size());
+<a class="jxr_linenumber" name="360" href="#360">360</a>     }
+<a class="jxr_linenumber" name="361" href="#361">361</a>     <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="362" href="#362">362</a>       ZKUtil.multiOrSequential(<strong class="jxr_keyword">this</strong>.zookeeper, listOfOps, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="363" href="#363">363</a>     } <strong class="jxr_keyword">catch</strong> (KeeperException e) {
+<a class="jxr_linenumber" name="364" href="#364">364</a>       LOG.error(<span class="jxr_string">"Failed to remove hfile reference znode="</span> + e.getPath(), e);
+<a class="jxr_linenumber" name="365" href="#365">365</a>     }
+<a class="jxr_linenumber" name="366" href="#366">366</a>   }
+<a class="jxr_linenumber" name="367" href="#367">367</a>
+<a class="jxr_linenumber" name="368" href="#368">368</a>   @Override
+<a class="jxr_linenumber" name="369" href="#369">369</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addPeerToHFileRefs(String peerId) <strong class="jxr_keyword">throws</strong> ReplicationException {
+<a class="jxr_linenumber" name="370" href="#370">370</a>     String peerZnode = ZKUtil.joinZNode(<strong class="jxr_keyword">this</strong>.hfileRefsZNode, peerId);
+<a class="jxr_linenumber" name="371" href="#371">371</a>     <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="372" href="#372">372</a>       <strong class="jxr_keyword">if</strong> (ZKUtil.checkExists(<strong class="jxr_keyword">this</strong>.zookeeper, peerZnode) == -1) {
+<a class="jxr_linenumber" name="373" href="#373">373</a>         LOG.info(<span class="jxr_string">"Adding peer "</span> + peerId + <span class="jxr_string">" to hfile reference queue."</span>);
+<a class="jxr_linenumber" name="374" href="#374">374</a>         ZKUtil.createWithParents(<strong class="jxr_keyword">this</strong>.zookeeper, peerZnode);
+<a class="jxr_linenumber" name="375" href="#375">375</a>       }
+<a class="jxr_linenumber" name="376" href="#376">376</a>     } <strong class="jxr_keyword">catch</strong> (KeeperException e) {
+<a class="jxr_linenumber" name="377" href="#377">377</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html">ReplicationException</a>(<span class="jxr_string">"Failed to add peer "</span> + peerId + <span class="jxr_string">" to hfile reference queue."</span>,
+<a class="jxr_linenumber" name="378" href="#378">378</a>           e);
+<a class="jxr_linenumber" name="379" href="#379">379</a>     }
+<a class="jxr_linenumber" name="380" href="#380">380</a>   }
+<a class="jxr_linenumber" name="381" href="#381">381</a>
+<a class="jxr_linenumber" name="382" href="#382">382</a>   @Override
+<a class="jxr_linenumber" name="383" href="#383">383</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removePeerFromHFileRefs(String peerId) {
+<a class="jxr_linenumber" name="384" href="#384">384</a>     <strong class="jxr_keyword">final</strong> String peerZnode = ZKUtil.joinZNode(<strong class="jxr_keyword">this</strong>.hfileRefsZNode, peerId);
+<a class="jxr_linenumber" name="385" href="#385">385</a>     <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="386" href="#386">386</a>       <strong class="jxr_keyword">if</strong> (ZKUtil.checkExists(<strong class="jxr_keyword">this</strong>.zookeeper, peerZnode) == -1) {
+<a class="jxr_linenumber" name="387" href="#387">387</a>         <strong class="jxr_keyword">if</strong> (LOG.isDebugEnabled()) {
+<a class="jxr_linenumber" name="388" href="#388">388</a>           LOG.debug(<span class="jxr_string">"Peer "</span> + peerZnode + <span class="jxr_string">" not found in hfile reference queue."</span>);
+<a class="jxr_linenumber" name="389" href="#389">389</a>         }
+<a class="jxr_linenumber" name="390" href="#390">390</a>         <strong class="jxr_keyword">return</strong>;
+<a class="jxr_linenumber" name="391" href="#391">391</a>       } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="392" href="#392">392</a>         LOG.info(<span class="jxr_string">"Removing peer "</span> + peerZnode + <span class="jxr_string">" from hfile reference queue."</span>);
+<a class="jxr_linenumber" name="393" href="#393">393</a>         ZKUtil.deleteNodeRecursively(<strong class="jxr_keyword">this</strong>.zookeeper, peerZnode);
+<a class="jxr_linenumber" name="394" href="#394">394</a>       }
+<a class="jxr_linenumber" name="395" href="#395">395</a>     } <strong class="jxr_keyword">catch</strong> (KeeperException e) {
+<a class="jxr_linenumber" name="396" href="#396">396</a>       LOG.error(<span class="jxr_string">"Ignoring the exception to remove peer "</span> + peerId + <span class="jxr_string">" from hfile reference queue."</span>,
+<a class="jxr_linenumber" name="397" href="#397">397</a>         e);
+<a class="jxr_linenumber" name="398" href="#398">398</a>     }
+<a class="jxr_linenumber" name="399" href="#399">399</a>   }
+<a class="jxr_linenumber" name="400" href="#400">400</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref/org/apache/hadoop/hbase/tmpl/common/TaskMonitorTmpl.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/hadoop/hbase/tmpl/common/TaskMonitorTmpl.html b/xref/org/apache/hadoop/hbase/tmpl/common/TaskMonitorTmpl.html
index 7724787..0485e12 100644
--- a/xref/org/apache/hadoop/hbase/tmpl/common/TaskMonitorTmpl.html
+++ b/xref/org/apache/hadoop/hbase/tmpl/common/TaskMonitorTmpl.html
@@ -24,8 +24,8 @@
 <a class="jxr_linenumber" name="14" href="#14">14</a>    signature = <span class="jxr_string">"E1689F04F06BAD5E628913C375AEB2C0"</span>,
 <a class="jxr_linenumber" name="15" href="#15">15</a>    optionalArguments = {
 <a class="jxr_linenumber" name="16" href="#16">16</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"filter"</span>, type = <span class="jxr_string">"String"</span>),
-<a class="jxr_linenumber" name="17" href="#17">17</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"taskMonitor"</span>, type = <span class="jxr_string">"TaskMonitor"</span>),
-<a class="jxr_linenumber" name="18" href="#18">18</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"format"</span>, type = <span class="jxr_string">"String"</span>)})
+<a class="jxr_linenumber" name="17" href="#17">17</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"format"</span>, type = <span class="jxr_string">"String"</span>),
+<a class="jxr_linenumber" name="18" href="#18">18</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"taskMonitor"</span>, type = <span class="jxr_string">"TaskMonitor"</span>)})
 <a class="jxr_linenumber" name="19" href="#19">19</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/hadoop/hbase/tmpl/common/TaskMonitorTmpl.html">TaskMonitorTmpl</a>
 <a class="jxr_linenumber" name="20" href="#20">20</a>    <strong class="jxr_keyword">extends</strong> org.jamon.AbstractTemplateProxy
 <a class="jxr_linenumber" name="21" href="#21">21</a>  {
@@ -72,40 +72,40 @@
 <a class="jxr_linenumber" name="62" href="#62">62</a>        <strong class="jxr_keyword">return</strong> m_filter__IsNotDefault;
 <a class="jxr_linenumber" name="63" href="#63">63</a>      }
 <a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_filter__IsNotDefault;
-<a class="jxr_linenumber" name="65" href="#65">65</a>      <em class="jxr_comment">// 25, 1</em>
-<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setTaskMonitor(<a href="../../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.html">TaskMonitor</a> taskMonitor)
+<a class="jxr_linenumber" name="65" href="#65">65</a>      <em class="jxr_comment">// 27, 1</em>
+<a class="jxr_linenumber" name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFormat(String format)
 <a class="jxr_linenumber" name="67" href="#67">67</a>      {
-<a class="jxr_linenumber" name="68" href="#68">68</a>        <em class="jxr_comment">// 25, 1</em>
-<a class="jxr_linenumber" name="69" href="#69">69</a>        m_taskMonitor = taskMonitor;
-<a class="jxr_linenumber" name="70" href="#70">70</a>        m_taskMonitor__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="68" href="#68">68</a>        <em class="jxr_comment">// 27, 1</em>
+<a class="jxr_linenumber" name="69" href="#69">69</a>        m_format = format;
+<a class="jxr_linenumber" name="70" href="#70">70</a>        m_format__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="71" href="#71">71</a>      }
-<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.html">TaskMonitor</a> getTaskMonitor()
+<a class="jxr_linenumber" name="72" href="#72">72</a>      <strong class="jxr_keyword">public</strong> String getFormat()
 <a class="jxr_linenumber" name="73" href="#73">73</a>      {
-<a class="jxr_linenumber" name="74" href="#74">74</a>        <strong class="jxr_keyword">return</strong> m_taskMonitor;
+<a class="jxr_linenumber" name="74" href="#74">74</a>        <strong class="jxr_keyword">return</strong> m_format;
 <a class="jxr_linenumber" name="75" href="#75">75</a>      }
-<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.html">TaskMonitor</a> m_taskMonitor;
-<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getTaskMonitor__IsNotDefault()
+<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> String m_format;
+<a class="jxr_linenumber" name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getFormat__IsNotDefault()
 <a class="jxr_linenumber" name="78" href="#78">78</a>      {
-<a class="jxr_linenumber" name="79" href="#79">79</a>        <strong class="jxr_keyword">return</strong> m_taskMonitor__IsNotDefault;
+<a class="jxr_linenumber" name="79" href="#79">79</a>        <strong class="jxr_keyword">return</strong> m_format__IsNotDefault;
 <a class="jxr_linenumber" name="80" href="#80">80</a>      }
-<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_taskMonitor__IsNotDefault;
-<a class="jxr_linenumber" name="82" href="#82">82</a>      <em class="jxr_comment">// 27, 1</em>
-<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFormat(String format)
+<a class="jxr_linenumber" name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_format__IsNotDefault;
+<a class="jxr_linenumber" name="82" href="#82">82</a>      <em class="jxr_comment">// 25, 1</em>
+<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setTaskMonitor(<a href="../../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.html">TaskMonitor</a> taskMonitor)
 <a class="jxr_linenumber" name="84" href="#84">84</a>      {
-<a class="jxr_linenumber" name="85" href="#85">85</a>        <em class="jxr_comment">// 27, 1</em>
-<a class="jxr_linenumber" name="86" href="#86">86</a>        m_format = format;
-<a class="jxr_linenumber" name="87" href="#87">87</a>        m_format__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="85" href="#85">85</a>        <em class="jxr_comment">// 25, 1</em>
+<a class="jxr_linenumber" name="86" href="#86">86</a>        m_taskMonitor = taskMonitor;
+<a class="jxr_linenumber" name="87" href="#87">87</a>        m_taskMonitor__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="88" href="#88">88</a>      }
-<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">public</strong> String getFormat()
+<a class="jxr_linenumber" name="89" href="#89">89</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.html">TaskMonitor</a> getTaskMonitor()
 <a class="jxr_linenumber" name="90" href="#90">90</a>      {
-<a class="jxr_linenumber" name="91" href="#91">91</a>        <strong class="jxr_keyword">return</strong> m_format;
+<a class="jxr_linenumber" name="91" href="#91">91</a>        <strong class="jxr_keyword">return</strong> m_taskMonitor;
 <a class="jxr_linenumber" name="92" href="#92">92</a>      }
-<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">private</strong> String m_format;
-<a class="jxr_linenumber" name="94" href="#94">94</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getFormat__IsNotDefault()
+<a class="jxr_linenumber" name="93" href="#93">93</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.html">TaskMonitor</a> m_taskMonitor;
+<a class="jxr_linenumber" name="94" href="#94">94</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getTaskMonitor__IsNotDefault()
 <a class="jxr_linenumber" name="95" href="#95">95</a>      {
-<a class="jxr_linenumber" name="96" href="#96">96</a>        <strong class="jxr_keyword">return</strong> m_format__IsNotDefault;
+<a class="jxr_linenumber" name="96" href="#96">96</a>        <strong class="jxr_keyword">return</strong> m_taskMonitor__IsNotDefault;
 <a class="jxr_linenumber" name="97" href="#97">97</a>      }
-<a class="jxr_linenumber" name="98" href="#98">98</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_format__IsNotDefault;
+<a class="jxr_linenumber" name="98" href="#98">98</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_taskMonitor__IsNotDefault;
 <a class="jxr_linenumber" name="99" href="#99">99</a>    }
 <a class="jxr_linenumber" name="100" href="#100">100</a>   @Override
 <a class="jxr_linenumber" name="101" href="#101">101</a>   <strong class="jxr_keyword">protected</strong> org.jamon.AbstractTemplateProxy.ImplData makeImplData()
@@ -124,17 +124,17 @@
 <a class="jxr_linenumber" name="114" href="#114">114</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="115" href="#115">115</a>   }
 <a class="jxr_linenumber" name="116" href="#116">116</a>
-<a class="jxr_linenumber" name="117" href="#117">117</a>   <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.html">TaskMonitor</a> taskMonitor;
-<a class="jxr_linenumber" name="118" href="#118">118</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl setTaskMonitor(<a href="../../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.html">TaskMonitor</a> p_taskMonitor)
+<a class="jxr_linenumber" name="117" href="#117">117</a>   <strong class="jxr_keyword">protected</strong> String format;
+<a class="jxr_linenumber" name="118" href="#118">118</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl setFormat(String p_format)
 <a class="jxr_linenumber" name="119" href="#119">119</a>   {
-<a class="jxr_linenumber" name="120" href="#120">120</a>     (getImplData()).setTaskMonitor(p_taskMonitor);
+<a class="jxr_linenumber" name="120" href="#120">120</a>     (getImplData()).setFormat(p_format);
 <a class="jxr_linenumber" name="121" href="#121">121</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="122" href="#122">122</a>   }
 <a class="jxr_linenumber" name="123" href="#123">123</a>
-<a class="jxr_linenumber" name="124" href="#124">124</a>   <strong class="jxr_keyword">protected</strong> String format;
-<a class="jxr_linenumber" name="125" href="#125">125</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl setFormat(String p_format)
+<a class="jxr_linenumber" name="124" href="#124">124</a>   <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.html">TaskMonitor</a> taskMonitor;
+<a class="jxr_linenumber" name="125" href="#125">125</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl setTaskMonitor(<a href="../../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.html">TaskMonitor</a> p_taskMonitor)
 <a class="jxr_linenumber" name="126" href="#126">126</a>   {
-<a class="jxr_linenumber" name="127" href="#127">127</a>     (getImplData()).setFormat(p_format);
+<a class="jxr_linenumber" name="127" href="#127">127</a>     (getImplData()).setTaskMonitor(p_taskMonitor);
 <a class="jxr_linenumber" name="128" href="#128">128</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="129" href="#129">129</a>   }
 <a class="jxr_linenumber" name="130" href="#130">130</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref/org/apache/hadoop/hbase/tmpl/common/TaskMonitorTmplImpl.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/hadoop/hbase/tmpl/common/TaskMonitorTmplImpl.html b/xref/org/apache/hadoop/hbase/tmpl/common/TaskMonitorTmplImpl.html
index 84edfba..bbb418d 100644
--- a/xref/org/apache/hadoop/hbase/tmpl/common/TaskMonitorTmplImpl.html
+++ b/xref/org/apache/hadoop/hbase/tmpl/common/TaskMonitorTmplImpl.html
@@ -26,21 +26,21 @@
 <a class="jxr_linenumber" name="16" href="#16">16</a>  
 <a class="jxr_linenumber" name="17" href="#17">17</a>  {
 <a class="jxr_linenumber" name="18" href="#18">18</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String filter;
-<a class="jxr_linenumber" name="19" href="#19">19</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.html">TaskMonitor</a> taskMonitor;
-<a class="jxr_linenumber" name="20" href="#20">20</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String format;
+<a class="jxr_linenumber" name="19" href="#19">19</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String format;
+<a class="jxr_linenumber" name="20" href="#20">20</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.html">TaskMonitor</a> taskMonitor;
 <a class="jxr_linenumber" name="21" href="#21">21</a>    <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.common.TaskMonitorTmpl.ImplData p_implData)
 <a class="jxr_linenumber" name="22" href="#22">22</a>    {
 <a class="jxr_linenumber" name="23" href="#23">23</a>      <strong class="jxr_keyword">if</strong>(! p_implData.getFilter__IsNotDefault())
 <a class="jxr_linenumber" name="24" href="#24">24</a>      {
 <a class="jxr_linenumber" name="25" href="#25">25</a>        p_implData.setFilter(<span class="jxr_string">"general"</span>);
 <a class="jxr_linenumber" name="26" href="#26">26</a>      }
-<a class="jxr_linenumber" name="27" href="#27">27</a>      <strong class="jxr_keyword">if</strong>(! p_implData.getTaskMonitor__IsNotDefault())
+<a class="jxr_linenumber" name="27" href="#27">27</a>      <strong class="jxr_keyword">if</strong>(! p_implData.getFormat__IsNotDefault())
 <a class="jxr_linenumber" name="28" href="#28">28</a>      {
-<a class="jxr_linenumber" name="29" href="#29">29</a>        p_implData.setTaskMonitor(TaskMonitor.get());
+<a class="jxr_linenumber" name="29" href="#29">29</a>        p_implData.setFormat(<span class="jxr_string">"html"</span>);
 <a class="jxr_linenumber" name="30" href="#30">30</a>      }
-<a class="jxr_linenumber" name="31" href="#31">31</a>      <strong class="jxr_keyword">if</strong>(! p_implData.getFormat__IsNotDefault())
+<a class="jxr_linenumber" name="31" href="#31">31</a>      <strong class="jxr_keyword">if</strong>(! p_implData.getTaskMonitor__IsNotDefault())
 <a class="jxr_linenumber" name="32" href="#32">32</a>      {
-<a class="jxr_linenumber" name="33" href="#33">33</a>        p_implData.setFormat(<span class="jxr_string">"html"</span>);
+<a class="jxr_linenumber" name="33" href="#33">33</a>        p_implData.setTaskMonitor(TaskMonitor.get());
 <a class="jxr_linenumber" name="34" href="#34">34</a>      }
 <a class="jxr_linenumber" name="35" href="#35">35</a>      <strong class="jxr_keyword">return</strong> p_implData;
 <a class="jxr_linenumber" name="36" href="#36">36</a>    }
@@ -48,8 +48,8 @@
 <a class="jxr_linenumber" name="38" href="#38">38</a>    {
 <a class="jxr_linenumber" name="39" href="#39">39</a>      <strong class="jxr_keyword">super</strong>(p_templateManager, __jamon_setOptionalArguments(p_implData));
 <a class="jxr_linenumber" name="40" href="#40">40</a>      filter = p_implData.getFilter();
-<a class="jxr_linenumber" name="41" href="#41">41</a>      taskMonitor = p_implData.getTaskMonitor();
-<a class="jxr_linenumber" name="42" href="#42">42</a>      format = p_implData.getFormat();
+<a class="jxr_linenumber" name="41" href="#41">41</a>      format = p_implData.getFormat();
+<a class="jxr_linenumber" name="42" href="#42">42</a>      taskMonitor = p_implData.getTaskMonitor();
 <a class="jxr_linenumber" name="43" href="#43">43</a>    }
 <a class="jxr_linenumber" name="44" href="#44">44</a>
 <a class="jxr_linenumber" name="45" href="#45">45</a>    @Override <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> renderNoFlush(<strong class="jxr_keyword">final</strong> java.io.Writer jamonWriter)


[21/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
index 2b27b2b..0a4e021 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
@@ -69,15 +69,15 @@
 <span class="sourceLineNo">061</span>  requiredArguments = {<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    @org.jamon.annotations.Argument(name = "master", type = "HMaster")},<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  optionalArguments = {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.65"></a>
+<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.65"></a>
 <span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;"),<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager")})<a name="line.72"></a>
+<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;")})<a name="line.72"></a>
 <span class="sourceLineNo">073</span>public class MasterStatusTmpl<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  extends org.jamon.AbstractTemplateProxy<a name="line.74"></a>
 <span class="sourceLineNo">075</span>{<a name="line.75"></a>
@@ -118,40 +118,40 @@
 <span class="sourceLineNo">110</span>      return m_master;<a name="line.110"></a>
 <span class="sourceLineNo">111</span>    }<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    private HMaster m_master;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // 21, 1<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.114"></a>
+<span class="sourceLineNo">113</span>    // 26, 1<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    public void setFilter(String filter)<a name="line.114"></a>
 <span class="sourceLineNo">115</span>    {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      // 21, 1<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      m_frags = frags;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      m_frags__IsNotDefault = true;<a name="line.118"></a>
+<span class="sourceLineNo">116</span>      // 26, 1<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      m_filter = filter;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      m_filter__IsNotDefault = true;<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.120"></a>
+<span class="sourceLineNo">120</span>    public String getFilter()<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      return m_frags;<a name="line.122"></a>
+<span class="sourceLineNo">122</span>      return m_filter;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public boolean getFrags__IsNotDefault()<a name="line.125"></a>
+<span class="sourceLineNo">124</span>    private String m_filter;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public boolean getFilter__IsNotDefault()<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      return m_frags__IsNotDefault;<a name="line.127"></a>
+<span class="sourceLineNo">127</span>      return m_filter__IsNotDefault;<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    private boolean m_frags__IsNotDefault;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // 22, 1<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.131"></a>
+<span class="sourceLineNo">129</span>    private boolean m_filter__IsNotDefault;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // 24, 1<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      // 22, 1<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      m_metaLocation = metaLocation;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      m_metaLocation__IsNotDefault = true;<a name="line.135"></a>
+<span class="sourceLineNo">133</span>      // 24, 1<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      m_deadServers = deadServers;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      m_deadServers__IsNotDefault = true;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public ServerName getMetaLocation()<a name="line.137"></a>
+<span class="sourceLineNo">137</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      return m_metaLocation;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>      return m_deadServers;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    private ServerName m_metaLocation;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.142"></a>
+<span class="sourceLineNo">141</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    public boolean getDeadServers__IsNotDefault()<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return m_metaLocation__IsNotDefault;<a name="line.144"></a>
+<span class="sourceLineNo">144</span>      return m_deadServers__IsNotDefault;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.146"></a>
+<span class="sourceLineNo">146</span>    private boolean m_deadServers__IsNotDefault;<a name="line.146"></a>
 <span class="sourceLineNo">147</span>    // 25, 1<a name="line.147"></a>
 <span class="sourceLineNo">148</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    {<a name="line.149"></a>
@@ -169,108 +169,108 @@
 <span class="sourceLineNo">161</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    }<a name="line.162"></a>
 <span class="sourceLineNo">163</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // 24, 1<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.165"></a>
+<span class="sourceLineNo">164</span>    // 27, 1<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    public void setFormat(String format)<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      // 24, 1<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      m_deadServers = deadServers;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      m_deadServers__IsNotDefault = true;<a name="line.169"></a>
+<span class="sourceLineNo">167</span>      // 27, 1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m_format = format;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      m_format__IsNotDefault = true;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.171"></a>
+<span class="sourceLineNo">171</span>    public String getFormat()<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      return m_deadServers;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>      return m_format;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public boolean getDeadServers__IsNotDefault()<a name="line.176"></a>
+<span class="sourceLineNo">175</span>    private String m_format;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean getFormat__IsNotDefault()<a name="line.176"></a>
 <span class="sourceLineNo">177</span>    {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return m_deadServers__IsNotDefault;<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      return m_format__IsNotDefault;<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    private boolean m_deadServers__IsNotDefault;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    // 29, 1<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.182"></a>
+<span class="sourceLineNo">180</span>    private boolean m_format__IsNotDefault;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    // 28, 1<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    public void setServerManager(ServerManager serverManager)<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      // 29, 1<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      m_assignmentManager = assignmentManager;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      m_assignmentManager__IsNotDefault = true;<a name="line.186"></a>
+<span class="sourceLineNo">184</span>      // 28, 1<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      m_serverManager = serverManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      m_serverManager__IsNotDefault = true;<a name="line.186"></a>
 <span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    public AssignmentManager getAssignmentManager()<a name="line.188"></a>
+<span class="sourceLineNo">188</span>    public ServerManager getServerManager()<a name="line.188"></a>
 <span class="sourceLineNo">189</span>    {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      return m_assignmentManager;<a name="line.190"></a>
+<span class="sourceLineNo">190</span>      return m_serverManager;<a name="line.190"></a>
 <span class="sourceLineNo">191</span>    }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    private AssignmentManager m_assignmentManager;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.193"></a>
+<span class="sourceLineNo">192</span>    private ServerManager m_serverManager;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    public boolean getServerManager__IsNotDefault()<a name="line.193"></a>
 <span class="sourceLineNo">194</span>    {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      return m_assignmentManager__IsNotDefault;<a name="line.195"></a>
+<span class="sourceLineNo">195</span>      return m_serverManager__IsNotDefault;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    // 23, 1<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.199"></a>
+<span class="sourceLineNo">197</span>    private boolean m_serverManager__IsNotDefault;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // 21, 1<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // 23, 1<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      m_servers = servers;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      m_servers__IsNotDefault = true;<a name="line.203"></a>
+<span class="sourceLineNo">201</span>      // 21, 1<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      m_frags = frags;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      m_frags__IsNotDefault = true;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public List&lt;ServerName&gt; getServers()<a name="line.205"></a>
+<span class="sourceLineNo">205</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.205"></a>
 <span class="sourceLineNo">206</span>    {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return m_servers;<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      return m_frags;<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    private List&lt;ServerName&gt; m_servers;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    public boolean getServers__IsNotDefault()<a name="line.210"></a>
+<span class="sourceLineNo">209</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    public boolean getFrags__IsNotDefault()<a name="line.210"></a>
 <span class="sourceLineNo">211</span>    {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return m_servers__IsNotDefault;<a name="line.212"></a>
+<span class="sourceLineNo">212</span>      return m_frags__IsNotDefault;<a name="line.212"></a>
 <span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    private boolean m_servers__IsNotDefault;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    // 27, 1<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    public void setFormat(String format)<a name="line.216"></a>
+<span class="sourceLineNo">214</span>    private boolean m_frags__IsNotDefault;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    // 22, 1<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      // 27, 1<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      m_format = format;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      m_format__IsNotDefault = true;<a name="line.220"></a>
+<span class="sourceLineNo">218</span>      // 22, 1<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      m_metaLocation = metaLocation;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      m_metaLocation__IsNotDefault = true;<a name="line.220"></a>
 <span class="sourceLineNo">221</span>    }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    public String getFormat()<a name="line.222"></a>
+<span class="sourceLineNo">222</span>    public ServerName getMetaLocation()<a name="line.222"></a>
 <span class="sourceLineNo">223</span>    {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      return m_format;<a name="line.224"></a>
+<span class="sourceLineNo">224</span>      return m_metaLocation;<a name="line.224"></a>
 <span class="sourceLineNo">225</span>    }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private String m_format;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    public boolean getFormat__IsNotDefault()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>    private ServerName m_metaLocation;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      return m_format__IsNotDefault;<a name="line.229"></a>
+<span class="sourceLineNo">229</span>      return m_metaLocation__IsNotDefault;<a name="line.229"></a>
 <span class="sourceLineNo">230</span>    }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    private boolean m_format__IsNotDefault;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    // 26, 1<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public void setFilter(String filter)<a name="line.233"></a>
+<span class="sourceLineNo">231</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    // 29, 1<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.233"></a>
 <span class="sourceLineNo">234</span>    {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      // 26, 1<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      m_filter = filter;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      m_filter__IsNotDefault = true;<a name="line.237"></a>
+<span class="sourceLineNo">235</span>      // 29, 1<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      m_assignmentManager = assignmentManager;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      m_assignmentManager__IsNotDefault = true;<a name="line.237"></a>
 <span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public String getFilter()<a name="line.239"></a>
+<span class="sourceLineNo">239</span>    public AssignmentManager getAssignmentManager()<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return m_filter;<a name="line.241"></a>
+<span class="sourceLineNo">241</span>      return m_assignmentManager;<a name="line.241"></a>
 <span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    private String m_filter;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public boolean getFilter__IsNotDefault()<a name="line.244"></a>
+<span class="sourceLineNo">243</span>    private AssignmentManager m_assignmentManager;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.244"></a>
 <span class="sourceLineNo">245</span>    {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return m_filter__IsNotDefault;<a name="line.246"></a>
+<span class="sourceLineNo">246</span>      return m_assignmentManager__IsNotDefault;<a name="line.246"></a>
 <span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    private boolean m_filter__IsNotDefault;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    // 28, 1<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    public void setServerManager(ServerManager serverManager)<a name="line.250"></a>
+<span class="sourceLineNo">248</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // 23, 1<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.250"></a>
 <span class="sourceLineNo">251</span>    {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      // 28, 1<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      m_serverManager = serverManager;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      m_serverManager__IsNotDefault = true;<a name="line.254"></a>
+<span class="sourceLineNo">252</span>      // 23, 1<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      m_servers = servers;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      m_servers__IsNotDefault = true;<a name="line.254"></a>
 <span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public ServerManager getServerManager()<a name="line.256"></a>
+<span class="sourceLineNo">256</span>    public List&lt;ServerName&gt; getServers()<a name="line.256"></a>
 <span class="sourceLineNo">257</span>    {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return m_serverManager;<a name="line.258"></a>
+<span class="sourceLineNo">258</span>      return m_servers;<a name="line.258"></a>
 <span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    private ServerManager m_serverManager;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public boolean getServerManager__IsNotDefault()<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    private List&lt;ServerName&gt; m_servers;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public boolean getServers__IsNotDefault()<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      return m_serverManager__IsNotDefault;<a name="line.263"></a>
+<span class="sourceLineNo">263</span>      return m_servers__IsNotDefault;<a name="line.263"></a>
 <span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private boolean m_serverManager__IsNotDefault;<a name="line.265"></a>
+<span class="sourceLineNo">265</span>    private boolean m_servers__IsNotDefault;<a name="line.265"></a>
 <span class="sourceLineNo">266</span>  }<a name="line.266"></a>
 <span class="sourceLineNo">267</span>  @Override<a name="line.267"></a>
 <span class="sourceLineNo">268</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.268"></a>
@@ -282,17 +282,17 @@
 <span class="sourceLineNo">274</span>    return (ImplData) super.getImplData();<a name="line.274"></a>
 <span class="sourceLineNo">275</span>  }<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  <a name="line.276"></a>
-<span class="sourceLineNo">277</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.278"></a>
+<span class="sourceLineNo">277</span>  protected String filter;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.278"></a>
 <span class="sourceLineNo">279</span>  {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    (getImplData()).setFrags(p_frags);<a name="line.280"></a>
+<span class="sourceLineNo">280</span>    (getImplData()).setFilter(p_filter);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    return this;<a name="line.281"></a>
 <span class="sourceLineNo">282</span>  }<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  <a name="line.283"></a>
-<span class="sourceLineNo">284</span>  protected ServerName metaLocation;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.285"></a>
+<span class="sourceLineNo">284</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.285"></a>
 <span class="sourceLineNo">286</span>  {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.287"></a>
+<span class="sourceLineNo">287</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>    return this;<a name="line.288"></a>
 <span class="sourceLineNo">289</span>  }<a name="line.289"></a>
 <span class="sourceLineNo">290</span>  <a name="line.290"></a>
@@ -303,45 +303,45 @@
 <span class="sourceLineNo">295</span>    return this;<a name="line.295"></a>
 <span class="sourceLineNo">296</span>  }<a name="line.296"></a>
 <span class="sourceLineNo">297</span>  <a name="line.297"></a>
-<span class="sourceLineNo">298</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.299"></a>
+<span class="sourceLineNo">298</span>  protected String format;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.299"></a>
 <span class="sourceLineNo">300</span>  {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.301"></a>
+<span class="sourceLineNo">301</span>    (getImplData()).setFormat(p_format);<a name="line.301"></a>
 <span class="sourceLineNo">302</span>    return this;<a name="line.302"></a>
 <span class="sourceLineNo">303</span>  }<a name="line.303"></a>
 <span class="sourceLineNo">304</span>  <a name="line.304"></a>
-<span class="sourceLineNo">305</span>  protected AssignmentManager assignmentManager;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.306"></a>
+<span class="sourceLineNo">305</span>  protected ServerManager serverManager;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.306"></a>
 <span class="sourceLineNo">307</span>  {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.308"></a>
+<span class="sourceLineNo">308</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.308"></a>
 <span class="sourceLineNo">309</span>    return this;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span>  <a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected List&lt;ServerName&gt; servers;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.313"></a>
+<span class="sourceLineNo">312</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    (getImplData()).setServers(p_servers);<a name="line.315"></a>
+<span class="sourceLineNo">315</span>    (getImplData()).setFrags(p_frags);<a name="line.315"></a>
 <span class="sourceLineNo">316</span>    return this;<a name="line.316"></a>
 <span class="sourceLineNo">317</span>  }<a name="line.317"></a>
 <span class="sourceLineNo">318</span>  <a name="line.318"></a>
-<span class="sourceLineNo">319</span>  protected String format;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.320"></a>
+<span class="sourceLineNo">319</span>  protected ServerName metaLocation;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.320"></a>
 <span class="sourceLineNo">321</span>  {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    (getImplData()).setFormat(p_format);<a name="line.322"></a>
+<span class="sourceLineNo">322</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.322"></a>
 <span class="sourceLineNo">323</span>    return this;<a name="line.323"></a>
 <span class="sourceLineNo">324</span>  }<a name="line.324"></a>
 <span class="sourceLineNo">325</span>  <a name="line.325"></a>
-<span class="sourceLineNo">326</span>  protected String filter;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.327"></a>
+<span class="sourceLineNo">326</span>  protected AssignmentManager assignmentManager;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.327"></a>
 <span class="sourceLineNo">328</span>  {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    (getImplData()).setFilter(p_filter);<a name="line.329"></a>
+<span class="sourceLineNo">329</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.329"></a>
 <span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
 <span class="sourceLineNo">331</span>  }<a name="line.331"></a>
 <span class="sourceLineNo">332</span>  <a name="line.332"></a>
-<span class="sourceLineNo">333</span>  protected ServerManager serverManager;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.334"></a>
+<span class="sourceLineNo">333</span>  protected List&lt;ServerName&gt; servers;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.334"></a>
 <span class="sourceLineNo">335</span>  {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.336"></a>
+<span class="sourceLineNo">336</span>    (getImplData()).setServers(p_servers);<a name="line.336"></a>
 <span class="sourceLineNo">337</span>    return this;<a name="line.337"></a>
 <span class="sourceLineNo">338</span>  }<a name="line.338"></a>
 <span class="sourceLineNo">339</span>  <a name="line.339"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
index 2b27b2b..0a4e021 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
@@ -69,15 +69,15 @@
 <span class="sourceLineNo">061</span>  requiredArguments = {<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    @org.jamon.annotations.Argument(name = "master", type = "HMaster")},<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  optionalArguments = {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.65"></a>
+<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.65"></a>
 <span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;"),<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager")})<a name="line.72"></a>
+<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;")})<a name="line.72"></a>
 <span class="sourceLineNo">073</span>public class MasterStatusTmpl<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  extends org.jamon.AbstractTemplateProxy<a name="line.74"></a>
 <span class="sourceLineNo">075</span>{<a name="line.75"></a>
@@ -118,40 +118,40 @@
 <span class="sourceLineNo">110</span>      return m_master;<a name="line.110"></a>
 <span class="sourceLineNo">111</span>    }<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    private HMaster m_master;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // 21, 1<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.114"></a>
+<span class="sourceLineNo">113</span>    // 26, 1<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    public void setFilter(String filter)<a name="line.114"></a>
 <span class="sourceLineNo">115</span>    {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      // 21, 1<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      m_frags = frags;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      m_frags__IsNotDefault = true;<a name="line.118"></a>
+<span class="sourceLineNo">116</span>      // 26, 1<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      m_filter = filter;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      m_filter__IsNotDefault = true;<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.120"></a>
+<span class="sourceLineNo">120</span>    public String getFilter()<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      return m_frags;<a name="line.122"></a>
+<span class="sourceLineNo">122</span>      return m_filter;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public boolean getFrags__IsNotDefault()<a name="line.125"></a>
+<span class="sourceLineNo">124</span>    private String m_filter;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public boolean getFilter__IsNotDefault()<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      return m_frags__IsNotDefault;<a name="line.127"></a>
+<span class="sourceLineNo">127</span>      return m_filter__IsNotDefault;<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    private boolean m_frags__IsNotDefault;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // 22, 1<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.131"></a>
+<span class="sourceLineNo">129</span>    private boolean m_filter__IsNotDefault;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // 24, 1<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      // 22, 1<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      m_metaLocation = metaLocation;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      m_metaLocation__IsNotDefault = true;<a name="line.135"></a>
+<span class="sourceLineNo">133</span>      // 24, 1<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      m_deadServers = deadServers;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      m_deadServers__IsNotDefault = true;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public ServerName getMetaLocation()<a name="line.137"></a>
+<span class="sourceLineNo">137</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      return m_metaLocation;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>      return m_deadServers;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    private ServerName m_metaLocation;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.142"></a>
+<span class="sourceLineNo">141</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    public boolean getDeadServers__IsNotDefault()<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return m_metaLocation__IsNotDefault;<a name="line.144"></a>
+<span class="sourceLineNo">144</span>      return m_deadServers__IsNotDefault;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.146"></a>
+<span class="sourceLineNo">146</span>    private boolean m_deadServers__IsNotDefault;<a name="line.146"></a>
 <span class="sourceLineNo">147</span>    // 25, 1<a name="line.147"></a>
 <span class="sourceLineNo">148</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    {<a name="line.149"></a>
@@ -169,108 +169,108 @@
 <span class="sourceLineNo">161</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    }<a name="line.162"></a>
 <span class="sourceLineNo">163</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // 24, 1<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.165"></a>
+<span class="sourceLineNo">164</span>    // 27, 1<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    public void setFormat(String format)<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      // 24, 1<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      m_deadServers = deadServers;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      m_deadServers__IsNotDefault = true;<a name="line.169"></a>
+<span class="sourceLineNo">167</span>      // 27, 1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m_format = format;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      m_format__IsNotDefault = true;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.171"></a>
+<span class="sourceLineNo">171</span>    public String getFormat()<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      return m_deadServers;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>      return m_format;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public boolean getDeadServers__IsNotDefault()<a name="line.176"></a>
+<span class="sourceLineNo">175</span>    private String m_format;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean getFormat__IsNotDefault()<a name="line.176"></a>
 <span class="sourceLineNo">177</span>    {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return m_deadServers__IsNotDefault;<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      return m_format__IsNotDefault;<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    private boolean m_deadServers__IsNotDefault;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    // 29, 1<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.182"></a>
+<span class="sourceLineNo">180</span>    private boolean m_format__IsNotDefault;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    // 28, 1<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    public void setServerManager(ServerManager serverManager)<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      // 29, 1<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      m_assignmentManager = assignmentManager;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      m_assignmentManager__IsNotDefault = true;<a name="line.186"></a>
+<span class="sourceLineNo">184</span>      // 28, 1<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      m_serverManager = serverManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      m_serverManager__IsNotDefault = true;<a name="line.186"></a>
 <span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    public AssignmentManager getAssignmentManager()<a name="line.188"></a>
+<span class="sourceLineNo">188</span>    public ServerManager getServerManager()<a name="line.188"></a>
 <span class="sourceLineNo">189</span>    {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      return m_assignmentManager;<a name="line.190"></a>
+<span class="sourceLineNo">190</span>      return m_serverManager;<a name="line.190"></a>
 <span class="sourceLineNo">191</span>    }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    private AssignmentManager m_assignmentManager;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.193"></a>
+<span class="sourceLineNo">192</span>    private ServerManager m_serverManager;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    public boolean getServerManager__IsNotDefault()<a name="line.193"></a>
 <span class="sourceLineNo">194</span>    {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      return m_assignmentManager__IsNotDefault;<a name="line.195"></a>
+<span class="sourceLineNo">195</span>      return m_serverManager__IsNotDefault;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    // 23, 1<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.199"></a>
+<span class="sourceLineNo">197</span>    private boolean m_serverManager__IsNotDefault;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // 21, 1<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // 23, 1<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      m_servers = servers;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      m_servers__IsNotDefault = true;<a name="line.203"></a>
+<span class="sourceLineNo">201</span>      // 21, 1<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      m_frags = frags;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      m_frags__IsNotDefault = true;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public List&lt;ServerName&gt; getServers()<a name="line.205"></a>
+<span class="sourceLineNo">205</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.205"></a>
 <span class="sourceLineNo">206</span>    {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return m_servers;<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      return m_frags;<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    private List&lt;ServerName&gt; m_servers;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    public boolean getServers__IsNotDefault()<a name="line.210"></a>
+<span class="sourceLineNo">209</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    public boolean getFrags__IsNotDefault()<a name="line.210"></a>
 <span class="sourceLineNo">211</span>    {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return m_servers__IsNotDefault;<a name="line.212"></a>
+<span class="sourceLineNo">212</span>      return m_frags__IsNotDefault;<a name="line.212"></a>
 <span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    private boolean m_servers__IsNotDefault;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    // 27, 1<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    public void setFormat(String format)<a name="line.216"></a>
+<span class="sourceLineNo">214</span>    private boolean m_frags__IsNotDefault;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    // 22, 1<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      // 27, 1<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      m_format = format;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      m_format__IsNotDefault = true;<a name="line.220"></a>
+<span class="sourceLineNo">218</span>      // 22, 1<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      m_metaLocation = metaLocation;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      m_metaLocation__IsNotDefault = true;<a name="line.220"></a>
 <span class="sourceLineNo">221</span>    }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    public String getFormat()<a name="line.222"></a>
+<span class="sourceLineNo">222</span>    public ServerName getMetaLocation()<a name="line.222"></a>
 <span class="sourceLineNo">223</span>    {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      return m_format;<a name="line.224"></a>
+<span class="sourceLineNo">224</span>      return m_metaLocation;<a name="line.224"></a>
 <span class="sourceLineNo">225</span>    }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private String m_format;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    public boolean getFormat__IsNotDefault()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>    private ServerName m_metaLocation;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      return m_format__IsNotDefault;<a name="line.229"></a>
+<span class="sourceLineNo">229</span>      return m_metaLocation__IsNotDefault;<a name="line.229"></a>
 <span class="sourceLineNo">230</span>    }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    private boolean m_format__IsNotDefault;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    // 26, 1<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public void setFilter(String filter)<a name="line.233"></a>
+<span class="sourceLineNo">231</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    // 29, 1<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.233"></a>
 <span class="sourceLineNo">234</span>    {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      // 26, 1<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      m_filter = filter;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      m_filter__IsNotDefault = true;<a name="line.237"></a>
+<span class="sourceLineNo">235</span>      // 29, 1<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      m_assignmentManager = assignmentManager;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      m_assignmentManager__IsNotDefault = true;<a name="line.237"></a>
 <span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public String getFilter()<a name="line.239"></a>
+<span class="sourceLineNo">239</span>    public AssignmentManager getAssignmentManager()<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return m_filter;<a name="line.241"></a>
+<span class="sourceLineNo">241</span>      return m_assignmentManager;<a name="line.241"></a>
 <span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    private String m_filter;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public boolean getFilter__IsNotDefault()<a name="line.244"></a>
+<span class="sourceLineNo">243</span>    private AssignmentManager m_assignmentManager;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.244"></a>
 <span class="sourceLineNo">245</span>    {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return m_filter__IsNotDefault;<a name="line.246"></a>
+<span class="sourceLineNo">246</span>      return m_assignmentManager__IsNotDefault;<a name="line.246"></a>
 <span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    private boolean m_filter__IsNotDefault;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    // 28, 1<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    public void setServerManager(ServerManager serverManager)<a name="line.250"></a>
+<span class="sourceLineNo">248</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // 23, 1<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.250"></a>
 <span class="sourceLineNo">251</span>    {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      // 28, 1<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      m_serverManager = serverManager;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      m_serverManager__IsNotDefault = true;<a name="line.254"></a>
+<span class="sourceLineNo">252</span>      // 23, 1<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      m_servers = servers;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      m_servers__IsNotDefault = true;<a name="line.254"></a>
 <span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public ServerManager getServerManager()<a name="line.256"></a>
+<span class="sourceLineNo">256</span>    public List&lt;ServerName&gt; getServers()<a name="line.256"></a>
 <span class="sourceLineNo">257</span>    {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return m_serverManager;<a name="line.258"></a>
+<span class="sourceLineNo">258</span>      return m_servers;<a name="line.258"></a>
 <span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    private ServerManager m_serverManager;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public boolean getServerManager__IsNotDefault()<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    private List&lt;ServerName&gt; m_servers;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public boolean getServers__IsNotDefault()<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      return m_serverManager__IsNotDefault;<a name="line.263"></a>
+<span class="sourceLineNo">263</span>      return m_servers__IsNotDefault;<a name="line.263"></a>
 <span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private boolean m_serverManager__IsNotDefault;<a name="line.265"></a>
+<span class="sourceLineNo">265</span>    private boolean m_servers__IsNotDefault;<a name="line.265"></a>
 <span class="sourceLineNo">266</span>  }<a name="line.266"></a>
 <span class="sourceLineNo">267</span>  @Override<a name="line.267"></a>
 <span class="sourceLineNo">268</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.268"></a>
@@ -282,17 +282,17 @@
 <span class="sourceLineNo">274</span>    return (ImplData) super.getImplData();<a name="line.274"></a>
 <span class="sourceLineNo">275</span>  }<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  <a name="line.276"></a>
-<span class="sourceLineNo">277</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.278"></a>
+<span class="sourceLineNo">277</span>  protected String filter;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.278"></a>
 <span class="sourceLineNo">279</span>  {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    (getImplData()).setFrags(p_frags);<a name="line.280"></a>
+<span class="sourceLineNo">280</span>    (getImplData()).setFilter(p_filter);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    return this;<a name="line.281"></a>
 <span class="sourceLineNo">282</span>  }<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  <a name="line.283"></a>
-<span class="sourceLineNo">284</span>  protected ServerName metaLocation;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.285"></a>
+<span class="sourceLineNo">284</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.285"></a>
 <span class="sourceLineNo">286</span>  {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.287"></a>
+<span class="sourceLineNo">287</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>    return this;<a name="line.288"></a>
 <span class="sourceLineNo">289</span>  }<a name="line.289"></a>
 <span class="sourceLineNo">290</span>  <a name="line.290"></a>
@@ -303,45 +303,45 @@
 <span class="sourceLineNo">295</span>    return this;<a name="line.295"></a>
 <span class="sourceLineNo">296</span>  }<a name="line.296"></a>
 <span class="sourceLineNo">297</span>  <a name="line.297"></a>
-<span class="sourceLineNo">298</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.299"></a>
+<span class="sourceLineNo">298</span>  protected String format;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.299"></a>
 <span class="sourceLineNo">300</span>  {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.301"></a>
+<span class="sourceLineNo">301</span>    (getImplData()).setFormat(p_format);<a name="line.301"></a>
 <span class="sourceLineNo">302</span>    return this;<a name="line.302"></a>
 <span class="sourceLineNo">303</span>  }<a name="line.303"></a>
 <span class="sourceLineNo">304</span>  <a name="line.304"></a>
-<span class="sourceLineNo">305</span>  protected AssignmentManager assignmentManager;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.306"></a>
+<span class="sourceLineNo">305</span>  protected ServerManager serverManager;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.306"></a>
 <span class="sourceLineNo">307</span>  {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.308"></a>
+<span class="sourceLineNo">308</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.308"></a>
 <span class="sourceLineNo">309</span>    return this;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span>  <a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected List&lt;ServerName&gt; servers;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.313"></a>
+<span class="sourceLineNo">312</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    (getImplData()).setServers(p_servers);<a name="line.315"></a>
+<span class="sourceLineNo">315</span>    (getImplData()).setFrags(p_frags);<a name="line.315"></a>
 <span class="sourceLineNo">316</span>    return this;<a name="line.316"></a>
 <span class="sourceLineNo">317</span>  }<a name="line.317"></a>
 <span class="sourceLineNo">318</span>  <a name="line.318"></a>
-<span class="sourceLineNo">319</span>  protected String format;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.320"></a>
+<span class="sourceLineNo">319</span>  protected ServerName metaLocation;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.320"></a>
 <span class="sourceLineNo">321</span>  {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    (getImplData()).setFormat(p_format);<a name="line.322"></a>
+<span class="sourceLineNo">322</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.322"></a>
 <span class="sourceLineNo">323</span>    return this;<a name="line.323"></a>
 <span class="sourceLineNo">324</span>  }<a name="line.324"></a>
 <span class="sourceLineNo">325</span>  <a name="line.325"></a>
-<span class="sourceLineNo">326</span>  protected String filter;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.327"></a>
+<span class="sourceLineNo">326</span>  protected AssignmentManager assignmentManager;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.327"></a>
 <span class="sourceLineNo">328</span>  {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    (getImplData()).setFilter(p_filter);<a name="line.329"></a>
+<span class="sourceLineNo">329</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.329"></a>
 <span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
 <span class="sourceLineNo">331</span>  }<a name="line.331"></a>
 <span class="sourceLineNo">332</span>  <a name="line.332"></a>
-<span class="sourceLineNo">333</span>  protected ServerManager serverManager;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.334"></a>
+<span class="sourceLineNo">333</span>  protected List&lt;ServerName&gt; servers;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.334"></a>
 <span class="sourceLineNo">335</span>  {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.336"></a>
+<span class="sourceLineNo">336</span>    (getImplData()).setServers(p_servers);<a name="line.336"></a>
 <span class="sourceLineNo">337</span>    return this;<a name="line.337"></a>
 <span class="sourceLineNo">338</span>  }<a name="line.338"></a>
 <span class="sourceLineNo">339</span>  <a name="line.339"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
index ab51ece..f1003b0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
@@ -70,15 +70,15 @@
 <span class="sourceLineNo">062</span><a name="line.62"></a>
 <span class="sourceLineNo">063</span>{<a name="line.63"></a>
 <span class="sourceLineNo">064</span>  private final HMaster master;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private final Map&lt;String,Integer&gt; frags;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private final ServerName metaLocation;<a name="line.66"></a>
+<span class="sourceLineNo">065</span>  private final String filter;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  private final Set&lt;ServerName&gt; deadServers;<a name="line.66"></a>
 <span class="sourceLineNo">067</span>  private final boolean catalogJanitorEnabled;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private final Set&lt;ServerName&gt; deadServers;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private final AssignmentManager assignmentManager;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private final List&lt;ServerName&gt; servers;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private final String format;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  private final String filter;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private final ServerManager serverManager;<a name="line.73"></a>
+<span class="sourceLineNo">068</span>  private final String format;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private final ServerManager serverManager;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private final Map&lt;String,Integer&gt; frags;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  private final ServerName metaLocation;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private final AssignmentManager assignmentManager;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  private final List&lt;ServerName&gt; servers;<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  // 69, 1<a name="line.74"></a>
 <span class="sourceLineNo">075</span>  <a name="line.75"></a>
 <span class="sourceLineNo">076</span>  public String formatZKString() {<a name="line.76"></a>
@@ -108,41 +108,41 @@
 <span class="sourceLineNo">100</span><a name="line.100"></a>
 <span class="sourceLineNo">101</span>  protected static org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData p_implData)<a name="line.101"></a>
 <span class="sourceLineNo">102</span>  {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    if(! p_implData.getFrags__IsNotDefault())<a name="line.103"></a>
+<span class="sourceLineNo">103</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      p_implData.setFrags(null);<a name="line.105"></a>
+<span class="sourceLineNo">105</span>      p_implData.setFilter("general");<a name="line.105"></a>
 <span class="sourceLineNo">106</span>    }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    if(! p_implData.getMetaLocation__IsNotDefault())<a name="line.107"></a>
+<span class="sourceLineNo">107</span>    if(! p_implData.getDeadServers__IsNotDefault())<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      p_implData.setMetaLocation(null);<a name="line.109"></a>
+<span class="sourceLineNo">109</span>      p_implData.setDeadServers(null);<a name="line.109"></a>
 <span class="sourceLineNo">110</span>    }<a name="line.110"></a>
 <span class="sourceLineNo">111</span>    if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      p_implData.setCatalogJanitorEnabled(true);<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    }<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    if(! p_implData.getDeadServers__IsNotDefault())<a name="line.115"></a>
+<span class="sourceLineNo">115</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      p_implData.setDeadServers(null);<a name="line.117"></a>
+<span class="sourceLineNo">117</span>      p_implData.setFormat("html");<a name="line.117"></a>
 <span class="sourceLineNo">118</span>    }<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    if(! p_implData.getAssignmentManager__IsNotDefault())<a name="line.119"></a>
+<span class="sourceLineNo">119</span>    if(! p_implData.getServerManager__IsNotDefault())<a name="line.119"></a>
 <span class="sourceLineNo">120</span>    {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      p_implData.setAssignmentManager(null);<a name="line.121"></a>
+<span class="sourceLineNo">121</span>      p_implData.setServerManager(null);<a name="line.121"></a>
 <span class="sourceLineNo">122</span>    }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    if(! p_implData.getServers__IsNotDefault())<a name="line.123"></a>
+<span class="sourceLineNo">123</span>    if(! p_implData.getFrags__IsNotDefault())<a name="line.123"></a>
 <span class="sourceLineNo">124</span>    {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      p_implData.setServers(null);<a name="line.125"></a>
+<span class="sourceLineNo">125</span>      p_implData.setFrags(null);<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    }<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.127"></a>
+<span class="sourceLineNo">127</span>    if(! p_implData.getMetaLocation__IsNotDefault())<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      p_implData.setFormat("html");<a name="line.129"></a>
+<span class="sourceLineNo">129</span>      p_implData.setMetaLocation(null);<a name="line.129"></a>
 <span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.131"></a>
+<span class="sourceLineNo">131</span>    if(! p_implData.getAssignmentManager__IsNotDefault())<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      p_implData.setFilter("general");<a name="line.133"></a>
+<span class="sourceLineNo">133</span>      p_implData.setAssignmentManager(null);<a name="line.133"></a>
 <span class="sourceLineNo">134</span>    }<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    if(! p_implData.getServerManager__IsNotDefault())<a name="line.135"></a>
+<span class="sourceLineNo">135</span>    if(! p_implData.getServers__IsNotDefault())<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      p_implData.setServerManager(null);<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      p_implData.setServers(null);<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
 <span class="sourceLineNo">139</span>    return p_implData;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>  }<a name="line.140"></a>
@@ -150,15 +150,15 @@
 <span class="sourceLineNo">142</span>  {<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    super(p_templateManager, __jamon_setOptionalArguments(p_implData));<a name="line.143"></a>
 <span class="sourceLineNo">144</span>    master = p_implData.getMaster();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    frags = p_implData.getFrags();<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    metaLocation = p_implData.getMetaLocation();<a name="line.146"></a>
+<span class="sourceLineNo">145</span>    filter = p_implData.getFilter();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    deadServers = p_implData.getDeadServers();<a name="line.146"></a>
 <span class="sourceLineNo">147</span>    catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    deadServers = p_implData.getDeadServers();<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    assignmentManager = p_implData.getAssignmentManager();<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    servers = p_implData.getServers();<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    format = p_implData.getFormat();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    filter = p_implData.getFilter();<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    serverManager = p_implData.getServerManager();<a name="line.153"></a>
+<span class="sourceLineNo">148</span>    format = p_implData.getFormat();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    serverManager = p_implData.getServerManager();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    frags = p_implData.getFrags();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    metaLocation = p_implData.getMetaLocation();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    assignmentManager = p_implData.getAssignmentManager();<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    servers = p_implData.getServers();<a name="line.153"></a>
 <span class="sourceLineNo">154</span>  }<a name="line.154"></a>
 <span class="sourceLineNo">155</span>  <a name="line.155"></a>
 <span class="sourceLineNo">156</span>  @Override public void renderNoFlush(final java.io.Writer jamonWriter)<a name="line.156"></a>


[27/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
index 3719f0c..fa2916a 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
@@ -337,22 +337,22 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="frags">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>frags</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.277">frags</a></pre>
+<h4>filter</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.277">filter</a></pre>
 </li>
 </ul>
-<a name="metaLocation">
+<a name="deadServers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>metaLocation</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.284">metaLocation</a></pre>
+<h4>deadServers</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.284">deadServers</a></pre>
 </li>
 </ul>
 <a name="catalogJanitorEnabled">
@@ -364,58 +364,58 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>protected&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.291">catalogJanitorEnabled</a></pre>
 </li>
 </ul>
-<a name="deadServers">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>deadServers</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.298">deadServers</a></pre>
+<h4>format</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.298">format</a></pre>
 </li>
 </ul>
-<a name="assignmentManager">
+<a name="serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>assignmentManager</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.305">assignmentManager</a></pre>
+<h4>serverManager</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.305">serverManager</a></pre>
 </li>
 </ul>
-<a name="servers">
+<a name="frags">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>servers</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.312">servers</a></pre>
+<h4>frags</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.312">frags</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="metaLocation">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.319">format</a></pre>
+<h4>metaLocation</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.319">metaLocation</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="assignmentManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>filter</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.326">filter</a></pre>
+<h4>assignmentManager</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.326">assignmentManager</a></pre>
 </li>
 </ul>
-<a name="serverManager">
+<a name="servers">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>serverManager</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.333">serverManager</a></pre>
+<h4>servers</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.333">servers</a></pre>
 </li>
 </ul>
 </li>
@@ -487,22 +487,22 @@ extends org.jamon.AbstractTemplateProxy</pre>
 </dl>
 </li>
 </ul>
-<a name="setFrags-java.util.Map-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFrags</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.278">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;p_frags)</pre>
+<h4>setFilter</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.278">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
 </li>
 </ul>
-<a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">
+<a name="setDeadServers-java.util.Set-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setMetaLocation</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.285">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;p_metaLocation)</pre>
+<h4>setDeadServers</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.285">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_deadServers)</pre>
 </li>
 </ul>
 <a name="setCatalogJanitorEnabled-boolean-">
@@ -514,58 +514,58 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.292">setCatalogJanitorEnabled</a>(boolean&nbsp;p_catalogJanitorEnabled)</pre>
 </li>
 </ul>
-<a name="setDeadServers-java.util.Set-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setDeadServers</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.299">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_deadServers)</pre>
+<h4>setFormat</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.299">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
 </li>
 </ul>
-<a name="setAssignmentManager-org.apache.hadoop.hbase.master.AssignmentManager-">
+<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setAssignmentManager</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.306">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;p_assignmentManager)</pre>
+<h4>setServerManager</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.306">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;p_serverManager)</pre>
 </li>
 </ul>
-<a name="setServers-java.util.List-">
+<a name="setFrags-java.util.Map-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServers</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.313">setServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_servers)</pre>
+<h4>setFrags</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.313">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;p_frags)</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.320">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
+<h4>setMetaLocation</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.320">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;p_metaLocation)</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setAssignmentManager-org.apache.hadoop.hbase.master.AssignmentManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.327">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
+<h4>setAssignmentManager</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.327">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a>&nbsp;p_assignmentManager)</pre>
 </li>
 </ul>
-<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
+<a name="setServers-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServerManager</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.334">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;p_serverManager)</pre>
+<h4>setServers</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.334">setServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_servers)</pre>
 </li>
 </ul>
 <a name="constructImpl-java.lang.Class-">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
index 26d361c..d380d7b 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
@@ -278,22 +278,22 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/Master
 <pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.64">master</a></pre>
 </li>
 </ul>
-<a name="frags">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>frags</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.65">frags</a></pre>
+<h4>filter</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.65">filter</a></pre>
 </li>
 </ul>
-<a name="metaLocation">
+<a name="deadServers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>metaLocation</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.66">metaLocation</a></pre>
+<h4>deadServers</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.66">deadServers</a></pre>
 </li>
 </ul>
 <a name="catalogJanitorEnabled">
@@ -305,58 +305,58 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/Master
 <pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.67">catalogJanitorEnabled</a></pre>
 </li>
 </ul>
-<a name="deadServers">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>deadServers</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.68">deadServers</a></pre>
+<h4>format</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.68">format</a></pre>
 </li>
 </ul>
-<a name="assignmentManager">
+<a name="serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>assignmentManager</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.69">assignmentManager</a></pre>
+<h4>serverManager</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.69">serverManager</a></pre>
 </li>
 </ul>
-<a name="servers">
+<a name="frags">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>servers</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.70">servers</a></pre>
+<h4>frags</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.70">frags</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="metaLocation">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.71">format</a></pre>
+<h4>metaLocation</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.71">metaLocation</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="assignmentManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>filter</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.72">filter</a></pre>
+<h4>assignmentManager</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.72">assignmentManager</a></pre>
 </li>
 </ul>
-<a name="serverManager">
+<a name="servers">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>serverManager</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.73">serverManager</a></pre>
+<h4>servers</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.73">servers</a></pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
index 3c832d8..25090a4 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
@@ -311,58 +311,58 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.88">m_bcv__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_bcn">
+<a name="m_filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_bcn</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.100">m_bcn</a></pre>
+<h4>m_filter</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.100">m_filter</a></pre>
 </li>
 </ul>
-<a name="m_bcn__IsNotDefault">
+<a name="m_filter__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_bcn__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.105">m_bcn__IsNotDefault</a></pre>
+<h4>m_filter__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.105">m_filter__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_format">
+<a name="m_bcn">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.117">m_format</a></pre>
+<h4>m_bcn</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.117">m_bcn</a></pre>
 </li>
 </ul>
-<a name="m_format__IsNotDefault">
+<a name="m_bcn__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.122">m_format__IsNotDefault</a></pre>
+<h4>m_bcn__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.122">m_bcn__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_filter">
+<a name="m_format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.134">m_filter</a></pre>
+<h4>m_format</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.134">m_format</a></pre>
 </li>
 </ul>
-<a name="m_filter__IsNotDefault">
+<a name="m_format__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>m_filter__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.139">m_filter__IsNotDefault</a></pre>
+<h4>m_format__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.139">m_format__IsNotDefault</a></pre>
 </li>
 </ul>
 </li>
@@ -435,85 +435,85 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.84">getBcv__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setBcn-java.lang.String-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setBcn</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.90">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bcn)</pre>
+<h4>setFilter</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.90">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
 </li>
 </ul>
-<a name="getBcn--">
+<a name="getFilter--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBcn</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.96">getBcn</a>()</pre>
+<h4>getFilter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.96">getFilter</a>()</pre>
 </li>
 </ul>
-<a name="getBcn__IsNotDefault--">
+<a name="getFilter__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBcn__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.101">getBcn__IsNotDefault</a>()</pre>
+<h4>getFilter__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.101">getFilter__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setBcn-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.107">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
+<h4>setBcn</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.107">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bcn)</pre>
 </li>
 </ul>
-<a name="getFormat--">
+<a name="getBcn--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.113">getFormat</a>()</pre>
+<h4>getBcn</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.113">getBcn</a>()</pre>
 </li>
 </ul>
-<a name="getFormat__IsNotDefault--">
+<a name="getBcn__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.118">getFormat__IsNotDefault</a>()</pre>
+<h4>getBcn__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.118">getBcn__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.124">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
+<h4>setFormat</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.124">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
 </li>
 </ul>
-<a name="getFilter--">
+<a name="getFormat--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.130">getFilter</a>()</pre>
+<h4>getFormat</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.130">getFormat</a>()</pre>
 </li>
 </ul>
-<a name="getFilter__IsNotDefault--">
+<a name="getFormat__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>getFilter__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.135">getFilter__IsNotDefault</a>()</pre>
+<h4>getFormat__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.135">getFormat__IsNotDefault</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
index a636832..ad6c568 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
@@ -306,31 +306,31 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.151">bcv</a></pre>
 </li>
 </ul>
-<a name="bcn">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>bcn</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.158">bcn</a></pre>
+<h4>filter</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.158">filter</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="bcn">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.165">format</a></pre>
+<h4>bcn</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.165">bcn</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>filter</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.172">filter</a></pre>
+<h4>format</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.172">format</a></pre>
 </li>
 </ul>
 </li>
@@ -411,31 +411,31 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.152">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcv)</pre>
 </li>
 </ul>
-<a name="setBcn-java.lang.String-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setBcn</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.159">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcn)</pre>
+<h4>setFilter</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.159">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setBcn-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.166">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
+<h4>setBcn</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.166">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcn)</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.173">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
+<h4>setFormat</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.173">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
 </li>
 </ul>
 <a name="constructImpl-java.lang.Class-">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
index 5ef086c..a89deca 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
@@ -247,31 +247,31 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.29">bcv</a></pre>
 </li>
 </ul>
-<a name="bcn">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>bcn</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.30">bcn</a></pre>
+<h4>filter</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.30">filter</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="bcn">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.31">format</a></pre>
+<h4>bcn</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.31">bcn</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>filter</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.32">filter</a></pre>
+<h4>format</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.32">format</a></pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html b/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html
index 964ce52..8486a62 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.887">RegionSplitter.HexStringSplit</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.880">RegionSplitter.HexStringSplit</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a></pre>
 <div class="block">HexStringSplit is a well-known <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util"><code>RegionSplitter.SplitAlgorithm</code></a> for choosing region
@@ -332,7 +332,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_MIN_HEX</h4>
-<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.888">DEFAULT_MIN_HEX</a></pre>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.881">DEFAULT_MIN_HEX</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.util.RegionSplitter.HexStringSplit.DEFAULT_MIN_HEX">Constant Field Values</a></dd>
@@ -345,7 +345,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_MAX_HEX</h4>
-<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.889">DEFAULT_MAX_HEX</a></pre>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.882">DEFAULT_MAX_HEX</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.util.RegionSplitter.HexStringSplit.DEFAULT_MAX_HEX">Constant Field Values</a></dd>
@@ -358,7 +358,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>firstRow</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.891">firstRow</a></pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.884">firstRow</a></pre>
 </li>
 </ul>
 <a name="firstRowInt">
@@ -367,7 +367,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>firstRowInt</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.892">firstRowInt</a></pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.885">firstRowInt</a></pre>
 </li>
 </ul>
 <a name="lastRow">
@@ -376,7 +376,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>lastRow</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.893">lastRow</a></pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.886">lastRow</a></pre>
 </li>
 </ul>
 <a name="lastRowInt">
@@ -385,7 +385,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>lastRowInt</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.894">lastRowInt</a></pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.887">lastRowInt</a></pre>
 </li>
 </ul>
 <a name="rowComparisonLength">
@@ -394,7 +394,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockListLast">
 <li class="blockList">
 <h4>rowComparisonLength</h4>
-<pre>int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.895">rowComparisonLength</a></pre>
+<pre>int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.888">rowComparisonLength</a></pre>
 </li>
 </ul>
 </li>
@@ -411,7 +411,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HexStringSplit</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.887">HexStringSplit</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.880">HexStringSplit</a>()</pre>
 </li>
 </ul>
 </li>
@@ -428,7 +428,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>split</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.897">split</a>(byte[]&nbsp;start,
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.890">split</a>(byte[]&nbsp;start,
                     byte[]&nbsp;end)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#split-byte:A-byte:A-">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">Split a pre-existing region into 2 regions.</div>
@@ -449,7 +449,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>split</h4>
-<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.904">split</a>(int&nbsp;n)</pre>
+<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.897">split</a>(int&nbsp;n)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#split-int-">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">Split an entire table.</div>
 <dl>
@@ -469,7 +469,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>firstRow</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.924">firstRow</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.917">firstRow</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#firstRow--">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">In HBase, the first row is represented by an empty byte array. This might
  cause problems with your split algorithm or row printing. All your APIs
@@ -488,7 +488,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>lastRow</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.928">lastRow</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.921">lastRow</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#lastRow--">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">In HBase, the last row is represented by an empty byte array. This might
  cause problems with your split algorithm or row printing. All your APIs
@@ -507,7 +507,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>setFirstRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.932">setFirstRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userInput)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.925">setFirstRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userInput)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#setFirstRow-java.lang.String-">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">In HBase, the last row is represented by an empty byte array. Set this
  value to help the split code understand how to evenly divide the first
@@ -526,7 +526,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>setLastRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.937">setLastRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userInput)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.930">setLastRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userInput)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#setLastRow-java.lang.String-">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">In HBase, the last row is represented by an empty byte array. Set this
  value to help the split code understand how to evenly divide the last
@@ -546,7 +546,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>strToRow</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.944">strToRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;in)</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.937">strToRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;in)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#strToRow-java.lang.String-">strToRow</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a></code></dd>
@@ -563,7 +563,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>rowToStr</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.948">rowToStr</a>(byte[]&nbsp;row)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.941">rowToStr</a>(byte[]&nbsp;row)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#rowToStr-byte:A-">rowToStr</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a></code></dd>
@@ -580,7 +580,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>separator</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.952">separator</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.945">separator</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#separator--">separator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html" title="interface in org.apache.hadoop.hbase.util">RegionSplitter.SplitAlgorithm</a></code></dd>
@@ -595,7 +595,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>setFirstRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.957">setFirstRow</a>(byte[]&nbsp;userInput)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.950">setFirstRow</a>(byte[]&nbsp;userInput)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#setFirstRow-byte:A-">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">Set the first row</div>
 <dl>
@@ -612,7 +612,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>setLastRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.962">setLastRow</a>(byte[]&nbsp;userInput)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.955">setLastRow</a>(byte[]&nbsp;userInput)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#setLastRow-byte:A-">RegionSplitter.SplitAlgorithm</a></code></span></div>
 <div class="block">Set the last row</div>
 <dl>
@@ -629,7 +629,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>split2</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.973">split2</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;a,
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.966">split2</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;a,
                          <a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;b)</pre>
 <div class="block">Divide 2 numbers in half (for split algorithm)</div>
 <dl>
@@ -647,7 +647,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>convertToBytes</h4>
-<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.983">convertToBytes</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>[]&nbsp;bigIntegers)</pre>
+<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.976">convertToBytes</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>[]&nbsp;bigIntegers)</pre>
 <div class="block">Returns an array of bytes corresponding to an array of BigIntegers</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -663,7 +663,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>convertToByte</h4>
-<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.998">convertToByte</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;bigInteger,
+<pre>public static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.991">convertToByte</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;bigInteger,
                                    int&nbsp;pad)</pre>
 <div class="block">Returns the bytes corresponding to the BigInteger</div>
 <dl>
@@ -681,7 +681,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>convertToByte</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.1010">convertToByte</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;bigInteger)</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.1003">convertToByte</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;bigInteger)</pre>
 <div class="block">Returns the bytes corresponding to the BigInteger</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -697,7 +697,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockList">
 <li class="blockList">
 <h4>convertToBigInteger</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.1020">convertToBigInteger</a>(byte[]&nbsp;row)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html?is-external=true" title="class or interface in java.math">BigInteger</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.1013">convertToBigInteger</a>(byte[]&nbsp;row)</pre>
 <div class="block">Returns the BigInteger represented by the byte array</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -713,7 +713,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.S
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.1026">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html#line.1019">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html b/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html
index c72c6ba..3c783e6 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.155">RegionSplitter.SplitAlgorithm</a></pre>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.html#line.154">RegionSplitter.SplitAlgorithm</a></pre>
 <div class="block">A generic interface for the RegionSplitter code to use for all it's
  functionality. Note that the original authors of this code use
  <a href="../../../../../org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html" title="class in org.apache.hadoop.hbase.util"><code>RegionSplitter.HexStringSplit</code></a> to partition their table and set it as default, but
@@ -217,7 +217,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>split</h4>
-<pre>byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.165">split</a>(byte[]&nbsp;start,
+<pre>byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.164">split</a>(byte[]&nbsp;start,
              byte[]&nbsp;end)</pre>
 <div class="block">Split a pre-existing region into 2 regions.</div>
 <dl>
@@ -235,7 +235,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>split</h4>
-<pre>byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.179">split</a>(int&nbsp;numRegions)</pre>
+<pre>byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.178">split</a>(int&nbsp;numRegions)</pre>
 <div class="block">Split an entire table.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -255,7 +255,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>firstRow</h4>
-<pre>byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.188">firstRow</a>()</pre>
+<pre>byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.187">firstRow</a>()</pre>
 <div class="block">In HBase, the first row is represented by an empty byte array. This might
  cause problems with your split algorithm or row printing. All your APIs
  will be passed firstRow() instead of empty array.</div>
@@ -271,7 +271,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>lastRow</h4>
-<pre>byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.197">lastRow</a>()</pre>
+<pre>byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.196">lastRow</a>()</pre>
 <div class="block">In HBase, the last row is represented by an empty byte array. This might
  cause problems with your split algorithm or row printing. All your APIs
  will be passed firstRow() instead of empty array.</div>
@@ -287,7 +287,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>setFirstRow</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.207">setFirstRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userInput)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.206">setFirstRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userInput)</pre>
 <div class="block">In HBase, the last row is represented by an empty byte array. Set this
  value to help the split code understand how to evenly divide the first
  region.</div>
@@ -303,7 +303,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>setLastRow</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.218">setLastRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userInput)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.217">setLastRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userInput)</pre>
 <div class="block">In HBase, the last row is represented by an empty byte array. Set this
  value to help the split code understand how to evenly divide the last
  region. Note that this last row is inclusive for all rows sharing the
@@ -320,7 +320,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>strToRow</h4>
-<pre>byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.225">strToRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;input)</pre>
+<pre>byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.224">strToRow</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;input)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>input</code> - user or file input for row</dd>
@@ -335,7 +335,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>rowToStr</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.232">rowToStr</a>(byte[]&nbsp;row)</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.231">rowToStr</a>(byte[]&nbsp;row)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>row</code> - byte array representing a row in HBase</dd>
@@ -350,7 +350,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>separator</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.237">separator</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.236">separator</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the separator character to use when storing / printing the row</dd>
@@ -363,7 +363,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>setFirstRow</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.243">setFirstRow</a>(byte[]&nbsp;userInput)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.242">setFirstRow</a>(byte[]&nbsp;userInput)</pre>
 <div class="block">Set the first row</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -377,7 +377,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>setLastRow</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.249">setLastRow</a>(byte[]&nbsp;userInput)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html#line.248">setLastRow</a>(byte[]&nbsp;userInput)</pre>
 <div class="block">Set the last row</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>


[22/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html
index f9833df..58c6a9c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html
@@ -259,145 +259,153 @@
 <span class="sourceLineNo">251</span>  }<a name="line.251"></a>
 <span class="sourceLineNo">252</span><a name="line.252"></a>
 <span class="sourceLineNo">253</span>  /**<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * It "atomically" copies all the wals queues from another region server and returns them all<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * sorted per peer cluster (appended with the dead server's znode).<a name="line.255"></a>
+<span class="sourceLineNo">254</span>   * It "atomically" copies one peer's wals queue from another dead region server and returns them<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * all sorted. The new peer id is equal to the old peer id appended with the dead server's znode.<a name="line.255"></a>
 <span class="sourceLineNo">256</span>   * @param znode pertaining to the region server to copy the queues from<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   */<a name="line.257"></a>
-<span class="sourceLineNo">258</span>  private Pair&lt;String, SortedSet&lt;String&gt;&gt; moveQueueUsingMulti(String znode, String peerId) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    try {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      // hbase/replication/rs/deadrs<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      String deadRSZnodePath = ZKUtil.joinZNode(this.queuesZNode, znode);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      List&lt;ZKUtilOp&gt; listOfOps = new ArrayList&lt;&gt;();<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      ReplicationQueueInfo replicationQueueInfo = new ReplicationQueueInfo(peerId);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      if (!peerExists(replicationQueueInfo.getPeerId())) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>        // the orphaned queues must be moved, otherwise the delete op of dead rs will fail,<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        // this will cause the whole multi op fail.<a name="line.266"></a>
-<span class="sourceLineNo">267</span>        // NodeFailoverWorker will skip the orphaned queues.<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        LOG.warn("Peer " + peerId +<a name="line.268"></a>
-<span class="sourceLineNo">269</span>            " didn't exist, will move its queue to avoid the failure of multi op");<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      String newPeerId = peerId + "-" + znode;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      String newPeerZnode = ZKUtil.joinZNode(this.myQueuesZnode, newPeerId);<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      // check the logs queue for the old peer cluster<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      String oldClusterZnode = ZKUtil.joinZNode(deadRSZnodePath, peerId);<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      List&lt;String&gt; wals = ZKUtil.listChildrenNoWatch(this.zookeeper, oldClusterZnode);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      SortedSet&lt;String&gt; logQueue = new TreeSet&lt;&gt;();<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      if (wals == null || wals.size() == 0) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      } else {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        // create the new cluster znode<a name="line.280"></a>
-<span class="sourceLineNo">281</span>        ZKUtilOp op = ZKUtilOp.createAndFailSilent(newPeerZnode, HConstants.EMPTY_BYTE_ARRAY);<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        listOfOps.add(op);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        // get the offset of the logs and set it to new znodes<a name="line.283"></a>
-<span class="sourceLineNo">284</span>        for (String wal : wals) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>          String oldWalZnode = ZKUtil.joinZNode(oldClusterZnode, wal);<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          byte[] logOffset = ZKUtil.getData(this.zookeeper, oldWalZnode);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>          LOG.debug("Creating " + wal + " with data " + Bytes.toString(logOffset));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          String newLogZnode = ZKUtil.joinZNode(newPeerZnode, wal);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>          listOfOps.add(ZKUtilOp.createAndFailSilent(newLogZnode, logOffset));<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldWalZnode));<a name="line.290"></a>
-<span class="sourceLineNo">291</span>          logQueue.add(wal);<a name="line.291"></a>
-<span class="sourceLineNo">292</span>        }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        // add delete op for peer<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>        if (LOG.isTraceEnabled())<a name="line.296"></a>
-<span class="sourceLineNo">297</span>          LOG.trace(" The multi list size is: " + listOfOps.size());<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      }<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ZKUtil.multiOrSequential(this.zookeeper, listOfOps, false);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      if (LOG.isTraceEnabled())<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        LOG.trace("Atomically moved the dead regionserver logs. ");<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      return new Pair&lt;&gt;(newPeerId, logQueue);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    } catch (KeeperException e) {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      // Multi call failed; it looks like some other regionserver took away the logs.<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      LOG.warn("Got exception in copyQueuesFromRSUsingMulti: ", e);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    } catch (InterruptedException e) {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      LOG.warn("Got exception in copyQueuesFromRSUsingMulti: ", e);<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      Thread.currentThread().interrupt();<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    }<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    return null;<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  }<a name="line.311"></a>
-<span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>  @Override<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  public void addHFileRefs(String peerId, List&lt;String&gt; files) throws ReplicationException {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    String peerZnode = ZKUtil.joinZNode(this.hfileRefsZNode, peerId);<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    boolean debugEnabled = LOG.isDebugEnabled();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    if (debugEnabled) {<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      LOG.debug("Adding hfile references " + files + " in queue " + peerZnode);<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    List&lt;ZKUtilOp&gt; listOfOps = new ArrayList&lt;ZKUtil.ZKUtilOp&gt;();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    int size = files.size();<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    for (int i = 0; i &lt; size; i++) {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      listOfOps.add(ZKUtilOp.createAndFailSilent(ZKUtil.joinZNode(peerZnode, files.get(i)),<a name="line.323"></a>
-<span class="sourceLineNo">324</span>        HConstants.EMPTY_BYTE_ARRAY));<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    if (debugEnabled) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      LOG.debug(" The multi list size for adding hfile references in zk for node " + peerZnode<a name="line.327"></a>
-<span class="sourceLineNo">328</span>          + " is " + listOfOps.size());<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    try {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      ZKUtil.multiOrSequential(this.zookeeper, listOfOps, true);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    } catch (KeeperException e) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      throw new ReplicationException("Failed to create hfile reference znode=" + e.getPath(), e);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public void removeHFileRefs(String peerId, List&lt;String&gt; files) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    String peerZnode = ZKUtil.joinZNode(this.hfileRefsZNode, peerId);<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    boolean debugEnabled = LOG.isDebugEnabled();<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    if (debugEnabled) {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      LOG.debug("Removing hfile references " + files + " from queue " + peerZnode);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    }<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    List&lt;ZKUtilOp&gt; listOfOps = new ArrayList&lt;ZKUtil.ZKUtilOp&gt;();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    int size = files.size();<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    for (int i = 0; i &lt; size; i++) {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      listOfOps.add(ZKUtilOp.deleteNodeFailSilent(ZKUtil.joinZNode(peerZnode, files.get(i))));<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
+<span class="sourceLineNo">257</span>   * @peerId peerId pertaining to the queue need to be copied<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   */<a name="line.258"></a>
+<span class="sourceLineNo">259</span>  private Pair&lt;String, SortedSet&lt;String&gt;&gt; moveQueueUsingMulti(String znode, String peerId) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    try {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      // hbase/replication/rs/deadrs<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      String deadRSZnodePath = ZKUtil.joinZNode(this.queuesZNode, znode);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      List&lt;ZKUtilOp&gt; listOfOps = new ArrayList&lt;&gt;();<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      ReplicationQueueInfo replicationQueueInfo = new ReplicationQueueInfo(peerId);<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span>      String newPeerId = peerId + "-" + znode;<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      String newPeerZnode = ZKUtil.joinZNode(this.myQueuesZnode, newPeerId);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      // check the logs queue for the old peer cluster<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      String oldClusterZnode = ZKUtil.joinZNode(deadRSZnodePath, peerId);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      List&lt;String&gt; wals = ZKUtil.listChildrenNoWatch(this.zookeeper, oldClusterZnode);<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>      if (!peerExists(replicationQueueInfo.getPeerId())) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        LOG.warn("Peer " + replicationQueueInfo.getPeerId() +<a name="line.273"></a>
+<span class="sourceLineNo">274</span>                " didn't exist, will move its queue to avoid the failure of multi op");<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        for (String wal : wals) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>          String oldWalZnode = ZKUtil.joinZNode(oldClusterZnode, wal);<a name="line.276"></a>
+<span class="sourceLineNo">277</span>          listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldWalZnode));<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        ZKUtil.multiOrSequential(this.zookeeper, listOfOps, false);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        return null;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      }<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>      SortedSet&lt;String&gt; logQueue = new TreeSet&lt;&gt;();<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      if (wals == null || wals.size() == 0) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      } else {<a name="line.287"></a>
+<span class="sourceLineNo">288</span>        // create the new cluster znode<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        ZKUtilOp op = ZKUtilOp.createAndFailSilent(newPeerZnode, HConstants.EMPTY_BYTE_ARRAY);<a name="line.289"></a>
+<span class="sourceLineNo">290</span>        listOfOps.add(op);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        // get the offset of the logs and set it to new znodes<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        for (String wal : wals) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>          String oldWalZnode = ZKUtil.joinZNode(oldClusterZnode, wal);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          byte[] logOffset = ZKUtil.getData(this.zookeeper, oldWalZnode);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>          LOG.debug("Creating " + wal + " with data " + Bytes.toString(logOffset));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          String newLogZnode = ZKUtil.joinZNode(newPeerZnode, wal);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>          listOfOps.add(ZKUtilOp.createAndFailSilent(newLogZnode, logOffset));<a name="line.297"></a>
+<span class="sourceLineNo">298</span>          listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldWalZnode));<a name="line.298"></a>
+<span class="sourceLineNo">299</span>          logQueue.add(wal);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        }<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        // add delete op for peer<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        listOfOps.add(ZKUtilOp.deleteNodeFailSilent(oldClusterZnode));<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>        if (LOG.isTraceEnabled())<a name="line.304"></a>
+<span class="sourceLineNo">305</span>          LOG.trace(" The multi list size is: " + listOfOps.size());<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      }<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ZKUtil.multiOrSequential(this.zookeeper, listOfOps, false);<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>      LOG.info("Atomically moved " + znode + "/" + peerId + "'s WALs to my queue");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      return new Pair&lt;&gt;(newPeerId, logQueue);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    } catch (KeeperException e) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      // Multi call failed; it looks like some other regionserver took away the logs.<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      LOG.warn("Got exception in copyQueuesFromRSUsingMulti: ", e);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    } catch (InterruptedException e) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      LOG.warn("Got exception in copyQueuesFromRSUsingMulti: ", e);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      Thread.currentThread().interrupt();<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    return null;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  @Override<a name="line.321"></a>
+<span class="sourceLineNo">322</span>  public void addHFileRefs(String peerId, List&lt;String&gt; files) throws ReplicationException {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    String peerZnode = ZKUtil.joinZNode(this.hfileRefsZNode, peerId);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    boolean debugEnabled = LOG.isDebugEnabled();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    if (debugEnabled) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      LOG.debug("Adding hfile references " + files + " in queue " + peerZnode);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    List&lt;ZKUtilOp&gt; listOfOps = new ArrayList&lt;ZKUtil.ZKUtilOp&gt;();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    int size = files.size();<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    for (int i = 0; i &lt; size; i++) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      listOfOps.add(ZKUtilOp.createAndFailSilent(ZKUtil.joinZNode(peerZnode, files.get(i)),<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        HConstants.EMPTY_BYTE_ARRAY));<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    if (debugEnabled) {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      LOG.debug(" The multi list size for adding hfile references in zk for node " + peerZnode<a name="line.335"></a>
+<span class="sourceLineNo">336</span>          + " is " + listOfOps.size());<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    }<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    try {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      ZKUtil.multiOrSequential(this.zookeeper, listOfOps, true);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    } catch (KeeperException e) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      throw new ReplicationException("Failed to create hfile reference znode=" + e.getPath(), e);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    }<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public void removeHFileRefs(String peerId, List&lt;String&gt; files) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    String peerZnode = ZKUtil.joinZNode(this.hfileRefsZNode, peerId);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    boolean debugEnabled = LOG.isDebugEnabled();<a name="line.348"></a>
 <span class="sourceLineNo">349</span>    if (debugEnabled) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      LOG.debug(" The multi list size for removing hfile references in zk for node " + peerZnode<a name="line.350"></a>
-<span class="sourceLineNo">351</span>          + " is " + listOfOps.size());<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    }<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    try {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      ZKUtil.multiOrSequential(this.zookeeper, listOfOps, true);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    } catch (KeeperException e) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      LOG.error("Failed to remove hfile reference znode=" + e.getPath(), e);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>  @Override<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  public void addPeerToHFileRefs(String peerId) throws ReplicationException {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    String peerZnode = ZKUtil.joinZNode(this.hfileRefsZNode, peerId);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    try {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      if (ZKUtil.checkExists(this.zookeeper, peerZnode) == -1) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        LOG.info("Adding peer " + peerId + " to hfile reference queue.");<a name="line.365"></a>
-<span class="sourceLineNo">366</span>        ZKUtil.createWithParents(this.zookeeper, peerZnode);<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    } catch (KeeperException e) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      throw new ReplicationException("Failed to add peer " + peerId + " to hfile reference queue.",<a name="line.369"></a>
-<span class="sourceLineNo">370</span>          e);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    }<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public void removePeerFromHFileRefs(String peerId) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    final String peerZnode = ZKUtil.joinZNode(this.hfileRefsZNode, peerId);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>    try {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      if (ZKUtil.checkExists(this.zookeeper, peerZnode) == -1) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        if (LOG.isDebugEnabled()) {<a name="line.379"></a>
-<span class="sourceLineNo">380</span>          LOG.debug("Peer " + peerZnode + " not found in hfile reference queue.");<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        }<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        return;<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      } else {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>        LOG.info("Removing peer " + peerZnode + " from hfile reference queue.");<a name="line.384"></a>
-<span class="sourceLineNo">385</span>        ZKUtil.deleteNodeRecursively(this.zookeeper, peerZnode);<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      }<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    } catch (KeeperException e) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      LOG.error("Ignoring the exception to remove peer " + peerId + " from hfile reference queue.",<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        e);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    }<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  }<a name="line.391"></a>
-<span class="sourceLineNo">392</span>}<a name="line.392"></a>
+<span class="sourceLineNo">350</span>      LOG.debug("Removing hfile references " + files + " from queue " + peerZnode);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    }<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    List&lt;ZKUtilOp&gt; listOfOps = new ArrayList&lt;ZKUtil.ZKUtilOp&gt;();<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    int size = files.size();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    for (int i = 0; i &lt; size; i++) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      listOfOps.add(ZKUtilOp.deleteNodeFailSilent(ZKUtil.joinZNode(peerZnode, files.get(i))));<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    if (debugEnabled) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      LOG.debug(" The multi list size for removing hfile references in zk for node " + peerZnode<a name="line.358"></a>
+<span class="sourceLineNo">359</span>          + " is " + listOfOps.size());<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    try {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      ZKUtil.multiOrSequential(this.zookeeper, listOfOps, true);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    } catch (KeeperException e) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      LOG.error("Failed to remove hfile reference znode=" + e.getPath(), e);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  }<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span>  @Override<a name="line.368"></a>
+<span class="sourceLineNo">369</span>  public void addPeerToHFileRefs(String peerId) throws ReplicationException {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    String peerZnode = ZKUtil.joinZNode(this.hfileRefsZNode, peerId);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    try {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      if (ZKUtil.checkExists(this.zookeeper, peerZnode) == -1) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        LOG.info("Adding peer " + peerId + " to hfile reference queue.");<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        ZKUtil.createWithParents(this.zookeeper, peerZnode);<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      }<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    } catch (KeeperException e) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      throw new ReplicationException("Failed to add peer " + peerId + " to hfile reference queue.",<a name="line.377"></a>
+<span class="sourceLineNo">378</span>          e);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    }<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public void removePeerFromHFileRefs(String peerId) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    final String peerZnode = ZKUtil.joinZNode(this.hfileRefsZNode, peerId);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    try {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      if (ZKUtil.checkExists(this.zookeeper, peerZnode) == -1) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        if (LOG.isDebugEnabled()) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>          LOG.debug("Peer " + peerZnode + " not found in hfile reference queue.");<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        }<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        return;<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      } else {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        LOG.info("Removing peer " + peerZnode + " from hfile reference queue.");<a name="line.392"></a>
+<span class="sourceLineNo">393</span>        ZKUtil.deleteNodeRecursively(this.zookeeper, peerZnode);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>      }<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    } catch (KeeperException e) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      LOG.error("Ignoring the exception to remove peer " + peerId + " from hfile reference queue.",<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        e);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    }<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  }<a name="line.399"></a>
+<span class="sourceLineNo">400</span>}<a name="line.400"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
index 2b27b2b..0a4e021 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
@@ -69,15 +69,15 @@
 <span class="sourceLineNo">061</span>  requiredArguments = {<a name="line.61"></a>
 <span class="sourceLineNo">062</span>    @org.jamon.annotations.Argument(name = "master", type = "HMaster")},<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  optionalArguments = {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.65"></a>
+<span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.65"></a>
 <span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;"),<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager")})<a name="line.72"></a>
+<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;")})<a name="line.72"></a>
 <span class="sourceLineNo">073</span>public class MasterStatusTmpl<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  extends org.jamon.AbstractTemplateProxy<a name="line.74"></a>
 <span class="sourceLineNo">075</span>{<a name="line.75"></a>
@@ -118,40 +118,40 @@
 <span class="sourceLineNo">110</span>      return m_master;<a name="line.110"></a>
 <span class="sourceLineNo">111</span>    }<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    private HMaster m_master;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    // 21, 1<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.114"></a>
+<span class="sourceLineNo">113</span>    // 26, 1<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    public void setFilter(String filter)<a name="line.114"></a>
 <span class="sourceLineNo">115</span>    {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      // 21, 1<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      m_frags = frags;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      m_frags__IsNotDefault = true;<a name="line.118"></a>
+<span class="sourceLineNo">116</span>      // 26, 1<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      m_filter = filter;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      m_filter__IsNotDefault = true;<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.120"></a>
+<span class="sourceLineNo">120</span>    public String getFilter()<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      return m_frags;<a name="line.122"></a>
+<span class="sourceLineNo">122</span>      return m_filter;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    public boolean getFrags__IsNotDefault()<a name="line.125"></a>
+<span class="sourceLineNo">124</span>    private String m_filter;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    public boolean getFilter__IsNotDefault()<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      return m_frags__IsNotDefault;<a name="line.127"></a>
+<span class="sourceLineNo">127</span>      return m_filter__IsNotDefault;<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    private boolean m_frags__IsNotDefault;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // 22, 1<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.131"></a>
+<span class="sourceLineNo">129</span>    private boolean m_filter__IsNotDefault;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // 24, 1<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      // 22, 1<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      m_metaLocation = metaLocation;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      m_metaLocation__IsNotDefault = true;<a name="line.135"></a>
+<span class="sourceLineNo">133</span>      // 24, 1<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      m_deadServers = deadServers;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      m_deadServers__IsNotDefault = true;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public ServerName getMetaLocation()<a name="line.137"></a>
+<span class="sourceLineNo">137</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      return m_metaLocation;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>      return m_deadServers;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    private ServerName m_metaLocation;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.142"></a>
+<span class="sourceLineNo">141</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    public boolean getDeadServers__IsNotDefault()<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return m_metaLocation__IsNotDefault;<a name="line.144"></a>
+<span class="sourceLineNo">144</span>      return m_deadServers__IsNotDefault;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.146"></a>
+<span class="sourceLineNo">146</span>    private boolean m_deadServers__IsNotDefault;<a name="line.146"></a>
 <span class="sourceLineNo">147</span>    // 25, 1<a name="line.147"></a>
 <span class="sourceLineNo">148</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    {<a name="line.149"></a>
@@ -169,108 +169,108 @@
 <span class="sourceLineNo">161</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    }<a name="line.162"></a>
 <span class="sourceLineNo">163</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // 24, 1<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.165"></a>
+<span class="sourceLineNo">164</span>    // 27, 1<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    public void setFormat(String format)<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      // 24, 1<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      m_deadServers = deadServers;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      m_deadServers__IsNotDefault = true;<a name="line.169"></a>
+<span class="sourceLineNo">167</span>      // 27, 1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m_format = format;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      m_format__IsNotDefault = true;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.171"></a>
+<span class="sourceLineNo">171</span>    public String getFormat()<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      return m_deadServers;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>      return m_format;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public boolean getDeadServers__IsNotDefault()<a name="line.176"></a>
+<span class="sourceLineNo">175</span>    private String m_format;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean getFormat__IsNotDefault()<a name="line.176"></a>
 <span class="sourceLineNo">177</span>    {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return m_deadServers__IsNotDefault;<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      return m_format__IsNotDefault;<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    private boolean m_deadServers__IsNotDefault;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    // 29, 1<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.182"></a>
+<span class="sourceLineNo">180</span>    private boolean m_format__IsNotDefault;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    // 28, 1<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    public void setServerManager(ServerManager serverManager)<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      // 29, 1<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      m_assignmentManager = assignmentManager;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      m_assignmentManager__IsNotDefault = true;<a name="line.186"></a>
+<span class="sourceLineNo">184</span>      // 28, 1<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      m_serverManager = serverManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      m_serverManager__IsNotDefault = true;<a name="line.186"></a>
 <span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    public AssignmentManager getAssignmentManager()<a name="line.188"></a>
+<span class="sourceLineNo">188</span>    public ServerManager getServerManager()<a name="line.188"></a>
 <span class="sourceLineNo">189</span>    {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      return m_assignmentManager;<a name="line.190"></a>
+<span class="sourceLineNo">190</span>      return m_serverManager;<a name="line.190"></a>
 <span class="sourceLineNo">191</span>    }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    private AssignmentManager m_assignmentManager;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.193"></a>
+<span class="sourceLineNo">192</span>    private ServerManager m_serverManager;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    public boolean getServerManager__IsNotDefault()<a name="line.193"></a>
 <span class="sourceLineNo">194</span>    {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      return m_assignmentManager__IsNotDefault;<a name="line.195"></a>
+<span class="sourceLineNo">195</span>      return m_serverManager__IsNotDefault;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    // 23, 1<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.199"></a>
+<span class="sourceLineNo">197</span>    private boolean m_serverManager__IsNotDefault;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // 21, 1<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    public void setFrags(Map&lt;String,Integer&gt; frags)<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // 23, 1<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      m_servers = servers;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      m_servers__IsNotDefault = true;<a name="line.203"></a>
+<span class="sourceLineNo">201</span>      // 21, 1<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      m_frags = frags;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      m_frags__IsNotDefault = true;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public List&lt;ServerName&gt; getServers()<a name="line.205"></a>
+<span class="sourceLineNo">205</span>    public Map&lt;String,Integer&gt; getFrags()<a name="line.205"></a>
 <span class="sourceLineNo">206</span>    {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return m_servers;<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      return m_frags;<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    private List&lt;ServerName&gt; m_servers;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    public boolean getServers__IsNotDefault()<a name="line.210"></a>
+<span class="sourceLineNo">209</span>    private Map&lt;String,Integer&gt; m_frags;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    public boolean getFrags__IsNotDefault()<a name="line.210"></a>
 <span class="sourceLineNo">211</span>    {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return m_servers__IsNotDefault;<a name="line.212"></a>
+<span class="sourceLineNo">212</span>      return m_frags__IsNotDefault;<a name="line.212"></a>
 <span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    private boolean m_servers__IsNotDefault;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    // 27, 1<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    public void setFormat(String format)<a name="line.216"></a>
+<span class="sourceLineNo">214</span>    private boolean m_frags__IsNotDefault;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    // 22, 1<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      // 27, 1<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      m_format = format;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      m_format__IsNotDefault = true;<a name="line.220"></a>
+<span class="sourceLineNo">218</span>      // 22, 1<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      m_metaLocation = metaLocation;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      m_metaLocation__IsNotDefault = true;<a name="line.220"></a>
 <span class="sourceLineNo">221</span>    }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    public String getFormat()<a name="line.222"></a>
+<span class="sourceLineNo">222</span>    public ServerName getMetaLocation()<a name="line.222"></a>
 <span class="sourceLineNo">223</span>    {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      return m_format;<a name="line.224"></a>
+<span class="sourceLineNo">224</span>      return m_metaLocation;<a name="line.224"></a>
 <span class="sourceLineNo">225</span>    }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private String m_format;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    public boolean getFormat__IsNotDefault()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>    private ServerName m_metaLocation;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      return m_format__IsNotDefault;<a name="line.229"></a>
+<span class="sourceLineNo">229</span>      return m_metaLocation__IsNotDefault;<a name="line.229"></a>
 <span class="sourceLineNo">230</span>    }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    private boolean m_format__IsNotDefault;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    // 26, 1<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public void setFilter(String filter)<a name="line.233"></a>
+<span class="sourceLineNo">231</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    // 29, 1<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.233"></a>
 <span class="sourceLineNo">234</span>    {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      // 26, 1<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      m_filter = filter;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      m_filter__IsNotDefault = true;<a name="line.237"></a>
+<span class="sourceLineNo">235</span>      // 29, 1<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      m_assignmentManager = assignmentManager;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      m_assignmentManager__IsNotDefault = true;<a name="line.237"></a>
 <span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public String getFilter()<a name="line.239"></a>
+<span class="sourceLineNo">239</span>    public AssignmentManager getAssignmentManager()<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return m_filter;<a name="line.241"></a>
+<span class="sourceLineNo">241</span>      return m_assignmentManager;<a name="line.241"></a>
 <span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    private String m_filter;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public boolean getFilter__IsNotDefault()<a name="line.244"></a>
+<span class="sourceLineNo">243</span>    private AssignmentManager m_assignmentManager;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.244"></a>
 <span class="sourceLineNo">245</span>    {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return m_filter__IsNotDefault;<a name="line.246"></a>
+<span class="sourceLineNo">246</span>      return m_assignmentManager__IsNotDefault;<a name="line.246"></a>
 <span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    private boolean m_filter__IsNotDefault;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    // 28, 1<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    public void setServerManager(ServerManager serverManager)<a name="line.250"></a>
+<span class="sourceLineNo">248</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // 23, 1<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.250"></a>
 <span class="sourceLineNo">251</span>    {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      // 28, 1<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      m_serverManager = serverManager;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      m_serverManager__IsNotDefault = true;<a name="line.254"></a>
+<span class="sourceLineNo">252</span>      // 23, 1<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      m_servers = servers;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      m_servers__IsNotDefault = true;<a name="line.254"></a>
 <span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public ServerManager getServerManager()<a name="line.256"></a>
+<span class="sourceLineNo">256</span>    public List&lt;ServerName&gt; getServers()<a name="line.256"></a>
 <span class="sourceLineNo">257</span>    {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return m_serverManager;<a name="line.258"></a>
+<span class="sourceLineNo">258</span>      return m_servers;<a name="line.258"></a>
 <span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    private ServerManager m_serverManager;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public boolean getServerManager__IsNotDefault()<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    private List&lt;ServerName&gt; m_servers;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public boolean getServers__IsNotDefault()<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      return m_serverManager__IsNotDefault;<a name="line.263"></a>
+<span class="sourceLineNo">263</span>      return m_servers__IsNotDefault;<a name="line.263"></a>
 <span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private boolean m_serverManager__IsNotDefault;<a name="line.265"></a>
+<span class="sourceLineNo">265</span>    private boolean m_servers__IsNotDefault;<a name="line.265"></a>
 <span class="sourceLineNo">266</span>  }<a name="line.266"></a>
 <span class="sourceLineNo">267</span>  @Override<a name="line.267"></a>
 <span class="sourceLineNo">268</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.268"></a>
@@ -282,17 +282,17 @@
 <span class="sourceLineNo">274</span>    return (ImplData) super.getImplData();<a name="line.274"></a>
 <span class="sourceLineNo">275</span>  }<a name="line.275"></a>
 <span class="sourceLineNo">276</span>  <a name="line.276"></a>
-<span class="sourceLineNo">277</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.278"></a>
+<span class="sourceLineNo">277</span>  protected String filter;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.278"></a>
 <span class="sourceLineNo">279</span>  {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    (getImplData()).setFrags(p_frags);<a name="line.280"></a>
+<span class="sourceLineNo">280</span>    (getImplData()).setFilter(p_filter);<a name="line.280"></a>
 <span class="sourceLineNo">281</span>    return this;<a name="line.281"></a>
 <span class="sourceLineNo">282</span>  }<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  <a name="line.283"></a>
-<span class="sourceLineNo">284</span>  protected ServerName metaLocation;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.285"></a>
+<span class="sourceLineNo">284</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.285"></a>
 <span class="sourceLineNo">286</span>  {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.287"></a>
+<span class="sourceLineNo">287</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>    return this;<a name="line.288"></a>
 <span class="sourceLineNo">289</span>  }<a name="line.289"></a>
 <span class="sourceLineNo">290</span>  <a name="line.290"></a>
@@ -303,45 +303,45 @@
 <span class="sourceLineNo">295</span>    return this;<a name="line.295"></a>
 <span class="sourceLineNo">296</span>  }<a name="line.296"></a>
 <span class="sourceLineNo">297</span>  <a name="line.297"></a>
-<span class="sourceLineNo">298</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.299"></a>
+<span class="sourceLineNo">298</span>  protected String format;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.299"></a>
 <span class="sourceLineNo">300</span>  {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.301"></a>
+<span class="sourceLineNo">301</span>    (getImplData()).setFormat(p_format);<a name="line.301"></a>
 <span class="sourceLineNo">302</span>    return this;<a name="line.302"></a>
 <span class="sourceLineNo">303</span>  }<a name="line.303"></a>
 <span class="sourceLineNo">304</span>  <a name="line.304"></a>
-<span class="sourceLineNo">305</span>  protected AssignmentManager assignmentManager;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.306"></a>
+<span class="sourceLineNo">305</span>  protected ServerManager serverManager;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.306"></a>
 <span class="sourceLineNo">307</span>  {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.308"></a>
+<span class="sourceLineNo">308</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.308"></a>
 <span class="sourceLineNo">309</span>    return this;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span>  <a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected List&lt;ServerName&gt; servers;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.313"></a>
+<span class="sourceLineNo">312</span>  protected Map&lt;String,Integer&gt; frags;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    (getImplData()).setServers(p_servers);<a name="line.315"></a>
+<span class="sourceLineNo">315</span>    (getImplData()).setFrags(p_frags);<a name="line.315"></a>
 <span class="sourceLineNo">316</span>    return this;<a name="line.316"></a>
 <span class="sourceLineNo">317</span>  }<a name="line.317"></a>
 <span class="sourceLineNo">318</span>  <a name="line.318"></a>
-<span class="sourceLineNo">319</span>  protected String format;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.320"></a>
+<span class="sourceLineNo">319</span>  protected ServerName metaLocation;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.320"></a>
 <span class="sourceLineNo">321</span>  {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    (getImplData()).setFormat(p_format);<a name="line.322"></a>
+<span class="sourceLineNo">322</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.322"></a>
 <span class="sourceLineNo">323</span>    return this;<a name="line.323"></a>
 <span class="sourceLineNo">324</span>  }<a name="line.324"></a>
 <span class="sourceLineNo">325</span>  <a name="line.325"></a>
-<span class="sourceLineNo">326</span>  protected String filter;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.327"></a>
+<span class="sourceLineNo">326</span>  protected AssignmentManager assignmentManager;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.327"></a>
 <span class="sourceLineNo">328</span>  {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    (getImplData()).setFilter(p_filter);<a name="line.329"></a>
+<span class="sourceLineNo">329</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.329"></a>
 <span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
 <span class="sourceLineNo">331</span>  }<a name="line.331"></a>
 <span class="sourceLineNo">332</span>  <a name="line.332"></a>
-<span class="sourceLineNo">333</span>  protected ServerManager serverManager;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.334"></a>
+<span class="sourceLineNo">333</span>  protected List&lt;ServerName&gt; servers;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.334"></a>
 <span class="sourceLineNo">335</span>  {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.336"></a>
+<span class="sourceLineNo">336</span>    (getImplData()).setServers(p_servers);<a name="line.336"></a>
 <span class="sourceLineNo">337</span>    return this;<a name="line.337"></a>
 <span class="sourceLineNo">338</span>  }<a name="line.338"></a>
 <span class="sourceLineNo">339</span>  <a name="line.339"></a>


[10/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/testdevapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html
index ee9b740..57575c0 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html
@@ -32,723 +32,730 @@
 <span class="sourceLineNo">024</span>import static org.junit.Assert.fail;<a name="line.24"></a>
 <span class="sourceLineNo">025</span><a name="line.25"></a>
 <span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.ArrayList;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.List;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.Locale;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.Map;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.TreeMap;<a name="line.31"></a>
-<span class="sourceLineNo">032</span><a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.conf.Configuration;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.fs.FileStatus;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.fs.FileSystem;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.fs.Path;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HConstants;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.TableName;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.Table;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.codec.KeyValueCodecWithTags;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.io.hfile.HFile;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.io.hfile.HFileScanner;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.regionserver.BloomType;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.testclassification.MapReduceTests;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.util.HFileTestUtil;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.junit.AfterClass;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.junit.BeforeClass;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.junit.Rule;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.junit.Test;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.junit.experimental.categories.Category;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.junit.rules.TestName;<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>/**<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * Test cases for the "load" half of the HFileOutputFormat bulk load<a name="line.66"></a>
-<span class="sourceLineNo">067</span> * functionality. These tests run faster than the full MR cluster<a name="line.67"></a>
-<span class="sourceLineNo">068</span> * tests in TestHFileOutputFormat<a name="line.68"></a>
-<span class="sourceLineNo">069</span> */<a name="line.69"></a>
-<span class="sourceLineNo">070</span>@Category({MapReduceTests.class, LargeTests.class})<a name="line.70"></a>
-<span class="sourceLineNo">071</span>public class TestLoadIncrementalHFiles {<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  @Rule<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  public TestName tn = new TestName();<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static final byte[] QUALIFIER = Bytes.toBytes("myqual");<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final byte[] FAMILY = Bytes.toBytes("myfam");<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final String NAMESPACE = "bulkNS";<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  static final String EXPECTED_MSG_FOR_NON_EXISTING_FAMILY = "Unmatched family names found";<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  static final int MAX_FILES_PER_REGION_PER_FAMILY = 4;<a name="line.80"></a>
+<span class="sourceLineNo">027</span>import java.nio.ByteBuffer;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.ArrayList;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.Deque;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.List;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.Locale;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.Map;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.TreeMap;<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.conf.Configuration;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.fs.FileStatus;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.fs.FileSystem;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.fs.Path;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HConstants;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.TableName;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.Table;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.codec.KeyValueCodecWithTags;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.io.hfile.HFile;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.io.hfile.HFileScanner;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.regionserver.BloomType;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.testclassification.MapReduceTests;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.util.HFileTestUtil;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.junit.AfterClass;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.junit.BeforeClass;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.junit.Rule;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.junit.Test;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.junit.experimental.categories.Category;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.junit.rules.TestName;<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>/**<a name="line.68"></a>
+<span class="sourceLineNo">069</span> * Test cases for the "load" half of the HFileOutputFormat bulk load<a name="line.69"></a>
+<span class="sourceLineNo">070</span> * functionality. These tests run faster than the full MR cluster<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * tests in TestHFileOutputFormat<a name="line.71"></a>
+<span class="sourceLineNo">072</span> */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>@Category({MapReduceTests.class, LargeTests.class})<a name="line.73"></a>
+<span class="sourceLineNo">074</span>public class TestLoadIncrementalHFiles {<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  @Rule<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  public TestName tn = new TestName();<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private static final byte[] QUALIFIER = Bytes.toBytes("myqual");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final byte[] FAMILY = Bytes.toBytes("myfam");<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final String NAMESPACE = "bulkNS";<a name="line.80"></a>
 <span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private static final byte[][] SPLIT_KEYS = new byte[][] {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    Bytes.toBytes("ddd"),<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    Bytes.toBytes("ppp")<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  };<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  static HBaseTestingUtility util = new HBaseTestingUtility();<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  @BeforeClass<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  public static void setUpBeforeClass() throws Exception {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    util.getConfiguration().set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY,"");<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    util.getConfiguration().setInt(<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      LoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY,<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      MAX_FILES_PER_REGION_PER_FAMILY);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    // change default behavior so that tag values are returned with normal rpcs<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    util.getConfiguration().set(HConstants.RPC_CODEC_CONF_KEY,<a name="line.96"></a>
-<span class="sourceLineNo">097</span>        KeyValueCodecWithTags.class.getCanonicalName());<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    util.startMiniCluster();<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>    setupNamespace();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
+<span class="sourceLineNo">082</span>  static final String EXPECTED_MSG_FOR_NON_EXISTING_FAMILY = "Unmatched family names found";<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  static final int MAX_FILES_PER_REGION_PER_FAMILY = 4;<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private static final byte[][] SPLIT_KEYS = new byte[][] {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    Bytes.toBytes("ddd"),<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    Bytes.toBytes("ppp")<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  };<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>  static HBaseTestingUtility util = new HBaseTestingUtility();<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  @BeforeClass<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  public static void setUpBeforeClass() throws Exception {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    util.getConfiguration().set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY,"");<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    util.getConfiguration().setInt(<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      LoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY,<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      MAX_FILES_PER_REGION_PER_FAMILY);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    // change default behavior so that tag values are returned with normal rpcs<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    util.getConfiguration().set(HConstants.RPC_CODEC_CONF_KEY,<a name="line.99"></a>
+<span class="sourceLineNo">100</span>        KeyValueCodecWithTags.class.getCanonicalName());<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    util.startMiniCluster();<a name="line.101"></a>
 <span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  protected static void setupNamespace() throws Exception {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    util.getHBaseAdmin().createNamespace(NamespaceDescriptor.create(NAMESPACE).build());<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  @AfterClass<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  public static void tearDownAfterClass() throws Exception {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    util.shutdownMiniCluster();<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
-<span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span>  @Test(timeout = 120000)<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public void testSimpleLoadWithMap() throws Exception {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    runTest("testSimpleLoadWithMap", BloomType.NONE,<a name="line.114"></a>
-<span class="sourceLineNo">115</span>        new byte[][][] {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("cccc") },<a name="line.116"></a>
-<span class="sourceLineNo">117</span>          new byte[][]{ Bytes.toBytes("ddd"), Bytes.toBytes("ooo") },<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    },  true);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  }<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>  /**<a name="line.121"></a>
-<span class="sourceLineNo">122</span>   * Test case that creates some regions and loads<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   * HFiles that fit snugly inside those regions<a name="line.123"></a>
-<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  @Test(timeout = 120000)<a name="line.125"></a>
-<span class="sourceLineNo">126</span>  public void testSimpleLoad() throws Exception {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    runTest("testSimpleLoad", BloomType.NONE,<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        new byte[][][] {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("cccc") },<a name="line.129"></a>
-<span class="sourceLineNo">130</span>          new byte[][]{ Bytes.toBytes("ddd"), Bytes.toBytes("ooo") },<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    });<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>  @Test(timeout = 120000)<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  public void testSimpleLoadWithFileCopy() throws Exception {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    String testName = "mytable_testSimpleLoadWithFileCopy";<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    final byte[] TABLE_NAME = Bytes.toBytes("mytable_" + testName);<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    runTest(testName, buildHTD(TableName.valueOf(TABLE_NAME), BloomType.NONE), BloomType.NONE,<a name="line.138"></a>
-<span class="sourceLineNo">139</span>        false, null, new byte[][][] {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("cccc") },<a name="line.140"></a>
-<span class="sourceLineNo">141</span>          new byte[][]{ Bytes.toBytes("ddd"), Bytes.toBytes("ooo") },<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    }, false, true);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  /**<a name="line.145"></a>
-<span class="sourceLineNo">146</span>   * Test case that creates some regions and loads<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   * HFiles that cross the boundaries of those regions<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   */<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  @Test(timeout = 120000)<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  public void testRegionCrossingLoad() throws Exception {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    runTest("testRegionCrossingLoad", BloomType.NONE,<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        new byte[][][] {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("eee") },<a name="line.153"></a>
-<span class="sourceLineNo">154</span>          new byte[][]{ Bytes.toBytes("fff"), Bytes.toBytes("zzz") },<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    });<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  }<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>  /**<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   * Test loading into a column family that has a ROW bloom filter.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   */<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  @Test(timeout = 60000)<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  public void testRegionCrossingRowBloom() throws Exception {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    runTest("testRegionCrossingLoadRowBloom", BloomType.ROW,<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        new byte[][][] {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("eee") },<a name="line.165"></a>
-<span class="sourceLineNo">166</span>          new byte[][]{ Bytes.toBytes("fff"), Bytes.toBytes("zzz") },<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    });<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  /**<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   * Test loading into a column family that has a ROWCOL bloom filter.<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   */<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  @Test(timeout = 120000)<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  public void testRegionCrossingRowColBloom() throws Exception {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    runTest("testRegionCrossingLoadRowColBloom", BloomType.ROWCOL,<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        new byte[][][] {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("eee") },<a name="line.177"></a>
-<span class="sourceLineNo">178</span>          new byte[][]{ Bytes.toBytes("fff"), Bytes.toBytes("zzz") },<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    });<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>  /**<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * Test case that creates some regions and loads HFiles that have<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * different region boundaries than the table pre-split.<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  @Test(timeout = 120000)<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  public void testSimpleHFileSplit() throws Exception {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    runTest("testHFileSplit", BloomType.NONE,<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        new byte[][] {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>          Bytes.toBytes("aaa"), Bytes.toBytes("fff"), Bytes.toBytes("jjj"),<a name="line.190"></a>
-<span class="sourceLineNo">191</span>          Bytes.toBytes("ppp"), Bytes.toBytes("uuu"), Bytes.toBytes("zzz"),<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        },<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        new byte[][][] {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("lll") },<a name="line.194"></a>
-<span class="sourceLineNo">195</span>          new byte[][]{ Bytes.toBytes("mmm"), Bytes.toBytes("zzz") },<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    );<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  }<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>  /**<a name="line.200"></a>
-<span class="sourceLineNo">201</span>   * Test case that creates some regions and loads HFiles that cross the boundaries<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   * and have different region boundaries than the table pre-split.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  @Test(timeout = 60000)<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public void testRegionCrossingHFileSplit() throws Exception {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    testRegionCrossingHFileSplit(BloomType.NONE);<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  }<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  /**<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * Test case that creates some regions and loads HFiles that cross the boundaries<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   * have a ROW bloom filter and a different region boundaries than the table pre-split.<a name="line.211"></a>
-<span class="sourceLineNo">212</span>   */<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  @Test(timeout = 120000)<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  public void testRegionCrossingHFileSplitRowBloom() throws Exception {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    testRegionCrossingHFileSplit(BloomType.ROW);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  /**<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   * Test case that creates some regions and loads HFiles that cross the boundaries<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   * have a ROWCOL bloom filter and a different region boundaries than the table pre-split.<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   */<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  @Test(timeout = 120000)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  public void testRegionCrossingHFileSplitRowColBloom() throws Exception {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    testRegionCrossingHFileSplit(BloomType.ROWCOL);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>  }<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>  @Test<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public void testSplitALot() throws Exception {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    runTest("testSplitALot", BloomType.NONE,<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      new byte[][] {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        Bytes.toBytes("aaaa"), Bytes.toBytes("bbb"),<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        Bytes.toBytes("ccc"), Bytes.toBytes("ddd"),<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        Bytes.toBytes("eee"), Bytes.toBytes("fff"),<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        Bytes.toBytes("ggg"), Bytes.toBytes("hhh"),<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        Bytes.toBytes("iii"), Bytes.toBytes("lll"),<a name="line.235"></a>
-<span class="sourceLineNo">236</span>        Bytes.toBytes("mmm"), Bytes.toBytes("nnn"),<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        Bytes.toBytes("ooo"), Bytes.toBytes("ppp"),<a name="line.237"></a>
-<span class="sourceLineNo">238</span>        Bytes.toBytes("qqq"), Bytes.toBytes("rrr"),<a name="line.238"></a>
-<span class="sourceLineNo">239</span>        Bytes.toBytes("sss"), Bytes.toBytes("ttt"),<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        Bytes.toBytes("uuu"), Bytes.toBytes("vvv"),<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        Bytes.toBytes("zzz"),<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      },<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      new byte[][][] {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        new byte[][] { Bytes.toBytes("aaaa"), Bytes.toBytes("zzz") },<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      }<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    );<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  private void testRegionCrossingHFileSplit(BloomType bloomType) throws Exception {<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    runTest("testHFileSplit" + bloomType + "Bloom", bloomType,<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        new byte[][] {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>          Bytes.toBytes("aaa"), Bytes.toBytes("fff"), Bytes.toBytes("jjj"),<a name="line.252"></a>
-<span class="sourceLineNo">253</span>          Bytes.toBytes("ppp"), Bytes.toBytes("uuu"), Bytes.toBytes("zzz"),<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        },<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        new byte[][][] {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("eee") },<a name="line.256"></a>
-<span class="sourceLineNo">257</span>          new byte[][]{ Bytes.toBytes("fff"), Bytes.toBytes("zzz") },<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        }<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    );<a name="line.259"></a>
-<span class="sourceLineNo">260</span>  }<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
-<span class="sourceLineNo">262</span>  private HTableDescriptor buildHTD(TableName tableName, BloomType bloomType) {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    HTableDescriptor htd = new HTableDescriptor(tableName);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    HColumnDescriptor familyDesc = new HColumnDescriptor(FAMILY);<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    familyDesc.setBloomFilterType(bloomType);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    htd.addFamily(familyDesc);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    return htd;<a name="line.267"></a>
-<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
-<span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>  private void runTest(String testName, BloomType bloomType,<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      byte[][][] hfileRanges) throws Exception {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    runTest(testName, bloomType, null, hfileRanges);<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  }<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>  private void runTest(String testName, BloomType bloomType,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      byte[][][] hfileRanges, boolean useMap) throws Exception {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    runTest(testName, bloomType, null, hfileRanges, useMap);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  }<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  private void runTest(String testName, BloomType bloomType,<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      byte[][] tableSplitKeys, byte[][][] hfileRanges) throws Exception {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    runTest(testName, bloomType, tableSplitKeys, hfileRanges, false);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  private void runTest(String testName, BloomType bloomType,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      byte[][] tableSplitKeys, byte[][][] hfileRanges, boolean useMap) throws Exception {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    final byte[] TABLE_NAME = Bytes.toBytes("mytable_"+testName);<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    final boolean preCreateTable = tableSplitKeys != null;<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>    // Run the test bulkloading the table to the default namespace<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    final TableName TABLE_WITHOUT_NS = TableName.valueOf(TABLE_NAME);<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    runTest(testName, TABLE_WITHOUT_NS, bloomType, preCreateTable, tableSplitKeys, hfileRanges,<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        useMap);<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>    // Run the test bulkloading the table to the specified namespace<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    final TableName TABLE_WITH_NS = TableName.valueOf(Bytes.toBytes(NAMESPACE), TABLE_NAME);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    runTest(testName, TABLE_WITH_NS, bloomType, preCreateTable, tableSplitKeys, hfileRanges,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        useMap);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  }<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span>  private void runTest(String testName, TableName tableName, BloomType bloomType,<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      boolean preCreateTable, byte[][] tableSplitKeys, byte[][][] hfileRanges, boolean useMap)<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          throws Exception {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    HTableDescriptor htd = buildHTD(tableName, bloomType);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    runTest(testName, htd, bloomType, preCreateTable, tableSplitKeys, hfileRanges, useMap, false);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  private void runTest(String testName, HTableDescriptor htd, BloomType bloomType,<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      boolean preCreateTable, byte[][] tableSplitKeys, byte[][][] hfileRanges, boolean useMap,<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      boolean copyFiles) throws Exception {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    Path dir = util.getDataTestDirOnTestFS(testName);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    FileSystem fs = util.getTestFileSystem();<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    dir = dir.makeQualified(fs);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    Path familyDir = new Path(dir, Bytes.toString(FAMILY));<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>    int hfileIdx = 0;<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    Map&lt;byte[], List&lt;Path&gt;&gt; map = null;<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    List&lt;Path&gt; list = null;<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    if (useMap || copyFiles) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      list = new ArrayList&lt;&gt;();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    }<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    if (useMap) {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      map = new TreeMap&lt;byte[], List&lt;Path&gt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      map.put(FAMILY, list);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    Path last = null;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    for (byte[][] range : hfileRanges) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      byte[] from = range[0];<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      byte[] to = range[1];<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      Path path = new Path(familyDir, "hfile_" + hfileIdx++);<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      HFileTestUtil.createHFile(util.getConfiguration(), fs, path, FAMILY, QUALIFIER, from, to, 1000);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      if (useMap) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span>        last = path;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>        list.add(path);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      }<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    int expectedRows = hfileIdx * 1000;<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>    if (preCreateTable || map != null) {<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      util.getHBaseAdmin().createTable(htd, tableSplitKeys);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    }<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>    final TableName tableName = htd.getTableName();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    Configuration conf = util.getConfiguration();<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    if (copyFiles) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      conf.setBoolean(LoadIncrementalHFiles.ALWAYS_COPY_FILES, true);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    LoadIncrementalHFiles loader = new LoadIncrementalHFiles(conf);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    String [] args= {dir.toString(), tableName.toString()};<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    if (useMap) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      fs.delete(last);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      List&lt;String&gt; missingHFiles = loader.run(null, map, tableName);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      expectedRows -= 1000;<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      assertTrue(missingHFiles.contains(last.getName()));<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    } else {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      loader.run(args);<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    }<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>    if (copyFiles) {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      for (Path p : list) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        assertTrue(fs.exists(p));<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
-<span class="sourceLineNo">364</span><a name="line.364"></a>
-<span class="sourceLineNo">365</span>    Table table = util.getConnection().getTable(tableName);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    try {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      assertEquals(expectedRows, util.countRows(table));<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    } finally {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      table.close();<a name="line.369"></a>
+<span class="sourceLineNo">103</span>    setupNamespace();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  protected static void setupNamespace() throws Exception {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    util.getHBaseAdmin().createNamespace(NamespaceDescriptor.create(NAMESPACE).build());<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  @AfterClass<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  public static void tearDownAfterClass() throws Exception {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    util.shutdownMiniCluster();<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  @Test(timeout = 120000)<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  public void testSimpleLoadWithMap() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    runTest("testSimpleLoadWithMap", BloomType.NONE,<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        new byte[][][] {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("cccc") },<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          new byte[][]{ Bytes.toBytes("ddd"), Bytes.toBytes("ooo") },<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    },  true);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>  /**<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * Test case that creates some regions and loads<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * HFiles that fit snugly inside those regions<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  @Test(timeout = 120000)<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  public void testSimpleLoad() throws Exception {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    runTest("testSimpleLoad", BloomType.NONE,<a name="line.130"></a>
+<span class="sourceLineNo">131</span>        new byte[][][] {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("cccc") },<a name="line.132"></a>
+<span class="sourceLineNo">133</span>          new byte[][]{ Bytes.toBytes("ddd"), Bytes.toBytes("ooo") },<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    });<a name="line.134"></a>
+<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>  @Test(timeout = 120000)<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public void testSimpleLoadWithFileCopy() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    String testName = "mytable_testSimpleLoadWithFileCopy";<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    final byte[] TABLE_NAME = Bytes.toBytes("mytable_" + testName);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    runTest(testName, buildHTD(TableName.valueOf(TABLE_NAME), BloomType.NONE), BloomType.NONE,<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        false, null, new byte[][][] {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("cccc") },<a name="line.143"></a>
+<span class="sourceLineNo">144</span>          new byte[][]{ Bytes.toBytes("ddd"), Bytes.toBytes("ooo") },<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    }, false, true);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>  /**<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * Test case that creates some regions and loads<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * HFiles that cross the boundaries of those regions<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  @Test(timeout = 120000)<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  public void testRegionCrossingLoad() throws Exception {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    runTest("testRegionCrossingLoad", BloomType.NONE,<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        new byte[][][] {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("eee") },<a name="line.156"></a>
+<span class="sourceLineNo">157</span>          new byte[][]{ Bytes.toBytes("fff"), Bytes.toBytes("zzz") },<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    });<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  }<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>  /**<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   * Test loading into a column family that has a ROW bloom filter.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  @Test(timeout = 60000)<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  public void testRegionCrossingRowBloom() throws Exception {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    runTest("testRegionCrossingLoadRowBloom", BloomType.ROW,<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        new byte[][][] {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("eee") },<a name="line.168"></a>
+<span class="sourceLineNo">169</span>          new byte[][]{ Bytes.toBytes("fff"), Bytes.toBytes("zzz") },<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    });<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * Test loading into a column family that has a ROWCOL bloom filter.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  @Test(timeout = 120000)<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  public void testRegionCrossingRowColBloom() throws Exception {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    runTest("testRegionCrossingLoadRowColBloom", BloomType.ROWCOL,<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        new byte[][][] {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("eee") },<a name="line.180"></a>
+<span class="sourceLineNo">181</span>          new byte[][]{ Bytes.toBytes("fff"), Bytes.toBytes("zzz") },<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    });<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>  /**<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   * Test case that creates some regions and loads HFiles that have<a name="line.186"></a>
+<span class="sourceLineNo">187</span>   * different region boundaries than the table pre-split.<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  @Test(timeout = 120000)<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  public void testSimpleHFileSplit() throws Exception {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    runTest("testHFileSplit", BloomType.NONE,<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        new byte[][] {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          Bytes.toBytes("aaa"), Bytes.toBytes("fff"), Bytes.toBytes("jjj"),<a name="line.193"></a>
+<span class="sourceLineNo">194</span>          Bytes.toBytes("ppp"), Bytes.toBytes("uuu"), Bytes.toBytes("zzz"),<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        },<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        new byte[][][] {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("lll") },<a name="line.197"></a>
+<span class="sourceLineNo">198</span>          new byte[][]{ Bytes.toBytes("mmm"), Bytes.toBytes("zzz") },<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    );<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  /**<a name="line.203"></a>
+<span class="sourceLineNo">204</span>   * Test case that creates some regions and loads HFiles that cross the boundaries<a name="line.204"></a>
+<span class="sourceLineNo">205</span>   * and have different region boundaries than the table pre-split.<a name="line.205"></a>
+<span class="sourceLineNo">206</span>   */<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  @Test(timeout = 60000)<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  public void testRegionCrossingHFileSplit() throws Exception {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    testRegionCrossingHFileSplit(BloomType.NONE);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>  /**<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   * Test case that creates some regions and loads HFiles that cross the boundaries<a name="line.213"></a>
+<span class="sourceLineNo">214</span>   * have a ROW bloom filter and a different region boundaries than the table pre-split.<a name="line.214"></a>
+<span class="sourceLineNo">215</span>   */<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  @Test(timeout = 120000)<a name="line.216"></a>
+<span class="sourceLineNo">217</span>  public void testRegionCrossingHFileSplitRowBloom() throws Exception {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    testRegionCrossingHFileSplit(BloomType.ROW);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>  }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  /**<a name="line.221"></a>
+<span class="sourceLineNo">222</span>   * Test case that creates some regions and loads HFiles that cross the boundaries<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   * have a ROWCOL bloom filter and a different region boundaries than the table pre-split.<a name="line.223"></a>
+<span class="sourceLineNo">224</span>   */<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  @Test(timeout = 120000)<a name="line.225"></a>
+<span class="sourceLineNo">226</span>  public void testRegionCrossingHFileSplitRowColBloom() throws Exception {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    testRegionCrossingHFileSplit(BloomType.ROWCOL);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  }<a name="line.228"></a>
+<span class="sourceLineNo">229</span><a name="line.229"></a>
+<span class="sourceLineNo">230</span>  @Test<a name="line.230"></a>
+<span class="sourceLineNo">231</span>  public void testSplitALot() throws Exception {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    runTest("testSplitALot", BloomType.NONE,<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      new byte[][] {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        Bytes.toBytes("aaaa"), Bytes.toBytes("bbb"),<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        Bytes.toBytes("ccc"), Bytes.toBytes("ddd"),<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        Bytes.toBytes("eee"), Bytes.toBytes("fff"),<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        Bytes.toBytes("ggg"), Bytes.toBytes("hhh"),<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        Bytes.toBytes("iii"), Bytes.toBytes("lll"),<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        Bytes.toBytes("mmm"), Bytes.toBytes("nnn"),<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        Bytes.toBytes("ooo"), Bytes.toBytes("ppp"),<a name="line.240"></a>
+<span class="sourceLineNo">241</span>        Bytes.toBytes("qqq"), Bytes.toBytes("rrr"),<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        Bytes.toBytes("sss"), Bytes.toBytes("ttt"),<a name="line.242"></a>
+<span class="sourceLineNo">243</span>        Bytes.toBytes("uuu"), Bytes.toBytes("vvv"),<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        Bytes.toBytes("zzz"),<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      },<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      new byte[][][] {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>        new byte[][] { Bytes.toBytes("aaaa"), Bytes.toBytes("zzz") },<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    );<a name="line.249"></a>
+<span class="sourceLineNo">250</span>  }<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>  private void testRegionCrossingHFileSplit(BloomType bloomType) throws Exception {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    runTest("testHFileSplit" + bloomType + "Bloom", bloomType,<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        new byte[][] {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>          Bytes.toBytes("aaa"), Bytes.toBytes("fff"), Bytes.toBytes("jjj"),<a name="line.255"></a>
+<span class="sourceLineNo">256</span>          Bytes.toBytes("ppp"), Bytes.toBytes("uuu"), Bytes.toBytes("zzz"),<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        },<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        new byte[][][] {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>          new byte[][]{ Bytes.toBytes("aaaa"), Bytes.toBytes("eee") },<a name="line.259"></a>
+<span class="sourceLineNo">260</span>          new byte[][]{ Bytes.toBytes("fff"), Bytes.toBytes("zzz") },<a name="line.260"></a>
+<span class="sourceLineNo">261</span>        }<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    );<a name="line.262"></a>
+<span class="sourceLineNo">263</span>  }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>  private HTableDescriptor buildHTD(TableName tableName, BloomType bloomType) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    HTableDescriptor htd = new HTableDescriptor(tableName);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    HColumnDescriptor familyDesc = new HColumnDescriptor(FAMILY);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    familyDesc.setBloomFilterType(bloomType);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    htd.addFamily(familyDesc);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    return htd;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>  private void runTest(String testName, BloomType bloomType,<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      byte[][][] hfileRanges) throws Exception {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    runTest(testName, bloomType, null, hfileRanges);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  private void runTest(String testName, BloomType bloomType,<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      byte[][][] hfileRanges, boolean useMap) throws Exception {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    runTest(testName, bloomType, null, hfileRanges, useMap);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  }<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>  private void runTest(String testName, BloomType bloomType,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      byte[][] tableSplitKeys, byte[][][] hfileRanges) throws Exception {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    runTest(testName, bloomType, tableSplitKeys, hfileRanges, false);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  private void runTest(String testName, BloomType bloomType,<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      byte[][] tableSplitKeys, byte[][][] hfileRanges, boolean useMap) throws Exception {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    final byte[] TABLE_NAME = Bytes.toBytes("mytable_"+testName);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    final boolean preCreateTable = tableSplitKeys != null;<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    // Run the test bulkloading the table to the default namespace<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    final TableName TABLE_WITHOUT_NS = TableName.valueOf(TABLE_NAME);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    runTest(testName, TABLE_WITHOUT_NS, bloomType, preCreateTable, tableSplitKeys, hfileRanges,<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        useMap);<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span>    // Run the test bulkloading the table to the specified namespace<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    final TableName TABLE_WITH_NS = TableName.valueOf(Bytes.toBytes(NAMESPACE), TABLE_NAME);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    runTest(testName, TABLE_WITH_NS, bloomType, preCreateTable, tableSplitKeys, hfileRanges,<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        useMap);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>  }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>  private void runTest(String testName, TableName tableName, BloomType bloomType,<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      boolean preCreateTable, byte[][] tableSplitKeys, byte[][][] hfileRanges, boolean useMap)<a name="line.305"></a>
+<span class="sourceLineNo">306</span>          throws Exception {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    HTableDescriptor htd = buildHTD(tableName, bloomType);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    runTest(testName, htd, bloomType, preCreateTable, tableSplitKeys, hfileRanges, useMap, false);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>  }<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>  private void runTest(String testName, HTableDescriptor htd, BloomType bloomType,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      boolean preCreateTable, byte[][] tableSplitKeys, byte[][][] hfileRanges, boolean useMap,<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      boolean copyFiles) throws Exception {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    Path dir = util.getDataTestDirOnTestFS(testName);<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    FileSystem fs = util.getTestFileSystem();<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    dir = dir.makeQualified(fs);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    Path familyDir = new Path(dir, Bytes.toString(FAMILY));<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>    int hfileIdx = 0;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    Map&lt;byte[], List&lt;Path&gt;&gt; map = null;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    List&lt;Path&gt; list = null;<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    if (useMap || copyFiles) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      list = new ArrayList&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    }<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    if (useMap) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      map = new TreeMap&lt;byte[], List&lt;Path&gt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      map.put(FAMILY, list);<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    Path last = null;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    for (byte[][] range : hfileRanges) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      byte[] from = range[0];<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      byte[] to = range[1];<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      Path path = new Path(familyDir, "hfile_" + hfileIdx++);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      HFileTestUtil.createHFile(util.getConfiguration(), fs, path, FAMILY, QUALIFIER, from, to, 1000);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      if (useMap) {<a name="line.335"></a>
+<span class="sourceLineNo">336</span>        last = path;<a name="line.336"></a>
+<span class="sourceLineNo">337</span>        list.add(path);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    }<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    int expectedRows = hfileIdx * 1000;<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>    if (preCreateTable || map != null) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      util.getHBaseAdmin().createTable(htd, tableSplitKeys);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    }<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>    final TableName tableName = htd.getTableName();<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    Configuration conf = util.getConfiguration();<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    if (copyFiles) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      conf.setBoolean(LoadIncrementalHFiles.ALWAYS_COPY_FILES, true);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    }<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    LoadIncrementalHFiles loader = new LoadIncrementalHFiles(conf);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    String [] args= {dir.toString(), tableName.toString()};<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    if (useMap) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      fs.delete(last);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      Map&lt;LoadQueueItem, ByteBuffer&gt; loaded = loader.run(null, map, tableName);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      expectedRows -= 1000;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      for (LoadQueueItem item : loaded.keySet()) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        if (item.hfilePath.getName().equals(last.getName())) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>          fail(last + " should be missing");<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        }<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      }<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    } else {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      loader.run(args);<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span>    if (copyFiles) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      for (Path p : list) {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        assertTrue(fs.exists(p));<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      }<a name="line.369"></a>
 <span class="sourceLineNo">370</span>    }<a name="line.370"></a>
 <span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>    // verify staging folder has been cleaned up<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    Path stagingBasePath = new Path(FSUtils.getRootDir(util.getConfiguration()), HConstants.BULKLOAD_STAGING_DIR_NAME);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    if(fs.exists(stagingBasePath)) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      FileStatus[] files = fs.listStatus(stagingBasePath);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      for(FileStatus file : files) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>        assertTrue("Folder=" + file.getPath() + " is not cleaned up.",<a name="line.377"></a>
-<span class="sourceLineNo">378</span>          file.getPath().getName() != "DONOTERASE");<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      }<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    }<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>    util.deleteTable(tableName);<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  }<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>  /**<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   * Test that tags survive through a bulk load that needs to split hfiles.<a name="line.386"></a>
-<span class="sourceLineNo">387</span>   *<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   * This test depends on the "hbase.client.rpc.codec" =  KeyValueCodecWithTags so that the client<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   * can get tags in the responses.<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   */<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Test(timeout = 60000)<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public void testTagsSurviveBulkLoadSplit() throws Exception {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    Path dir = util.getDataTestDirOnTestFS(tn.getMethodName());<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    FileSystem fs = util.getTestFileSystem();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    dir = dir.makeQualified(fs);<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    Path familyDir = new Path(dir, Bytes.toString(FAMILY));<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    // table has these split points<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    byte [][] tableSplitKeys = new byte[][] {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>            Bytes.toBytes("aaa"), Bytes.toBytes("fff"), Bytes.toBytes("jjj"),<a name="line.399"></a>
-<span class="sourceLineNo">400</span>            Bytes.toBytes("ppp"), Bytes.toBytes("uuu"), Bytes.toBytes("zzz"),<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    };<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>    // creating an hfile that has values that span the split points.<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    byte[] from = Bytes.toBytes("ddd");<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    byte[] to = Bytes.toBytes("ooo");<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    HFileTestUtil.createHFileWithTags(util.getConfiguration(), fs,<a name="line.406"></a>
-<span class="sourceLineNo">407</span>        new Path(familyDir, tn.getMethodName()+"_hfile"),<a name="line.407"></a>
-<span class="sourceLineNo">408</span>        FAMILY, QUALIFIER, from, to, 1000);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    int expectedRows = 1000;<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>    TableName tableName = TableName.valueOf(tn.getMethodName());<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    HTableDescriptor htd = buildHTD(tableName, BloomType.NONE);<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    util.getAdmin().createTable(htd, tableSplitKeys);<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>    LoadIncrementalHFiles loader = new LoadIncrementalHFiles(util.getConfiguration());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    String [] args= {dir.toString(), tableName.toString()};<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    loader.run(args);<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>    Table table = util.getConnection().getTable(tableName);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    try {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      assertEquals(expectedRows, util.countRows(table));<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      HFileTestUtil.verifyTags(table);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    } finally {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      table.close();<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    }<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>    util.deleteTable(tableName);<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  }<a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span>  /**<a name="line.430"></a>
-<span class="sourceLineNo">431</span>   * Test loading into a column family that does not exist.<a name="line.431"></a>
-<span class="sourceLineNo">432</span>   */<a name="line.432"></a>
-<span class="sourceLineNo">433</span>  @Test(timeout = 60000)<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  public void testNonexistentColumnFamilyLoad() throws Exception {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    String testName = "testNonexistentColumnFamilyLoad";<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    byte[][][] hFileRanges = new byte[][][] {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      new byte[][]{ Bytes.toBytes("aaa"), Bytes.toBytes("ccc") },<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      new byte[][]{ Bytes.toBytes("ddd"), Bytes.toBytes("ooo") },<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    };<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>    final byte[] TABLE = Bytes.toBytes("mytable_"+testName);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(TABLE));<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    // set real family name to upper case in purpose to simulate the case that<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    // family name in HFiles is invalid<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    HColumnDescriptor family =<a name="line.445"></a>
-<span class="sourceLineNo">446</span>        new HColumnDescriptor(Bytes.toBytes(new String(FAMILY).toUpperCase(Locale.ROOT)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    htd.addFamily(family);<a name="line.447"></a>
-<span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span>    try {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      runTest(testName, htd, BloomType.NONE, true, SPLIT_KEYS, hFileRanges, false, false);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>      assertTrue("Loading into table with non-existent family should have failed", false);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    } catch (Exception e) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      assertTrue("IOException expected", e instanceof IOException);<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      // further check whether the exception message is correct<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      String errMsg = e.getMessage();<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      assertTrue("Incorrect exception message, expected message: ["<a name="line.456"></a>
-<span class="sourceLineNo">457</span>          + EXPECTED_MSG_FOR_NON_EXISTING_FAMILY + "], current message: [" + errMsg + "]",<a name="line.457"></a>
-<span class="sourceLineNo">458</span>          errMsg.contains(EXPECTED_MSG_FOR_NON_EXISTING_FAMILY));<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    }<a name="line.459"></a>
-<span class="sourceLineNo">460</span>  }<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>  @Test(timeout = 120000)<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  public void testNonHfileFolderWithUnmatchedFamilyName() throws Exception {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    testNonHfileFolder("testNonHfileFolderWithUnmatchedFamilyName", true);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>  }<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>  @Test(timeout = 120000)<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public void testNonHfileFolder() throws Exception {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    testNonHfileFolder("testNonHfileFolder", false);<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>  /**<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * Write a random data file and a non-file in a dir with a valid family name<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * but not part of the table families. we should we able to bulkload without<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * getting the unmatched family exception. HBASE-13037/HBASE-13227<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   */<a name="line.476"></a>
-<span class="sourceLineNo">477</span>  private void testNonHfileFolder(String tableName, boolean preCreateTable) throws Exception {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    Path dir = util.getDataTestDirOnTestFS(tableName);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    FileSystem fs = util.getTestFileSystem();<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    dir = dir.makeQualified(fs);<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span>    Path familyDir = new Path(dir, Bytes.toString(FAMILY));<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    HFileTestUtil.createHFile(util.getConfiguration(), fs, new Path(familyDir, "hfile_0"),<a name="line.483"></a>
-<span class="sourceLineNo">484</span>        FAMILY, QUALIFIER, Bytes.toBytes("begin"), Bytes.toBytes("end"), 500);<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    createRandomDataFile(fs, new Path(familyDir, "012356789"), 16 * 1024);<a name="line.485"></a>
-<span class="sourceLineNo">486</span><a name="line.486"></a>
-<span class="sourceLineNo">487</span>    final String NON_FAMILY_FOLDER = "_logs";<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    Path nonFamilyDir = new Path(dir, NON_FAMILY_FOLDER);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    fs.mkdirs(nonFamilyDir);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    fs.mkdirs(new Path(nonFamilyDir, "non-file"));<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    createRandomDataFile(fs, new Path(nonFamilyDir, "012356789"), 16 * 1024);<a name="line.491"></a>
-<span class="sourceLineNo">492</span><a name="line.492"></a>
-<span class="sourceLineNo">493</span>    Table table = null;<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    try {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      if (preCreateTable) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>        table = util.createTable(TableName.valueOf(tableName), FAMILY);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      } else {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        table = util.getConnection().getTable(TableName.valueOf(tableName));<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>      final String[] args = {dir.toString(), tableName};<a name="line.501"></a>
-<span class="sourceLineNo">502</span>      new LoadIncrementalHFiles(util.getConfiguration()).run(args);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      assertEquals(500, util.countRows(table));<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    } finally {<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      if (table != null) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        table.close();<a name="line.506"></a>
-<span class="sourceLineNo">507</span>      }<a name="line.507"></a>
-<span class="sourceLineNo">508</span>      fs.delete(dir, true);<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    }<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  }<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>  private static void createRandomDataFile(FileSystem fs, Path path, int size)<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      throws IOException {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>    FSDataOutputStream stream = fs.create(path);<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    try {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      byte[] data = new byte[1024];<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      for (int i = 0; i &lt; data.length; ++i) {<a name="line.517"></a>
-<span class="sourceLineNo">518</span>        data[i] = (byte)(i &amp; 0xff);<a name="line.518"></a>
-<span class="sourceLineNo">519</span>      }<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      while (size &gt;= data.length) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>        stream.write(data, 0, data.length);<a name="line.521"></a>
-<span class="sourceLineNo">522</span>        size -= data.length;<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      }<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      if (size &gt; 0) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        stream.write(data, 0, size);<a name="line.525"></a>
+<span class="sourceLineNo">372</span>    Table table = util.getConnection().getTable(tableName);<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    try {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      assertEquals(expectedRows, util.countRows(table));<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    } finally {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      table.close();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    }<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>    // verify staging folder has been cleaned up<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    Path stagingBasePath = new Path(FSUtils.getRootDir(util.getConfiguration()), HConstants.BULKLOAD_STAGING_DIR_NAME);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    if(fs.exists(stagingBasePath)) {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      FileStatus[] files = fs.listStatus(stagingBasePath);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      for(FileStatus file : files) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        assertTrue("Folder=" + file.getPath() + " is not cleaned up.",<a name="line.384"></a>
+<span class="sourceLineNo">385</span>          file.getPath().getName() != "DONOTERASE");<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>    util.deleteTable(tableName);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>  }<a name="line.390"></a>
+<span class="sourceLineNo">391</span><a name="line.391"></a>
+<span class="sourceLineNo">392</span>  /**<a name="line.392"></a>
+<span class="sourceLineNo">393</span>   * Test that tags survive through a bulk load that needs to split hfiles.<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   *<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * This test depends on the "hbase.client.rpc.codec" =  KeyValueCodecWithTags so that the client<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * can get tags in the responses.<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   */<a name="line.397"></a>
+<span class="sourceLineNo">398</span>  @Test(timeout = 60000)<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  public void testTagsSurviveBulkLoadSplit() throws Exception {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    Path dir = util.getDataTestDirOnTestFS(tn.getMethodName());<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    FileSystem fs = util.getTestFileSystem();<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    dir = dir.makeQualified(fs);<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    Path familyDir = new Path(dir, Bytes.toString(FAMILY));<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    // table has these split points<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    byte [][] tableSplitKeys = new byte[][] {<a name="line.405"></a>
+<span class="sourceLineNo">406</span>            Bytes.toBytes("aaa"), Bytes.toBytes("fff"), Bytes.toBytes("jjj"),<a name="line.406"></a>
+<span class="sourceLineNo">407</span>            Bytes.toBytes("ppp"), Bytes.toBytes("uuu"), Bytes.toBytes("zzz"),<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    };<a name="line.408"></a>
+<span class="sourceLineNo">409</span><a name="line.409"></a>
+<span class="sourceLineNo">410</span>    // creating an hfile that has values that span the split points.<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    byte[] from = Bytes.toBytes("ddd");<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    byte[] to = Bytes.toBytes("ooo");<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    HFileTestUtil.createHFileWithTags(util.getConfiguration(), fs,<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        new Path(familyDir, tn.getMethodName()+"_hfile"),<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        FAMILY, QUALIFIER, from, to, 1000);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    int expectedRows = 1000;<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>    TableName tableName = TableName.valueOf(tn.getMethodName());<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    HTableDescriptor htd = buildHTD(tableName, BloomType.NONE);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    util.getAdmin().createTable(htd, tableSplitKeys);<a name="line.420"></a>
+<span class="sourceLineNo">421</span><a name="line.421"></a>
+<span class="sourceLineNo">422</span>    LoadIncrementalHFiles loader = new LoadIncrementalHFiles(util.getConfiguration());<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    String [] args= {dir.toString(), tableName.toString()};<a name="line.423"></a>
+<span class="sourceLineNo">424</span>    loader.run(args);<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span>    Table table = util.getConnection().getTable(tableName);<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      assertEquals(expectedRows, util.countRows(table));<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      HFileTestUtil.ver

<TRUNCATED>

[18/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html
index 89b0f0c..df6f4e7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.SplitAlgorithm.html
@@ -28,1103 +28,1096 @@
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.math.BigInteger;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.Arrays;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.Collection;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.Collections;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.Comparator;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.LinkedList;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.List;<a name="line.28"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.Arrays;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Collection;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.LinkedList;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.Map;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>import java.util.Set;<a name="line.29"></a>
 <span class="sourceLineNo">030</span>import java.util.TreeMap;<a name="line.30"></a>
-<span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.commons.cli.CommandLine;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.commons.cli.GnuParser;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.commons.cli.HelpFormatter;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.commons.cli.OptionBuilder;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.commons.cli.Options;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.commons.cli.ParseException;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.commons.lang.ArrayUtils;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.commons.lang.StringUtils;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.commons.logging.Log;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.commons.logging.LogFactory;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.conf.Configuration;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.fs.FileSystem;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.fs.Path;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.ClusterStatus;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.TableName;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.client.NoServerForRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.client.Table;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;<a name="line.64"></a>
-<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>import com.google.common.base.Preconditions;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import com.google.common.collect.Lists;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import com.google.common.collect.Maps;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import com.google.common.collect.Sets;<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> * The {@link RegionSplitter} class provides several utilities to help in the<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * administration lifecycle for developers who choose to manually split regions<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * instead of having HBase handle that automatically. The most useful utilities<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * are:<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;ul&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;li&gt;Create a table with a specified number of pre-split regions<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * &lt;li&gt;Execute a rolling split of all regions on an existing table<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * &lt;/ul&gt;<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * &lt;p&gt;<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * Both operations can be safely done on a live server.<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * &lt;p&gt;<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * &lt;b&gt;Question:&lt;/b&gt; How do I turn off automatic splitting? &lt;br&gt;<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * &lt;b&gt;Answer:&lt;/b&gt; Automatic splitting is determined by the configuration value<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;i&gt;HConstants.HREGION_MAX_FILESIZE&lt;/i&gt;. It is not recommended that you set this<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * to Long.MAX_VALUE in case you forget about manual splits. A suggested setting<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * is 100GB, which would result in &amp;gt; 1hr major compactions if reached.<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * &lt;p&gt;<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * &lt;b&gt;Question:&lt;/b&gt; Why did the original authors decide to manually split? &lt;br&gt;<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * &lt;b&gt;Answer:&lt;/b&gt; Specific workload characteristics of our use case allowed us<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * to benefit from a manual split system.<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;p&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * &lt;ul&gt;<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * &lt;li&gt;Data (~1k) that would grow instead of being replaced<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;li&gt;Data growth was roughly uniform across all regions<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * &lt;li&gt;OLTP workload. Data loss is a big deal.<a name="line.97"></a>
-<span class="sourceLineNo">098</span> * &lt;/ul&gt;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * &lt;p&gt;<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * &lt;b&gt;Question:&lt;/b&gt; Why is manual splitting good for this workload? &lt;br&gt;<a name="line.100"></a>
-<span class="sourceLineNo">101</span> * &lt;b&gt;Answer:&lt;/b&gt; Although automated splitting is not a bad option, there are<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * benefits to manual splitting.<a name="line.102"></a>
-<span class="sourceLineNo">103</span> * &lt;p&gt;<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * &lt;ul&gt;<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * &lt;li&gt;With growing amounts of data, splits will continually be needed. Since<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * you always know exactly what regions you have, long-term debugging and<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * profiling is much easier with manual splits. It is hard to trace the logs to<a name="line.107"></a>
-<span class="sourceLineNo">108</span> * understand region level problems if it keeps splitting and getting renamed.<a name="line.108"></a>
-<span class="sourceLineNo">109</span> * &lt;li&gt;Data offlining bugs + unknown number of split regions == oh crap! If an<a name="line.109"></a>
-<span class="sourceLineNo">110</span> * WAL or StoreFile was mistakenly unprocessed by HBase due to a weird bug and<a name="line.110"></a>
-<span class="sourceLineNo">111</span> * you notice it a day or so later, you can be assured that the regions<a name="line.111"></a>
-<span class="sourceLineNo">112</span> * specified in these files are the same as the current regions and you have<a name="line.112"></a>
-<span class="sourceLineNo">113</span> * less headaches trying to restore/replay your data.<a name="line.113"></a>
-<span class="sourceLineNo">114</span> * &lt;li&gt;You can finely tune your compaction algorithm. With roughly uniform data<a name="line.114"></a>
-<span class="sourceLineNo">115</span> * growth, it's easy to cause split / compaction storms as the regions all<a name="line.115"></a>
-<span class="sourceLineNo">116</span> * roughly hit the same data size at the same time. With manual splits, you can<a name="line.116"></a>
-<span class="sourceLineNo">117</span> * let staggered, time-based major compactions spread out your network IO load.<a name="line.117"></a>
-<span class="sourceLineNo">118</span> * &lt;/ul&gt;<a name="line.118"></a>
-<span class="sourceLineNo">119</span> * &lt;p&gt;<a name="line.119"></a>
-<span class="sourceLineNo">120</span> * &lt;b&gt;Question:&lt;/b&gt; What's the optimal number of pre-split regions to create? &lt;br&gt;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> * &lt;b&gt;Answer:&lt;/b&gt; Mileage will vary depending upon your application.<a name="line.121"></a>
-<span class="sourceLineNo">122</span> * &lt;p&gt;<a name="line.122"></a>
-<span class="sourceLineNo">123</span> * The short answer for our application is that we started with 10 pre-split<a name="line.123"></a>
-<span class="sourceLineNo">124</span> * regions / server and watched our data growth over time. It's better to err on<a name="line.124"></a>
-<span class="sourceLineNo">125</span> * the side of too little regions and rolling split later.<a name="line.125"></a>
-<span class="sourceLineNo">126</span> * &lt;p&gt;<a name="line.126"></a>
-<span class="sourceLineNo">127</span> * The more complicated answer is that this depends upon the largest storefile<a name="line.127"></a>
-<span class="sourceLineNo">128</span> * in your region. With a growing data size, this will get larger over time. You<a name="line.128"></a>
-<span class="sourceLineNo">129</span> * want the largest region to be just big enough that the<a name="line.129"></a>
-<span class="sourceLineNo">130</span> * {@link org.apache.hadoop.hbase.regionserver.HStore} compact<a name="line.130"></a>
-<span class="sourceLineNo">131</span> * selection algorithm only compacts it due to a timed major. If you don't, your<a name="line.131"></a>
-<span class="sourceLineNo">132</span> * cluster can be prone to compaction storms as the algorithm decides to run<a name="line.132"></a>
-<span class="sourceLineNo">133</span> * major compactions on a large series of regions all at once. Note that<a name="line.133"></a>
-<span class="sourceLineNo">134</span> * compaction storms are due to the uniform data growth, not the manual split<a name="line.134"></a>
-<span class="sourceLineNo">135</span> * decision.<a name="line.135"></a>
-<span class="sourceLineNo">136</span> * &lt;p&gt;<a name="line.136"></a>
-<span class="sourceLineNo">137</span> * If you pre-split your regions too thin, you can increase the major compaction<a name="line.137"></a>
-<span class="sourceLineNo">138</span> * interval by configuring HConstants.MAJOR_COMPACTION_PERIOD. If your data size<a name="line.138"></a>
-<span class="sourceLineNo">139</span> * grows too large, use this script to perform a network IO safe rolling split<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * of all regions.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> */<a name="line.141"></a>
-<span class="sourceLineNo">142</span>@InterfaceAudience.Private<a name="line.142"></a>
-<span class="sourceLineNo">143</span>public class RegionSplitter {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private static final Log LOG = LogFactory.getLog(RegionSplitter.class);<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  /**<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   * A generic interface for the RegionSplitter code to use for all it's<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * functionality. Note that the original authors of this code use<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * {@link HexStringSplit} to partition their table and set it as default, but<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * provided this for your custom algorithm. To use, create a new derived class<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * from this interface and call {@link RegionSplitter#createPresplitTable} or<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * RegionSplitter#rollingSplit(TableName, SplitAlgorithm, Configuration) with the<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * argument splitClassName giving the name of your class.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   */<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  public interface SplitAlgorithm {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    /**<a name="line.156"></a>
-<span class="sourceLineNo">157</span>     * Split a pre-existing region into 2 regions.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>     *<a name="line.158"></a>
-<span class="sourceLineNo">159</span>     * @param start<a name="line.159"></a>
-<span class="sourceLineNo">160</span>     *          first row (inclusive)<a name="line.160"></a>
-<span class="sourceLineNo">161</span>     * @param end<a name="line.161"></a>
-<span class="sourceLineNo">162</span>     *          last row (exclusive)<a name="line.162"></a>
-<span class="sourceLineNo">163</span>     * @return the split row to use<a name="line.163"></a>
-<span class="sourceLineNo">164</span>     */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    byte[] split(byte[] start, byte[] end);<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>    /**<a name="line.167"></a>
-<span class="sourceLineNo">168</span>     * Split an entire table.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>     *<a name="line.169"></a>
-<span class="sourceLineNo">170</span>     * @param numRegions<a name="line.170"></a>
-<span class="sourceLineNo">171</span>     *          number of regions to split the table into<a name="line.171"></a>
-<span class="sourceLineNo">172</span>     *<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * @throws RuntimeException<a name="line.173"></a>
-<span class="sourceLineNo">174</span>     *           user input is validated at this time. may throw a runtime<a name="line.174"></a>
-<span class="sourceLineNo">175</span>     *           exception in response to a parse failure<a name="line.175"></a>
-<span class="sourceLineNo">176</span>     * @return array of split keys for the initial regions of the table. The<a name="line.176"></a>
-<span class="sourceLineNo">177</span>     *         length of the returned array should be numRegions-1.<a name="line.177"></a>
-<span class="sourceLineNo">178</span>     */<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    byte[][] split(int numRegions);<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>    /**<a name="line.181"></a>
-<span class="sourceLineNo">182</span>     * In HBase, the first row is represented by an empty byte array. This might<a name="line.182"></a>
-<span class="sourceLineNo">183</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.183"></a>
-<span class="sourceLineNo">184</span>     * will be passed firstRow() instead of empty array.<a name="line.184"></a>
-<span class="sourceLineNo">185</span>     *<a name="line.185"></a>
-<span class="sourceLineNo">186</span>     * @return your representation of your first row<a name="line.186"></a>
-<span class="sourceLineNo">187</span>     */<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    byte[] firstRow();<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>    /**<a name="line.190"></a>
-<span class="sourceLineNo">191</span>     * In HBase, the last row is represented by an empty byte array. This might<a name="line.191"></a>
-<span class="sourceLineNo">192</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.192"></a>
-<span class="sourceLineNo">193</span>     * will be passed firstRow() instead of empty array.<a name="line.193"></a>
-<span class="sourceLineNo">194</span>     *<a name="line.194"></a>
-<span class="sourceLineNo">195</span>     * @return your representation of your last row<a name="line.195"></a>
-<span class="sourceLineNo">196</span>     */<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    byte[] lastRow();<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    /**<a name="line.199"></a>
-<span class="sourceLineNo">200</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.200"></a>
-<span class="sourceLineNo">201</span>     * value to help the split code understand how to evenly divide the first<a name="line.201"></a>
-<span class="sourceLineNo">202</span>     * region.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>     *<a name="line.203"></a>
-<span class="sourceLineNo">204</span>     * @param userInput<a name="line.204"></a>
-<span class="sourceLineNo">205</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.205"></a>
-<span class="sourceLineNo">206</span>     */<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    void setFirstRow(String userInput);<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>    /**<a name="line.209"></a>
-<span class="sourceLineNo">210</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.210"></a>
-<span class="sourceLineNo">211</span>     * value to help the split code understand how to evenly divide the last<a name="line.211"></a>
-<span class="sourceLineNo">212</span>     * region. Note that this last row is inclusive for all rows sharing the<a name="line.212"></a>
-<span class="sourceLineNo">213</span>     * same prefix.<a name="line.213"></a>
-<span class="sourceLineNo">214</span>     *<a name="line.214"></a>
-<span class="sourceLineNo">215</span>     * @param userInput<a name="line.215"></a>
-<span class="sourceLineNo">216</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.216"></a>
-<span class="sourceLineNo">217</span>     */<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    void setLastRow(String userInput);<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>    /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span>     * @param input<a name="line.221"></a>
-<span class="sourceLineNo">222</span>     *          user or file input for row<a name="line.222"></a>
-<span class="sourceLineNo">223</span>     * @return byte array representation of this row for HBase<a name="line.223"></a>
-<span class="sourceLineNo">224</span>     */<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    byte[] strToRow(String input);<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>    /**<a name="line.227"></a>
-<span class="sourceLineNo">228</span>     * @param row<a name="line.228"></a>
-<span class="sourceLineNo">229</span>     *          byte array representing a row in HBase<a name="line.229"></a>
-<span class="sourceLineNo">230</span>     * @return String to use for debug &amp;amp; file printing<a name="line.230"></a>
-<span class="sourceLineNo">231</span>     */<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    String rowToStr(byte[] row);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    /**<a name="line.234"></a>
-<span class="sourceLineNo">235</span>     * @return the separator character to use when storing / printing the row<a name="line.235"></a>
-<span class="sourceLineNo">236</span>     */<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    String separator();<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    /**<a name="line.239"></a>
-<span class="sourceLineNo">240</span>     * Set the first row<a name="line.240"></a>
-<span class="sourceLineNo">241</span>     * @param userInput byte array of the row key.<a name="line.241"></a>
-<span class="sourceLineNo">242</span>     */<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    void setFirstRow(byte[] userInput);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>    /**<a name="line.245"></a>
-<span class="sourceLineNo">246</span>     * Set the last row<a name="line.246"></a>
-<span class="sourceLineNo">247</span>     * @param userInput byte array of the row key.<a name="line.247"></a>
-<span class="sourceLineNo">248</span>     */<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    void setLastRow(byte[] userInput);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>  }<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>  /**<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * The main function for the RegionSplitter application. Common uses:<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * &lt;p&gt;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * &lt;ul&gt;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   * &lt;li&gt;create a table named 'myTable' with 60 pre-split regions containing 2<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * column families 'test' &amp;amp; 'rs', assuming the keys are hex-encoded ASCII:<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * &lt;ul&gt;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -c 60 -f test:rs<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   * myTable HexStringSplit<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   * &lt;/ul&gt;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>   * &lt;li&gt;perform a rolling split of 'myTable' (i.e. 60 =&amp;gt; 120 regions), # 2<a name="line.262"></a>
-<span class="sourceLineNo">263</span>   * outstanding splits at a time, assuming keys are uniformly distributed<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * bytes:<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * &lt;ul&gt;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -r -o 2 myTable<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * UniformSplit<a name="line.267"></a>
+<span class="sourceLineNo">031</span>import org.apache.commons.cli.CommandLine;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.commons.cli.GnuParser;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.commons.cli.HelpFormatter;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.commons.cli.OptionBuilder;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.commons.cli.Options;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.commons.cli.ParseException;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.commons.lang.ArrayUtils;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.commons.lang.StringUtils;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.commons.logging.Log;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.commons.logging.LogFactory;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.conf.Configuration;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.fs.FileSystem;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.fs.Path;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ClusterStatus;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.TableName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.NoServerForRegionException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.client.Table;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>import com.google.common.base.Preconditions;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import com.google.common.collect.Lists;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import com.google.common.collect.Maps;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import com.google.common.collect.Sets;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>/**<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * The {@link RegionSplitter} class provides several utilities to help in the<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * administration lifecycle for developers who choose to manually split regions<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * instead of having HBase handle that automatically. The most useful utilities<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * are:<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;ul&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * &lt;li&gt;Create a table with a specified number of pre-split regions<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;li&gt;Execute a rolling split of all regions on an existing table<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * &lt;/ul&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * &lt;p&gt;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * Both operations can be safely done on a live server.<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * &lt;p&gt;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * &lt;b&gt;Question:&lt;/b&gt; How do I turn off automatic splitting? &lt;br&gt;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * &lt;b&gt;Answer:&lt;/b&gt; Automatic splitting is determined by the configuration value<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * &lt;i&gt;HConstants.HREGION_MAX_FILESIZE&lt;/i&gt;. It is not recommended that you set this<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * to Long.MAX_VALUE in case you forget about manual splits. A suggested setting<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * is 100GB, which would result in &amp;gt; 1hr major compactions if reached.<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;p&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * &lt;b&gt;Question:&lt;/b&gt; Why did the original authors decide to manually split? &lt;br&gt;<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * &lt;b&gt;Answer:&lt;/b&gt; Specific workload characteristics of our use case allowed us<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * to benefit from a manual split system.<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * &lt;p&gt;<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * &lt;ul&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;li&gt;Data (~1k) that would grow instead of being replaced<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * &lt;li&gt;Data growth was roughly uniform across all regions<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * &lt;li&gt;OLTP workload. Data loss is a big deal.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/ul&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;p&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * &lt;b&gt;Question:&lt;/b&gt; Why is manual splitting good for this workload? &lt;br&gt;<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * &lt;b&gt;Answer:&lt;/b&gt; Although automated splitting is not a bad option, there are<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * benefits to manual splitting.<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * &lt;p&gt;<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * &lt;ul&gt;<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * &lt;li&gt;With growing amounts of data, splits will continually be needed. Since<a name="line.104"></a>
+<span class="sourceLineNo">105</span> * you always know exactly what regions you have, long-term debugging and<a name="line.105"></a>
+<span class="sourceLineNo">106</span> * profiling is much easier with manual splits. It is hard to trace the logs to<a name="line.106"></a>
+<span class="sourceLineNo">107</span> * understand region level problems if it keeps splitting and getting renamed.<a name="line.107"></a>
+<span class="sourceLineNo">108</span> * &lt;li&gt;Data offlining bugs + unknown number of split regions == oh crap! If an<a name="line.108"></a>
+<span class="sourceLineNo">109</span> * WAL or StoreFile was mistakenly unprocessed by HBase due to a weird bug and<a name="line.109"></a>
+<span class="sourceLineNo">110</span> * you notice it a day or so later, you can be assured that the regions<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * specified in these files are the same as the current regions and you have<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * less headaches trying to restore/replay your data.<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * &lt;li&gt;You can finely tune your compaction algorithm. With roughly uniform data<a name="line.113"></a>
+<span class="sourceLineNo">114</span> * growth, it's easy to cause split / compaction storms as the regions all<a name="line.114"></a>
+<span class="sourceLineNo">115</span> * roughly hit the same data size at the same time. With manual splits, you can<a name="line.115"></a>
+<span class="sourceLineNo">116</span> * let staggered, time-based major compactions spread out your network IO load.<a name="line.116"></a>
+<span class="sourceLineNo">117</span> * &lt;/ul&gt;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> * &lt;p&gt;<a name="line.118"></a>
+<span class="sourceLineNo">119</span> * &lt;b&gt;Question:&lt;/b&gt; What's the optimal number of pre-split regions to create? &lt;br&gt;<a name="line.119"></a>
+<span class="sourceLineNo">120</span> * &lt;b&gt;Answer:&lt;/b&gt; Mileage will vary depending upon your application.<a name="line.120"></a>
+<span class="sourceLineNo">121</span> * &lt;p&gt;<a name="line.121"></a>
+<span class="sourceLineNo">122</span> * The short answer for our application is that we started with 10 pre-split<a name="line.122"></a>
+<span class="sourceLineNo">123</span> * regions / server and watched our data growth over time. It's better to err on<a name="line.123"></a>
+<span class="sourceLineNo">124</span> * the side of too little regions and rolling split later.<a name="line.124"></a>
+<span class="sourceLineNo">125</span> * &lt;p&gt;<a name="line.125"></a>
+<span class="sourceLineNo">126</span> * The more complicated answer is that this depends upon the largest storefile<a name="line.126"></a>
+<span class="sourceLineNo">127</span> * in your region. With a growing data size, this will get larger over time. You<a name="line.127"></a>
+<span class="sourceLineNo">128</span> * want the largest region to be just big enough that the<a name="line.128"></a>
+<span class="sourceLineNo">129</span> * {@link org.apache.hadoop.hbase.regionserver.HStore} compact<a name="line.129"></a>
+<span class="sourceLineNo">130</span> * selection algorithm only compacts it due to a timed major. If you don't, your<a name="line.130"></a>
+<span class="sourceLineNo">131</span> * cluster can be prone to compaction storms as the algorithm decides to run<a name="line.131"></a>
+<span class="sourceLineNo">132</span> * major compactions on a large series of regions all at once. Note that<a name="line.132"></a>
+<span class="sourceLineNo">133</span> * compaction storms are due to the uniform data growth, not the manual split<a name="line.133"></a>
+<span class="sourceLineNo">134</span> * decision.<a name="line.134"></a>
+<span class="sourceLineNo">135</span> * &lt;p&gt;<a name="line.135"></a>
+<span class="sourceLineNo">136</span> * If you pre-split your regions too thin, you can increase the major compaction<a name="line.136"></a>
+<span class="sourceLineNo">137</span> * interval by configuring HConstants.MAJOR_COMPACTION_PERIOD. If your data size<a name="line.137"></a>
+<span class="sourceLineNo">138</span> * grows too large, use this script to perform a network IO safe rolling split<a name="line.138"></a>
+<span class="sourceLineNo">139</span> * of all regions.<a name="line.139"></a>
+<span class="sourceLineNo">140</span> */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>@InterfaceAudience.Private<a name="line.141"></a>
+<span class="sourceLineNo">142</span>public class RegionSplitter {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  private static final Log LOG = LogFactory.getLog(RegionSplitter.class);<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>  /**<a name="line.145"></a>
+<span class="sourceLineNo">146</span>   * A generic interface for the RegionSplitter code to use for all it's<a name="line.146"></a>
+<span class="sourceLineNo">147</span>   * functionality. Note that the original authors of this code use<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   * {@link HexStringSplit} to partition their table and set it as default, but<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * provided this for your custom algorithm. To use, create a new derived class<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * from this interface and call {@link RegionSplitter#createPresplitTable} or<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   * RegionSplitter#rollingSplit(TableName, SplitAlgorithm, Configuration) with the<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * argument splitClassName giving the name of your class.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   */<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  public interface SplitAlgorithm {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    /**<a name="line.155"></a>
+<span class="sourceLineNo">156</span>     * Split a pre-existing region into 2 regions.<a name="line.156"></a>
+<span class="sourceLineNo">157</span>     *<a name="line.157"></a>
+<span class="sourceLineNo">158</span>     * @param start<a name="line.158"></a>
+<span class="sourceLineNo">159</span>     *          first row (inclusive)<a name="line.159"></a>
+<span class="sourceLineNo">160</span>     * @param end<a name="line.160"></a>
+<span class="sourceLineNo">161</span>     *          last row (exclusive)<a name="line.161"></a>
+<span class="sourceLineNo">162</span>     * @return the split row to use<a name="line.162"></a>
+<span class="sourceLineNo">163</span>     */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    byte[] split(byte[] start, byte[] end);<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>    /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>     * Split an entire table.<a name="line.167"></a>
+<span class="sourceLineNo">168</span>     *<a name="line.168"></a>
+<span class="sourceLineNo">169</span>     * @param numRegions<a name="line.169"></a>
+<span class="sourceLineNo">170</span>     *          number of regions to split the table into<a name="line.170"></a>
+<span class="sourceLineNo">171</span>     *<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     * @throws RuntimeException<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     *           user input is validated at this time. may throw a runtime<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     *           exception in response to a parse failure<a name="line.174"></a>
+<span class="sourceLineNo">175</span>     * @return array of split keys for the initial regions of the table. The<a name="line.175"></a>
+<span class="sourceLineNo">176</span>     *         length of the returned array should be numRegions-1.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>     */<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    byte[][] split(int numRegions);<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>    /**<a name="line.180"></a>
+<span class="sourceLineNo">181</span>     * In HBase, the first row is represented by an empty byte array. This might<a name="line.181"></a>
+<span class="sourceLineNo">182</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.182"></a>
+<span class="sourceLineNo">183</span>     * will be passed firstRow() instead of empty array.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>     *<a name="line.184"></a>
+<span class="sourceLineNo">185</span>     * @return your representation of your first row<a name="line.185"></a>
+<span class="sourceLineNo">186</span>     */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    byte[] firstRow();<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>    /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>     * In HBase, the last row is represented by an empty byte array. This might<a name="line.190"></a>
+<span class="sourceLineNo">191</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.191"></a>
+<span class="sourceLineNo">192</span>     * will be passed firstRow() instead of empty array.<a name="line.192"></a>
+<span class="sourceLineNo">193</span>     *<a name="line.193"></a>
+<span class="sourceLineNo">194</span>     * @return your representation of your last row<a name="line.194"></a>
+<span class="sourceLineNo">195</span>     */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    byte[] lastRow();<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>    /**<a name="line.198"></a>
+<span class="sourceLineNo">199</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.199"></a>
+<span class="sourceLineNo">200</span>     * value to help the split code understand how to evenly divide the first<a name="line.200"></a>
+<span class="sourceLineNo">201</span>     * region.<a name="line.201"></a>
+<span class="sourceLineNo">202</span>     *<a name="line.202"></a>
+<span class="sourceLineNo">203</span>     * @param userInput<a name="line.203"></a>
+<span class="sourceLineNo">204</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.204"></a>
+<span class="sourceLineNo">205</span>     */<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    void setFirstRow(String userInput);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.209"></a>
+<span class="sourceLineNo">210</span>     * value to help the split code understand how to evenly divide the last<a name="line.210"></a>
+<span class="sourceLineNo">211</span>     * region. Note that this last row is inclusive for all rows sharing the<a name="line.211"></a>
+<span class="sourceLineNo">212</span>     * same prefix.<a name="line.212"></a>
+<span class="sourceLineNo">213</span>     *<a name="line.213"></a>
+<span class="sourceLineNo">214</span>     * @param userInput<a name="line.214"></a>
+<span class="sourceLineNo">215</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.215"></a>
+<span class="sourceLineNo">216</span>     */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    void setLastRow(String userInput);<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    /**<a name="line.219"></a>
+<span class="sourceLineNo">220</span>     * @param input<a name="line.220"></a>
+<span class="sourceLineNo">221</span>     *          user or file input for row<a name="line.221"></a>
+<span class="sourceLineNo">222</span>     * @return byte array representation of this row for HBase<a name="line.222"></a>
+<span class="sourceLineNo">223</span>     */<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    byte[] strToRow(String input);<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>    /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>     * @param row<a name="line.227"></a>
+<span class="sourceLineNo">228</span>     *          byte array representing a row in HBase<a name="line.228"></a>
+<span class="sourceLineNo">229</span>     * @return String to use for debug &amp;amp; file printing<a name="line.229"></a>
+<span class="sourceLineNo">230</span>     */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    String rowToStr(byte[] row);<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>    /**<a name="line.233"></a>
+<span class="sourceLineNo">234</span>     * @return the separator character to use when storing / printing the row<a name="line.234"></a>
+<span class="sourceLineNo">235</span>     */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    String separator();<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>    /**<a name="line.238"></a>
+<span class="sourceLineNo">239</span>     * Set the first row<a name="line.239"></a>
+<span class="sourceLineNo">240</span>     * @param userInput byte array of the row key.<a name="line.240"></a>
+<span class="sourceLineNo">241</span>     */<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    void setFirstRow(byte[] userInput);<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>    /**<a name="line.244"></a>
+<span class="sourceLineNo">245</span>     * Set the last row<a name="line.245"></a>
+<span class="sourceLineNo">246</span>     * @param userInput byte array of the row key.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>     */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    void setLastRow(byte[] userInput);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>  /**<a name="line.251"></a>
+<span class="sourceLineNo">252</span>   * The main function for the RegionSplitter application. Common uses:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * &lt;p&gt;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * &lt;ul&gt;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * &lt;li&gt;create a table named 'myTable' with 60 pre-split regions containing 2<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * column families 'test' &amp;amp; 'rs', assuming the keys are hex-encoded ASCII:<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * &lt;ul&gt;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -c 60 -f test:rs<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * myTable HexStringSplit<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * &lt;/ul&gt;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   * &lt;li&gt;perform a rolling split of 'myTable' (i.e. 60 =&amp;gt; 120 regions), # 2<a name="line.261"></a>
+<span class="sourceLineNo">262</span>   * outstanding splits at a time, assuming keys are uniformly distributed<a name="line.262"></a>
+<span class="sourceLineNo">263</span>   * bytes:<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   * &lt;ul&gt;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -r -o 2 myTable<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * UniformSplit<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * &lt;/ul&gt;<a name="line.267"></a>
 <span class="sourceLineNo">268</span>   * &lt;/ul&gt;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * &lt;/ul&gt;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   *<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * There are two SplitAlgorithms built into RegionSplitter, HexStringSplit<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * and UniformSplit. These are different strategies for choosing region<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * boundaries. See their source code for details.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   *<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * @param args<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   *          Usage: RegionSplitter &amp;lt;TABLE&amp;gt; &amp;lt;SPLITALGORITHM&amp;gt;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   *          &amp;lt;-c &amp;lt;# regions&amp;gt; -f &amp;lt;family:family:...&amp;gt; | -r<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   *          [-o &amp;lt;# outstanding splits&amp;gt;]&amp;gt;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   *          [-D &amp;lt;conf.param=value&amp;gt;]<a name="line.279"></a>
-<span class="sourceLineNo">280</span>   * @throws IOException<a name="line.280"></a>
-<span class="sourceLineNo">281</span>   *           HBase IO problem<a name="line.281"></a>
-<span class="sourceLineNo">282</span>   * @throws InterruptedException<a name="line.282"></a>
-<span class="sourceLineNo">283</span>   *           user requested exit<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * @throws ParseException<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   *           problem parsing user input<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  @SuppressWarnings("static-access")<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  public static void main(String[] args) throws IOException,<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      InterruptedException, ParseException {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    Configuration conf = HBaseConfiguration.create();<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // parse user input<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    Options opt = new Options();<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    opt.addOption(OptionBuilder.withArgName("property=value").hasArg()<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        .withDescription("Override HBase Configuration Settings").create("D"));<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    opt.addOption(OptionBuilder.withArgName("region count").hasArg()<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        .withDescription(<a name="line.297"></a>
-<span class="sourceLineNo">298</span>            "Create a new table with a pre-split number of regions")<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        .create("c"));<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    opt.addOption(OptionBuilder.withArgName("family:family:...").hasArg()<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .withDescription(<a name="line.301"></a>
-<span class="sourceLineNo">302</span>            "Column Families to create with new table.  Required with -c")<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        .create("f"));<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    opt.addOption("h", false, "Print this usage help");<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    opt.addOption("r", false, "Perform a rolling split of an existing region");<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    opt.addOption(OptionBuilder.withArgName("count").hasArg().withDescription(<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        "Max outstanding splits that have unfinished major compactions")<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        .create("o"));<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    opt.addOption(null, "firstrow", true,<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        "First Row in Table for Split Algorithm");<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    opt.addOption(null, "lastrow", true,<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        "Last Row in Table for Split Algorithm");<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    opt.addOption(null, "risky", false,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        "Skip verification steps to complete quickly."<a name="line.314"></a>
-<span class="sourceLineNo">315</span>            + "STRONGLY DISCOURAGED for production systems.  ");<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    CommandLine cmd = new GnuParser().parse(opt, args);<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>    if (cmd.hasOption("D")) {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      for (String confOpt : cmd.getOptionValues("D")) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        String[] kv = confOpt.split("=", 2);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        if (kv.length == 2) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          conf.set(kv[0], kv[1]);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          LOG.debug("-D configuration override: " + kv[0] + "=" + kv[1]);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>        } else {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>          throw new ParseException("-D option format invalid: " + confOpt);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>        }<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      }<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    }<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span>    if (cmd.hasOption("risky")) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      conf.setBoolean("split.verify", false);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>    boolean createTable = cmd.hasOption("c") &amp;&amp; cmd.hasOption("f");<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    boolean rollingSplit = cmd.hasOption("r");<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    boolean oneOperOnly = createTable ^ rollingSplit;<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>    if (2 != cmd.getArgList().size() || !oneOperOnly || cmd.hasOption("h")) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      new HelpFormatter().printHelp("RegionSplitter &lt;TABLE&gt; &lt;SPLITALGORITHM&gt;\n"+<a name="line.339"></a>
-<span class="sourceLineNo">340</span>          "SPLITALGORITHM is a java class name of a class implementing " +<a name="line.340"></a>
-<span class="sourceLineNo">341</span>          "SplitAlgorithm, or one of the special strings HexStringSplit " +<a name="line.341"></a>
-<span class="sourceLineNo">342</span>          "or UniformSplit, which are built-in split algorithms. " +<a name="line.342"></a>
-<span class="sourceLineNo">343</span>          "HexStringSplit treats keys as hexadecimal ASCII, and " +<a name="line.343"></a>
-<span class="sourceLineNo">344</span>          "UniformSplit treats keys as arbitrary bytes.", opt);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      return;<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    TableName tableName = TableName.valueOf(cmd.getArgs()[0]);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    String splitClass = cmd.getArgs()[1];<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    SplitAlgorithm splitAlgo = newSplitAlgoInstance(conf, splitClass);<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    if (cmd.hasOption("firstrow")) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      splitAlgo.setFirstRow(cmd.getOptionValue("firstrow"));<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    if (cmd.hasOption("lastrow")) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      splitAlgo.setLastRow(cmd.getOptionValue("lastrow"));<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    if (createTable) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      conf.set("split.count", cmd.getOptionValue("c"));<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      createPresplitTable(tableName, splitAlgo, cmd.getOptionValue("f").split(":"), conf);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span>    if (rollingSplit) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      if (cmd.hasOption("o")) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        conf.set("split.outstanding", cmd.getOptionValue("o"));<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      rollingSplit(tableName, splitAlgo, conf);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>  static void createPresplitTable(TableName tableName, SplitAlgorithm splitAlgo,<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          String[] columnFamilies, Configuration conf)<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  throws IOException, InterruptedException {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    final int splitCount = conf.getInt("split.count", 0);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    Preconditions.checkArgument(splitCount &gt; 1, "Split count must be &gt; 1");<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>    Preconditions.checkArgument(columnFamilies.length &gt; 0,<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        "Must specify at least one column family. ");<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    LOG.debug("Creating table " + tableName + " with " + columnFamilies.length<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        + " column families.  Presplitting to " + splitCount + " regions");<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    for (String cf : columnFamilies) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      desc.addFamily(new HColumnDescriptor(Bytes.toBytes(cf)));<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    try (Connection connection = ConnectionFactory.createConnection(conf)) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      Admin admin = connection.getAdmin();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      try {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        Preconditions.checkArgument(!admin.tableExists(tableName),<a name="line.389"></a>
-<span class="sourceLineNo">390</span>          "Table already exists: " + tableName);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        admin.createTable(desc, splitAlgo.split(splitCount));<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      } finally {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>        admin.close();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      }<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      LOG.debug("Table created!  Waiting for regions to show online in META...");<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      if (!conf.getBoolean("split.verify", true)) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        // NOTE: createTable is synchronous on the table, but not on the regions<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        int onlineRegions = 0;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        while (onlineRegions &lt; splitCount) {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          onlineRegions = MetaTableAccessor.getRegionCount(connection, tableName);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          LOG.debug(onlineRegions + " of " + splitCount + " regions online...");<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          if (onlineRegions &lt; splitCount) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            Thread.sleep(10 * 1000); // sleep<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        }<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      LOG.debug("Finished creating table with " + splitCount + " regions");<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>  /**<a name="line.411"></a>
-<span class="sourceLineNo">412</span>   * Alternative getCurrentNrHRS which is no longer available.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>   * @param connection<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   * @return Rough count of regionservers out on cluster.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>   * @throws IOException <a name="line.415"></a>
-<span class="sourceLineNo">416</span>   */<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private static int getRegionServerCount(final Connection connection) throws IOException {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    try (Admin admin = connection.getAdmin()) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      ClusterStatus status = admin.getClusterStatus();<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      Collection&lt;ServerName&gt; servers = status.getServers();<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      return servers == null || servers.isEmpty()? 0: servers.size();<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
-<span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>  private static byte [] readFile(final FileSystem fs, final Path path) throws IOException {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    FSDataInputStream tmpIn = fs.open(path);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      byte [] rawData = new byte[tmpIn.available()];<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      tmpIn.readFully(rawData);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      return rawData;<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    } finally {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      tmpIn.close();<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  static void rollingSplit(TableName tableName, SplitAlgorithm splitAlgo, Configuration conf)<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  throws IOException, InterruptedException {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    final int minOS = conf.getInt("split.outstanding", 2);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    try (Connection connection = ConnectionFactory.createConnection(conf)) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      // Max outstanding splits. default == 50% of servers<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      final int MAX_OUTSTANDING = Math.max(getRegionServerCount(connection) / 2, minOS);<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>      Path hbDir = FSUtils.getRootDir(conf);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      Path tableDir = FSUtils.getTableDir(hbDir, tableName);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      Path splitFile = new Path(tableDir, "_balancedSplit");<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      FileSystem fs = FileSystem.get(conf);<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>      // Get a list of daughter regions to create<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; tmpRegionSet = null;<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      try (Table table = connection.getTable(tableName)) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        tmpRegionSet = getSplits(connection, tableName, splitAlgo);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      }<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; outstanding = Lists.newLinkedList();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      int splitCount = 0;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      final int origCount = tmpRegionSet.size();<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>      // all splits must compact &amp; we have 1 compact thread, so 2 split<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      // requests to the same RS can stall the outstanding split queue.<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      // To fix, group the regions into an RS pool and round-robin through it<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      LOG.debug("Bucketing regions by regionserver...");<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      TreeMap&lt;String, LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt;&gt; daughterRegions =<a name="line.461"></a>
-<span class="sourceLineNo">462</span>          Maps.newTreeMap();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      // Get a regionLocator.  Need it in below.<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      try (RegionLocator regionLocator = connection.getRegionLocator(tableName)) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>        for (Pair&lt;byte[], byte[]&gt; dr : tmpRegionSet) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>          String rsLocation = regionLocator.getRegionLocation(dr.getSecond()).getHostnamePort();<a name="line.466"></a>
-<span class="sourceLineNo">467</span>          if (!daughterRegions.containsKey(rsLocation)) {<a name="line.467"></a>
-<span class="sourceLineNo">468</span>            LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; entry = Lists.newLinkedList();<a name="line.468"></a>
-<span class="sourceLineNo">469</span>            daughterRegions.put(rsLocation, entry);<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          }<a name="line.470"></a>
-<span class="sourceLineNo">471</span>          daughterRegions.get(rsLocation).add(dr);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>        }<a name="line.472"></a>
-<span class="sourceLineNo">473</span>        LOG.debug("Done with bucketing.  Split time!");<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        long startTime = System.currentTimeMillis();<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>        // Open the split file and modify it as splits finish<a name="line.476"></a>
-<span class="sourceLineNo">477</span>        byte[] rawData = readFile(fs, splitFile);<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>        FSDataOutputStream splitOut = fs.create(splitFile);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        try {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>          splitOut.write(rawData);<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>          try {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>            // *** split code ***<a name="line.484"></a>
-<span class="sourceLineNo">485</span>            while (!daughterRegions.isEmpty()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>              LOG.debug(daughterRegions.size() + " RS have regions to splt.");<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>              // Get ServerName to region count mapping<a name="line.488"></a>
-<span class="sourceLineNo">489</span>              final TreeMap&lt;ServerName, Integer&gt; rsSizes = Maps.newTreeMap();<a name="line.489"></a>
-<span class="sourceLineNo">490</span>              List&lt;HRegionLocation&gt; hrls = regionLocator.getAllRegionLocations();<a name="line.490"></a>
-<span class="sourceLineNo">491</span>              for (HRegionLocation hrl: hrls) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>                ServerName sn = hrl.getServerName();<a name="line.492"></a>
-<span class="sourceLineNo">493</span>                if (rsSizes.containsKey(sn)) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>                  rsSizes.put(sn, rsSizes.get(sn) + 1);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>                } else {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>                  rsSizes.put(sn, 1);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>                }<a name="line.497"></a>
-<span class="sourceLineNo">498</span>              }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>              // Sort the ServerNames by the number of regions they have<a name="line.500"></a>
-<span class="sourceLineNo">501</span>              List&lt;String&gt; serversLeft = Lists.newArrayList(daughterRegions .keySet());<a name="line.501"></a>
-<span class="sourceLineNo">502</span>              Collections.sort(serversLeft, new Comparator&lt;String&gt;() {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>                public int compare(String o1, String o2) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>                  return rsSizes.get(o1).compareTo(rsSizes.get(o2));<a name="line.504"></a>
-<span class="sourceLineNo">505</span>                }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>              });<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>              // Round-robin through the ServerName list. Choose the lightest-loaded servers<a name="line.508"></a>
-<span class="sourceLineNo">509</span>              // first to keep the master from load-balancing regions as we split.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>              for (String rsLoc : serversLeft) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>                Pair&lt;byte[], byte[]&gt; dr = null;<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>                // Find a region in the ServerName list that hasn't been moved<a name="line.513"></a>
-<span class="sourceLineNo">514</span>                LOG.debug("Finding a region on " + rsLoc);<a name="line.514"></a>
-<span class="sourceLineNo">515</span>                LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; regionList = daughterRegions.get(rsLoc);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>                while (!regionList.isEmpty()) {<a name="line.516"></a>
-<span class="sourceLineNo">517</span>                  dr = regionList.pop();<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>                  // get current region info<a name="line.519"></a>
-<span class="sourceLineNo">520</span>                  byte[] split = dr.getSecond();<a name="line.520"></a>
-<span class="sourceLineNo">521</span>                  HRegionLocation regionLoc = regionLocator.getRegionLocation(split);<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>                  // if this region moved locations<a name="line.523"></a>
-<span class="sourceLineNo">524</span>                  String newRs = regionLoc.getHostnamePort();<a name="line.524"></a>
-<span class="sourceLineNo">525</span>                  if (newRs.compareTo(rsLoc) != 0) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>                    LOG.debug("Region with " + splitAlgo.rowToStr(split)<a name="line.526"></a>
-<span class="sourceLineNo">527</span>                        + " moved to " + newRs + ". Relocating...");<a name="line.527"></a>
-<span class="sourceLineNo">528</span>                    // relocate it, don't use it right now<a name="line.528"></a>
-<span class="sourceLineNo">529</span>                    if (!daughterRegions.containsKey(newRs)) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>                      LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; entry = Lists.newLinkedList();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>                      daughterRegions.put(newRs, entry);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>                    }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>                    daughterRegions.get(newRs).add(dr);<a name="line.533"></a>
-<span class="sourceLineNo">534</span>                    dr = null;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>                    continue;<a name="line.535"></a>
-<span class="sourceLineNo">536</span>                  }<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span>                  // make sure this region wasn't already split<a name="line.538"></a>
-<span class="sourceLineNo">539</span>                  byte[] sk = regionLoc.getRegionInfo().getStartKey();<a name="line.539"></a>
-<span class="sourceLineNo">540</span>                  if (sk.length != 0) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>                    if (Bytes.equals(split, sk)) {<a name="line.541"></a>
-<span class="sourceLineNo">542</span>                      LOG.debug("Region already split on "<a name="line.542"></a>
-<span class="sourceLineNo">543</span>                          + splitAlgo.rowToStr(split) + ".  Skipping this region...");<a name="line.543"></a>
-<span class="sourceLineNo">544</span>                      ++splitCount;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>                      dr = null;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>                      continue;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>                    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>                    byte[] start = dr.getFirst();<a name="line.548"></a>
-<span class="sourceLineNo">549</span>                    Preconditions.checkArgument(Bytes.equals(start, sk), splitAlgo<a name="line.549"></a>
-<span class="sourceLineNo">550</span>                        .rowToStr(start) + " != " + splitAlgo.rowToStr(sk));<a name="line.550"></a>
-<span class="sourceLineNo">551</span>                  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>                  // passed all checks! found a good region<a name="line.553"></a>
-<span class="sourceLineNo">554</span>                  break;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>                }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>                if (regionList.isEmpty()) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>                  daughterRegions.remove(rsLoc);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>                }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>                if (dr == null)<a name="line.559"></a>
-<span class="sourceLineNo">560</span>                  continue;<a name="line.560"></a>
+<span class="sourceLineNo">269</span>   *<a name="line.269"></a>
+<span class="sourceLineNo">270</span>   * There are two SplitAlgorithms built into RegionSplitter, HexStringSplit<a name="line.270"></a>
+<span class="sourceLineNo">271</span>   * and UniformSplit. These are different strategies for choosing region<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   * boundaries. See their source code for details.<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   *<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   * @param args<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   *          Usage: RegionSplitter &amp;lt;TABLE&amp;gt; &amp;lt;SPLITALGORITHM&amp;gt;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   *          &amp;lt;-c &amp;lt;# regions&amp;gt; -f &amp;lt;family:family:...&amp;gt; | -r<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   *          [-o &amp;lt;# outstanding splits&amp;gt;]&amp;gt;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   *          [-D &amp;lt;conf.param=value&amp;gt;]<a name="line.278"></a>
+<span class="sourceLineNo">279</span>   * @throws IOException<a name="line.279"></a>
+<span class="sourceLineNo">280</span>   *           HBase IO problem<a name="line.280"></a>
+<span class="sourceLineNo">281</span>   * @throws InterruptedException<a name="line.281"></a>
+<span class="sourceLineNo">282</span>   *           user requested exit<a name="line.282"></a>
+<span class="sourceLineNo">283</span>   * @throws ParseException<a name="line.283"></a>
+<span class="sourceLineNo">284</span>   *           problem parsing user input<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  @SuppressWarnings("static-access")<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  public static void main(String[] args) throws IOException,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      InterruptedException, ParseException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    Configuration conf = HBaseConfiguration.create();<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>    // parse user input<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    Options opt = new Options();<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    opt.addOption(OptionBuilder.withArgName("property=value").hasArg()<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        .withDescription("Override HBase Configuration Settings").create("D"));<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    opt.addOption(OptionBuilder.withArgName("region count").hasArg()<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        .withDescription(<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            "Create a new table with a pre-split number of regions")<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        .create("c"));<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    opt.addOption(OptionBuilder.withArgName("family:family:...").hasArg()<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        .withDescription(<a name="line.300"></a>
+<span class="sourceLineNo">301</span>            "Column Families to create with new table.  Required with -c")<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        .create("f"));<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    opt.addOption("h", false, "Print this usage help");<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    opt.addOption("r", false, "Perform a rolling split of an existing region");<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    opt.addOption(OptionBuilder.withArgName("count").hasArg().withDescription(<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        "Max outstanding splits that have unfinished major compactions")<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        .create("o"));<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    opt.addOption(null, "firstrow", true,<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        "First Row in Table for Split Algorithm");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    opt.addOption(null, "lastrow", true,<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        "Last Row in Table for Split Algorithm");<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    opt.addOption(null, "risky", false,<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        "Skip verification steps to complete quickly."<a name="line.313"></a>
+<span class="sourceLineNo">314</span>            + "STRONGLY DISCOURAGED for production systems.  ");<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    CommandLine cmd = new GnuParser().parse(opt, args);<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (cmd.hasOption("D")) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      for (String confOpt : cmd.getOptionValues("D")) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        String[] kv = confOpt.split("=", 2);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        if (kv.length == 2) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          conf.set(kv[0], kv[1]);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>          LOG.debug("-D configuration override: " + kv[0] + "=" + kv[1]);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>        } else {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          throw new ParseException("-D option format invalid: " + confOpt);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>    if (cmd.hasOption("risky")) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      conf.setBoolean("split.verify", false);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>    boolean createTable = cmd.hasOption("c") &amp;&amp; cmd.hasOption("f");<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    boolean rollingSplit = cmd.hasOption("r");<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    boolean oneOperOnly = createTable ^ rollingSplit;<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>    if (2 != cmd.getArgList().size() || !oneOperOnly || cmd.hasOption("h")) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      new HelpFormatter().printHelp("RegionSplitter &lt;TABLE&gt; &lt;SPLITALGORITHM&gt;\n"+<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          "SPLITALGORITHM is a java class name of a class implementing " +<a name="line.339"></a>
+<span class="sourceLineNo">340</span>          "SplitAlgorithm, or one of the special strings HexStringSplit " +<a name="line.340"></a>
+<span class="sourceLineNo">341</span>          "or UniformSplit, which are built-in split algorithms. " +<a name="line.341"></a>
+<span class="sourceLineNo">342</span>          "HexStringSplit treats keys a

<TRUNCATED>

[15/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/distribution-management.html
----------------------------------------------------------------------
diff --git a/distribution-management.html b/distribution-management.html
index dc8b719..51a60f3 100644
--- a/distribution-management.html
+++ b/distribution-management.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Distribution Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -302,7 +302,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index 6b05628..42b52d4 100644
--- a/export_control.html
+++ b/export_control.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -342,7 +342,7 @@ for more details.</p>
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/checkstyle.html b/hbase-annotations/checkstyle.html
index 949a4ca..6f5d677 100644
--- a/hbase-annotations/checkstyle.html
+++ b/hbase-annotations/checkstyle.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependencies.html b/hbase-annotations/dependencies.html
index 9f50ade..202e944 100644
--- a/hbase-annotations/dependencies.html
+++ b/hbase-annotations/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-convergence.html b/hbase-annotations/dependency-convergence.html
index 6e7480e..224f125 100644
--- a/hbase-annotations/dependency-convergence.html
+++ b/hbase-annotations/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-info.html b/hbase-annotations/dependency-info.html
index c8811e5..76aea12 100644
--- a/hbase-annotations/dependency-info.html
+++ b/hbase-annotations/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-management.html b/hbase-annotations/dependency-management.html
index b977281..97269ce 100644
--- a/hbase-annotations/dependency-management.html
+++ b/hbase-annotations/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/distribution-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/distribution-management.html b/hbase-annotations/distribution-management.html
index 98d22aa..dc33857 100644
--- a/hbase-annotations/distribution-management.html
+++ b/hbase-annotations/distribution-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/index.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/index.html b/hbase-annotations/index.html
index f96d2f2..9104ca1 100644
--- a/hbase-annotations/index.html
+++ b/hbase-annotations/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/integration.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/integration.html b/hbase-annotations/integration.html
index b607105..c6ba98d 100644
--- a/hbase-annotations/integration.html
+++ b/hbase-annotations/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/issue-tracking.html b/hbase-annotations/issue-tracking.html
index 737a5e5..8dabca9 100644
--- a/hbase-annotations/issue-tracking.html
+++ b/hbase-annotations/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/license.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/license.html b/hbase-annotations/license.html
index 2b42be8..8211a3f 100644
--- a/hbase-annotations/license.html
+++ b/hbase-annotations/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/mail-lists.html b/hbase-annotations/mail-lists.html
index b7aba1c..d561e08 100644
--- a/hbase-annotations/mail-lists.html
+++ b/hbase-annotations/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugin-management.html b/hbase-annotations/plugin-management.html
index f34d3e2..2c7b89b 100644
--- a/hbase-annotations/plugin-management.html
+++ b/hbase-annotations/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugins.html b/hbase-annotations/plugins.html
index 70986d4..40a2c47 100644
--- a/hbase-annotations/plugins.html
+++ b/hbase-annotations/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-info.html b/hbase-annotations/project-info.html
index 4c12985..43dd4e8 100644
--- a/hbase-annotations/project-info.html
+++ b/hbase-annotations/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-reports.html b/hbase-annotations/project-reports.html
index b479524..1af7dfd 100644
--- a/hbase-annotations/project-reports.html
+++ b/hbase-annotations/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-summary.html b/hbase-annotations/project-summary.html
index b48aaf9..a546c2d 100644
--- a/hbase-annotations/project-summary.html
+++ b/hbase-annotations/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/source-repository.html b/hbase-annotations/source-repository.html
index 73496a1..29425b5 100644
--- a/hbase-annotations/source-repository.html
+++ b/hbase-annotations/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-annotations/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/team-list.html b/hbase-annotations/team-list.html
index d301e2a..c294343 100644
--- a/hbase-annotations/team-list.html
+++ b/hbase-annotations/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependencies.html b/hbase-archetypes/dependencies.html
index e3b2c51..ec7762a 100644
--- a/hbase-archetypes/dependencies.html
+++ b/hbase-archetypes/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependency-convergence.html b/hbase-archetypes/dependency-convergence.html
index 5a08817..de41bf1 100644
--- a/hbase-archetypes/dependency-convergence.html
+++ b/hbase-archetypes/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependency-info.html b/hbase-archetypes/dependency-info.html
index b8e887e..fc13fba 100644
--- a/hbase-archetypes/dependency-info.html
+++ b/hbase-archetypes/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependency-management.html b/hbase-archetypes/dependency-management.html
index bf18c58..484775c 100644
--- a/hbase-archetypes/dependency-management.html
+++ b/hbase-archetypes/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/distribution-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/distribution-management.html b/hbase-archetypes/distribution-management.html
index 732818d..2c1d256 100644
--- a/hbase-archetypes/distribution-management.html
+++ b/hbase-archetypes/distribution-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependencies.html b/hbase-archetypes/hbase-archetype-builder/dependencies.html
index f28f32c..6b49917 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependencies.html
+++ b/hbase-archetypes/hbase-archetype-builder/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html b/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
index 6e56564..f83bc3c 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
+++ b/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependency-info.html b/hbase-archetypes/hbase-archetype-builder/dependency-info.html
index 008369a..9941c48 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependency-info.html
+++ b/hbase-archetypes/hbase-archetype-builder/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependency-management.html b/hbase-archetypes/hbase-archetype-builder/dependency-management.html
index 8e21919..06b192b 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependency-management.html
+++ b/hbase-archetypes/hbase-archetype-builder/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/distribution-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/distribution-management.html b/hbase-archetypes/hbase-archetype-builder/distribution-management.html
index ccdc3cd..1304a5b 100644
--- a/hbase-archetypes/hbase-archetype-builder/distribution-management.html
+++ b/hbase-archetypes/hbase-archetype-builder/distribution-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/index.html b/hbase-archetypes/hbase-archetype-builder/index.html
index 1c5f875..986afd1 100644
--- a/hbase-archetypes/hbase-archetype-builder/index.html
+++ b/hbase-archetypes/hbase-archetype-builder/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/integration.html b/hbase-archetypes/hbase-archetype-builder/integration.html
index 2cfff25..522bafa 100644
--- a/hbase-archetypes/hbase-archetype-builder/integration.html
+++ b/hbase-archetypes/hbase-archetype-builder/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/issue-tracking.html b/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
index 16f33fd..77f69e1 100644
--- a/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
+++ b/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/license.html b/hbase-archetypes/hbase-archetype-builder/license.html
index ffcec2b..c8f3c13 100644
--- a/hbase-archetypes/hbase-archetype-builder/license.html
+++ b/hbase-archetypes/hbase-archetype-builder/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/mail-lists.html b/hbase-archetypes/hbase-archetype-builder/mail-lists.html
index 183fe8d..5fc23b5 100644
--- a/hbase-archetypes/hbase-archetype-builder/mail-lists.html
+++ b/hbase-archetypes/hbase-archetype-builder/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/plugin-management.html b/hbase-archetypes/hbase-archetype-builder/plugin-management.html
index 5aad1ef..8d5faf2 100644
--- a/hbase-archetypes/hbase-archetype-builder/plugin-management.html
+++ b/hbase-archetypes/hbase-archetype-builder/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/plugins.html b/hbase-archetypes/hbase-archetype-builder/plugins.html
index 8f447e3..cba3b25 100644
--- a/hbase-archetypes/hbase-archetype-builder/plugins.html
+++ b/hbase-archetypes/hbase-archetype-builder/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/project-info.html b/hbase-archetypes/hbase-archetype-builder/project-info.html
index 33180e1..c169a9f 100644
--- a/hbase-archetypes/hbase-archetype-builder/project-info.html
+++ b/hbase-archetypes/hbase-archetype-builder/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/project-summary.html b/hbase-archetypes/hbase-archetype-builder/project-summary.html
index b3dde83..e29c327 100644
--- a/hbase-archetypes/hbase-archetype-builder/project-summary.html
+++ b/hbase-archetypes/hbase-archetype-builder/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/source-repository.html b/hbase-archetypes/hbase-archetype-builder/source-repository.html
index dc930d3..eb27ff6 100644
--- a/hbase-archetypes/hbase-archetype-builder/source-repository.html
+++ b/hbase-archetypes/hbase-archetype-builder/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-archetype-builder/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/team-list.html b/hbase-archetypes/hbase-archetype-builder/team-list.html
index 3aed68e..64a0dee 100644
--- a/hbase-archetypes/hbase-archetype-builder/team-list.html
+++ b/hbase-archetypes/hbase-archetype-builder/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/checkstyle.html b/hbase-archetypes/hbase-client-project/checkstyle.html
index a177ce6..c09d9d5 100644
--- a/hbase-archetypes/hbase-client-project/checkstyle.html
+++ b/hbase-archetypes/hbase-client-project/checkstyle.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependencies.html b/hbase-archetypes/hbase-client-project/dependencies.html
index d2fb98a..f89079c 100644
--- a/hbase-archetypes/hbase-client-project/dependencies.html
+++ b/hbase-archetypes/hbase-client-project/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependency-convergence.html b/hbase-archetypes/hbase-client-project/dependency-convergence.html
index d36d4f3..2750a4a 100644
--- a/hbase-archetypes/hbase-client-project/dependency-convergence.html
+++ b/hbase-archetypes/hbase-client-project/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependency-info.html b/hbase-archetypes/hbase-client-project/dependency-info.html
index 1585f6f..46d4fa5 100644
--- a/hbase-archetypes/hbase-client-project/dependency-info.html
+++ b/hbase-archetypes/hbase-client-project/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependency-management.html b/hbase-archetypes/hbase-client-project/dependency-management.html
index 9844028..8f042c3 100644
--- a/hbase-archetypes/hbase-client-project/dependency-management.html
+++ b/hbase-archetypes/hbase-client-project/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/distribution-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/distribution-management.html b/hbase-archetypes/hbase-client-project/distribution-management.html
index a5a5334..03199cd 100644
--- a/hbase-archetypes/hbase-client-project/distribution-management.html
+++ b/hbase-archetypes/hbase-client-project/distribution-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/index.html b/hbase-archetypes/hbase-client-project/index.html
index 4df7646..f5c4bf3 100644
--- a/hbase-archetypes/hbase-client-project/index.html
+++ b/hbase-archetypes/hbase-client-project/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/integration.html b/hbase-archetypes/hbase-client-project/integration.html
index 1ec1657..a301508 100644
--- a/hbase-archetypes/hbase-client-project/integration.html
+++ b/hbase-archetypes/hbase-client-project/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/issue-tracking.html b/hbase-archetypes/hbase-client-project/issue-tracking.html
index d2b5589..e1871e0 100644
--- a/hbase-archetypes/hbase-client-project/issue-tracking.html
+++ b/hbase-archetypes/hbase-client-project/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/license.html b/hbase-archetypes/hbase-client-project/license.html
index c7e4d12..2bd0675 100644
--- a/hbase-archetypes/hbase-client-project/license.html
+++ b/hbase-archetypes/hbase-client-project/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/mail-lists.html b/hbase-archetypes/hbase-client-project/mail-lists.html
index f755b89..318ca1a 100644
--- a/hbase-archetypes/hbase-client-project/mail-lists.html
+++ b/hbase-archetypes/hbase-client-project/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>


[31/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 88d1b6c..7373064 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -295,7 +295,7 @@
 <td>2051</td>
 <td>0</td>
 <td>0</td>
-<td>13915</td></tr></table></div>
+<td>13912</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -2503,7 +2503,7 @@
 <td><a href="#org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.java">org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>7</td></tr>
+<td>5</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.mapreduce.MultiHFileOutputFormat.java">org/apache/hadoop/hbase/mapreduce/MultiHFileOutputFormat.java</a></td>
 <td>0</td>
@@ -4538,7 +4538,7 @@
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueuesZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>5</td></tr>
+<td>4</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationStateZKBase.java">org/apache/hadoop/hbase/replication/ReplicationStateZKBase.java</a></td>
 <td>0</td>
@@ -6790,7 +6790,7 @@
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_blocks.html#NeedBraces">NeedBraces</a></td>
-<td>1912</td>
+<td>1910</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>coding</td>
@@ -6905,7 +6905,7 @@
 <ul>
 <li>max: <tt>&quot;100&quot;</tt></li>
 <li>ignorePattern: <tt>&quot;^package.*|^import.*|a href|href|http://|https://|ftp://|org.apache.thrift.|com.google.protobuf.|hbase.protobuf.generated&quot;</tt></li></ul></td>
-<td>476</td>
+<td>475</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td></td>
@@ -34072,31 +34072,19 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#L507">507</a></td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>blocks</td>
-<td>NeedBraces</td>
-<td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#L593">593</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>sizes</td>
-<td>LineLength</td>
-<td>Line is longer than 100 characters (found 109).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#L1196">1196</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#L594">594</a></td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#L1203">1203</a></td></tr>
+<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#L1216">1216</a></td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#L1240">1240</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#L1253">1253</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.mapreduce.MultiHFileOutputFormat.java">org/apache/hadoop/hbase/mapreduce/MultiHFileOutputFormat.java</h3>
 <table border="0" class="table table-striped">
@@ -63247,35 +63235,29 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#L296">296</a></td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>blocks</td>
-<td>NeedBraces</td>
-<td>'if' construct must use '{}'s.</td>
-<td><a href="./xref/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#L300">300</a></td></tr></table></div>
+<td><a href="./xref/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#L304">304</a></td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.ReplicationStateZKBase.java">org/apache/hadoop/hbase/replication/ReplicationStateZKBase.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.annotations.VisibleForTesting' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ReplicationStateZKBase.html#L25">25</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ReplicationStateZKBase.html#L28">28</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -63284,43 +63266,43 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.ReplicationTableBase.java">org/apache/hadoop/hbase/replication/ReplicationTableBase.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.IOException' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ReplicationTableBase.html#L46">46</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ReplicationTableBase.html#L323">323</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ReplicationTableBase.html#L343">343</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ReplicationTableBase.html#L361">361</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ReplicationTableBase.html#L415">415</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -63329,13 +63311,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.ReplicationTracker.java">org/apache/hadoop/hbase/replication/ReplicationTracker.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -63344,13 +63326,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.ReplicationTrackerZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -63359,67 +63341,67 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.ScopeWALEntryFilter.java">org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.base.Predicate' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.html#L30">30</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 6, expected level should be 4.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.html#L54">54</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 6, expected level should be 4.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.html#L55">55</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 8, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.html#L56">56</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.html#L59">59</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 6, expected level should be 4.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.html#L62">62</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.html#L63">63</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.html#L64">64</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 8, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.html#L65">65</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -63428,13 +63410,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.TableBasedReplicationQueuesClientImpl.java">org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesClientImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -63443,55 +63425,55 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.TableBasedReplicationQueuesImpl.java">org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.IOException' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesImpl.html#L44">44</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - java.util.HashMap.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesImpl.html#L47">47</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - java.util.HashSet.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesImpl.html#L48">48</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - java.util.Set.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesImpl.html#L51">51</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesImpl.html#L380">380</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesImpl.html#L396">396</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesImpl.html#L398">398</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -63500,13 +63482,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.WALCellFilter.java">org/apache/hadoop/hbase/replication/WALCellFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
@@ -63515,19 +63497,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.WALEntryFilter.java">org/apache/hadoop/hbase/replication/WALEntryFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.HBaseInterfaceAudience' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/WALEntryFilter.html#L22">22</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
@@ -63536,13 +63518,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.master.ReplicationHFileCleaner.java">org/apache/hadoop/hbase/replication/master/ReplicationHFileCleaner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
@@ -63551,67 +63533,67 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner.java">org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.html#L25">25</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.HConstants.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.html#L29">29</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.replication.ReplicationException.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.html#L31">31</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.IOException' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.html#L36">36</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - java.util.List.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.html#L38">38</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.base.Predicate' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.html#L41">41</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - com.google.common.collect.ImmutableSet.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.html#L42">42</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - com.google.common.collect.Sets.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.html#L44">44</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 7, expected level should be one of the following: 8, 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.html#L88">88</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -63620,25 +63602,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.master.TableCFsUpdater.java">org/apache/hadoop/hbase/replication/master/TableCFsUpdater.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.replication.ReplicationPeerConfig' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/master/TableCFsUpdater.html#L31">31</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.IOException' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/master/TableCFsUpdater.html#L37">37</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -63647,115 +63629,115 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.DumpReplicationQueues.java">org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.fs.Path.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L26">26</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
 <td>Using the '.*' form of import should be avoided - org.apache.hadoop.hbase.*.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L27">27</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
 <td>Using the '.*' form of import should be avoided - org.apache.hadoop.hbase.replication.*.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L34">34</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.util.FSUtils.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L35">35</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.mortbay.util.IO.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L41">41</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.util.concurrent.AtomicLongMap' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L43">43</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
 <td>Using the '.*' form of import should be avoided - java.util.*.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L47">47</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L54">54</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L87">87</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L95">95</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L137">137</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L138">138</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L199">199</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L258">258</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L279">279</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 104).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L307">307</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 118).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.html#L340">340</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -63764,13 +63746,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplicationEndpoint.java">org/apache/hadoop/hbase/replication/regionserver/HBaseInterClusterReplicationEndpoint.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -63779,31 +63761,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationGlobalSourceSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.html#L34">34</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 116).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.html#L73">73</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 116).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.html#L75">75</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -63812,13 +63794,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>InterfaceIsType</td>
@@ -63827,13 +63809,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSourceSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
@@ -63842,13 +63824,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSourceSourceImpl.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
@@ -63857,19 +63839,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.MetricsSink.java">org/apache/hadoop/hbase/replication/regionserver/MetricsSink.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.CompatibilitySingletonFactory' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/MetricsSink.html#L22">22</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -63878,19 +63860,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.MetricsSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsSource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.CompatibilitySingletonFactory' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html#L27">27</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -63899,37 +63881,37 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.RegionReplicaReplicationEndpoint.java">org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.replication.BaseWALEntryFilter' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.html#L63">63</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.cache.Cache' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.html#L78">78</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.html#L396">396</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 11, expected level should be 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.html#L545">545</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -63938,61 +63920,61 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.Replication.java">org/apache/hadoop/hbase/replication/regionserver/Replication.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/Replication.html#L36">36</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.regionserver.ReplicationSinkService' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/Replication.html#L49">49</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.regionserver.wal.WALActionsListener' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/Replication.html#L57">57</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.util.concurrent.ThreadFactoryBuilder' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/Replication.html#L65">65</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/Replication.html#L93">93</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/Replication.html#L95">95</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/Replication.html#L200">200</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/Replication.html#L212">212</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -64001,37 +63983,37 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.ReplicationLoad.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.util.ArrayList' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#L24">24</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#L54">54</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#L55">55</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.html#L123">123</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -64040,103 +64022,103 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.ReplicationSink.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.regionserver.wal.WALEdit' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L57">57</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 3, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L130">130</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L135">135</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L136">136</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L147">147</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L148">148</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L305">305</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L306">306</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L321">321</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L322">322</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L323">323</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L324">324</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 106).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L327">327</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L365">365</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.html#L394">394</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
@@ -64145,13 +64127,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.ReplicationSinkManager.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSinkManager.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -64160,91 +64142,91 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.ReplicationSource.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L161">161</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L249">249</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L437">437</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L523">523</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L525">525</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L526">526</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L527">527</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 182 lines (max allowed is 150).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L540">540</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L756">756</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L1007">1007</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L1093">1093</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 157).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L1206">1206</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 160).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#L1214">1214</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -64253,43 +64235,43 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceInterface.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#L26">26</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#L47">47</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#L48">48</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#L50">50</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.html#L51">51</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -64298,97 +64280,97 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceManager.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.util.Bytes' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L71">71</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L132">132</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L133">133</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L139">139</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L191">191</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 5, expected level should be 6.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L202">202</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 1, expected level should be 2.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L229">229</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L266">266</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L385">385</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L446">446</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L514">514</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L634">634</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 49 should have line break after.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L809">809</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.html#L919">919</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
@@ -64397,25 +64379,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html#L65">65</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.html#L66">66</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -64424,13 +64406,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.ReplicationThrottler.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationThrottler.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
@@ -64439,67 +64421,67 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.replication.regionserver.ReplicationWALReaderManager.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationWALReaderManager.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationWALReaderManager.html#L24">24</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.wal.WAL.Entry' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationWALReaderManager.html#L29">29</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.IOException' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationWALReaderManager.html#L32">32</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationWALReaderManager.html#L51">51</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationWALReaderManager.html#L52">52</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationWALReaderManager.html#L61">61</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationWALReaderManager.html#L63">63</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationWALReaderManager.html#L85">85</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/replication/regionserver/ReplicationWALReaderManager.html#L103">103</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -64508,13 +64490,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.Constants.java">org/apache/hadoop/hbase/rest/Constants.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>InterfaceIsType</td>
@@ -64523,25 +64505,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.ExistsResource.java">org/apache/hadoop/hbase/rest/ExistsResource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'javax.ws.rs.core.Response.ResponseBuilder' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/ExistsResource.html#L30">30</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/ExistsResource.html#L48">48</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -64550,25 +64532,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.MetricsREST.java">org/apache/hadoop/hbase/rest/MetricsREST.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.CompatibilitySingletonFactory' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MetricsREST.html#L23">23</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>RedundantImport</td>
 <td>Redundant import from the same package - org.apache.hadoop.hbase.rest.MetricsRESTSource.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MetricsREST.html#L25">25</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -64577,13 +64559,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.MetricsRESTSource.java">org/apache/hadoop/hbase/rest/MetricsRESTSource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -64592,61 +64574,61 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.MetricsRESTSourceImpl.java">org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.html#L73">73</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.html#L75">75</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.html#L76">76</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.html#L77">77</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.html#L80">80</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.html#L81">81</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.html#L82">82</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.html#L83">83</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -64655,31 +64637,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.MultiRowResource.java">org/apache/hadoop/hbase/rest/MultiRowResource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.Cell' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MultiRowResource.html#L33">33</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MultiRowResource.html#L50">50</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/MultiRowResource.html#L51">51</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -64688,25 +64670,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.NamespacesInstanceResource.java">org/apache/hadoop/hbase/rest/NamespacesInstanceResource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/NamespacesInstanceResource.html#L66">66</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/NamespacesInstanceResource.html#L74">74</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
@@ -64715,13 +64697,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.NamespacesResource.java">org/apache/hadoop/hbase/rest/NamespacesResource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -64730,13 +64712,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.ProtobufMessageHandler.java">org/apache/hadoop/hbase/rest/ProtobufMessageHandler.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -64745,31 +64727,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.RESTServer.java">org/apache/hadoop/hbase/rest/RESTServer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RESTServer.html#L37">37</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.base.Preconditions' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RESTServer.html#L60">60</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RESTServer.html#L73">73</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
@@ -64778,31 +64760,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.RESTServlet.java">org/apache/hadoop/hbase/rest/RESTServlet.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RESTServlet.html#L69">69</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RESTServlet.html#L90">90</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RESTServlet.html#L148">148</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -64811,19 +64793,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.RESTServletContainer.java">org/apache/hadoop/hbase/rest/RESTServletContainer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.sun.jersey.spi.container.servlet.ServletContainer' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RESTServletContainer.html#L29">29</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -64832,37 +64814,37 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.RegionsResource.java">org/apache/hadoop/hbase/rest/RegionsResource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'javax.ws.rs.core.Response.ResponseBuilder' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RegionsResource.html#L31">31</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.TableName' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RegionsResource.html#L38">38</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.HRegionInfo' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RegionsResource.html#L39">39</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RegionsResource.html#L62">62</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -64871,13 +64853,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.ResourceBase.java">org/apache/hadoop/hbase/rest/ResourceBase.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -64886,13 +64868,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.ResourceConfig.java">org/apache/hadoop/hbase/rest/ResourceConfig.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -64901,13 +64883,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.ResultGenerator.java">org/apache/hadoop/hbase/rest/ResultGenerator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -64916,25 +64898,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.RootResource.java">org/apache/hadoop/hbase/rest/RootResource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'javax.ws.rs.core.Response.ResponseBuilder' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RootResource.html#L32">32</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.TableName' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RootResource.html#L38">38</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -64943,271 +64925,271 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.rest.RowResource.java">org/apache/hadoop/hbase/rest/RowResource.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.Cell' import.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L43">43</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L68">68</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L69">69</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L70">70</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L71">71</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L204">204</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'try' have incorrect indentation level 27, expected level should be 12.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L204">204</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'try' child have incorrect indentation level 12, expected level should be 14.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L205">205</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'try rcurly' have incorrect indentation level 10, expected level should be 12.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L206">206</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'catch' child have incorrect indentation level 12, expected level should be 14.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L207">207</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'catch rcurly' have incorrect indentation level 10, expected level should be 12.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L208">208</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L237">237</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'try' have incorrect indentation level 25, expected level should be 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L237">237</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'try' child have incorrect indentation level 8, expected level should be 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L238">238</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'try rcurly' have incorrect indentation level 6, expected level should be 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L239">239</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'catch' child have incorrect indentation level 8, expected level should be 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L240">240</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'catch rcurly' have incorrect indentation level 6, expected level should be 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L241">241</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L283">283</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L301">301</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'try' have incorrect indentation level 25, expected level should be 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L301">301</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'try' child have incorrect indentation level 8, expected level should be 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L302">302</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'try rcurly' have incorrect indentation level 6, expected level should be 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L303">303</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'catch' child have incorrect indentation level 8, expected level should be 10.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L304">304</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'catch rcurly' have incorrect indentation level 6, expected level should be 8.</td>
 <td><a href="./xref/org/apache/hadoop/hbase/rest/RowResource.html#L305">305</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif

<TRUNCATED>

[29/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
index 64414af..49afb32 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
@@ -273,12 +273,13 @@ implements org.apache.hadoop.util.Tool</pre>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-">bulkLoadPhase</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">bulkLoadPhase</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
              <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
              com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups,
-             boolean&nbsp;copyFile)</code>
+             boolean&nbsp;copyFile,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;item2RegionMap)</code>
 <div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
  them.</div>
 </td>
@@ -324,7 +325,7 @@ implements org.apache.hadoop.util.Tool</pre>
 </td>
 </tr>
 <tr id="i7" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#doBulkLoad-java.util.Map-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-boolean-boolean-">doBulkLoad</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
           <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
           <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
@@ -371,7 +372,7 @@ implements org.apache.hadoop.util.Tool</pre>
 </td>
 </tr>
 <tr id="i12" class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#groupOrSplitPhase-org.apache.hadoop.hbase.client.Table-java.util.concurrent.ExecutorService-java.util.Deque-org.apache.hadoop.hbase.util.Pair-">groupOrSplitPhase</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
@@ -413,7 +414,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#main-java.lang.String:A-">main</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>&nbsp;</td>
 </tr>
 <tr id="i19" class="rowColor">
-<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#performBulkLoad-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-java.util.Deque-java.util.concurrent.ExecutorService-org.apache.hadoop.hbase.client.SecureBulkLoadClient-boolean-">performBulkLoad</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
                <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,
@@ -466,7 +467,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#run-java.lang.String:A-">run</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>&nbsp;</td>
 </tr>
 <tr id="i25" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#run-java.lang.String-java.util.Map-org.apache.hadoop.hbase.TableName-">run</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dirPath,
    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
    <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
@@ -940,14 +941,14 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>doBulkLoad</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.368">doBulkLoad</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
-                               <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
-                               <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
-                               <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,
-                               boolean&nbsp;silence,
-                               boolean&nbsp;copyFile)
-                        throws <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a>,
-                               <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.368">doBulkLoad</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
+                                                                      <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+                                                                      <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+                                                                      <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,
+                                                                      boolean&nbsp;silence,
+                                                                      boolean&nbsp;copyFile)
+                                                               throws <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a>,
+                                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Perform a bulk load of the given directory into the given
  pre-existing table.  This method is not threadsafe.</div>
 <dl>
@@ -959,7 +960,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <dd><code>silence</code> - true to ignore unmatched column families</dd>
 <dd><code>copyFile</code> - always copy hfiles if true</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>List of filenames which were not found</dd>
+<dd>Map of LoadQueueItem to region</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a></code> - if table does not yet exist</dd>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
@@ -1003,14 +1004,14 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>performBulkLoad</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.452">performBulkLoad</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
-                             <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
-                             <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,
-                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
-                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
-                             <a href="../../../../../org/apache/hadoop/hbase/client/SecureBulkLoadClient.html" title="class in org.apache.hadoop.hbase.client">SecureBulkLoadClient</a>&nbsp;secureClient,
-                             boolean&nbsp;copyFile)
-                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.452">performBulkLoad</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+                                                                    <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+                                                                    <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,
+                                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
+                                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
+                                                                    <a href="../../../../../org/apache/hadoop/hbase/client/SecureBulkLoadClient.html" title="class in org.apache.hadoop.hbase.client">SecureBulkLoadClient</a>&nbsp;secureClient,
+                                                                    boolean&nbsp;copyFile)
+                                                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
@@ -1023,7 +1024,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareHFileQueue</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.521">prepareHFileQueue</a>(org.apache.hadoop.fs.Path&nbsp;hfilesDir,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.522">prepareHFileQueue</a>(org.apache.hadoop.fs.Path&nbsp;hfilesDir,
                               <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
                               boolean&nbsp;validateHFile)
@@ -1048,7 +1049,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareHFileQueue</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.537">prepareHFileQueue</a>(org.apache.hadoop.fs.Path&nbsp;hfilesDir,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.538">prepareHFileQueue</a>(org.apache.hadoop.fs.Path&nbsp;hfilesDir,
                               <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
                               boolean&nbsp;validateHFile,
@@ -1075,7 +1076,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareHFileQueue</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.553">prepareHFileQueue</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.554">prepareHFileQueue</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
                               <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
                               boolean&nbsp;silence)
@@ -1100,7 +1101,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>createExecutorService</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.560">createExecutorService</a>()</pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.561">createExecutorService</a>()</pre>
 </li>
 </ul>
 <a name="validateFamiliesInHFiles-org.apache.hadoop.hbase.client.Table-java.util.Deque-boolean-">
@@ -1109,7 +1110,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>validateFamiliesInHFiles</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.572">validateFamiliesInHFiles</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.573">validateFamiliesInHFiles</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
                                       boolean&nbsp;silence)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1126,7 +1127,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>loadHFileQueue</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.609">loadHFileQueue</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.610">loadHFileQueue</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                            <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
                            <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[][],byte[][]&gt;&nbsp;startEndKeys)
@@ -1154,7 +1155,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>loadHFileQueue</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.626">loadHFileQueue</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.627">loadHFileQueue</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                            <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
                            <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[][],byte[][]&gt;&nbsp;startEndKeys,
@@ -1177,18 +1178,19 @@ implements org.apache.hadoop.util.Tool</pre>
 </dl>
 </li>
 </ul>
-<a name="bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-">
+<a name="bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>bulkLoadPhase</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.646">bulkLoadPhase</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.647">bulkLoadPhase</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                              <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
                              com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups,
-                             boolean&nbsp;copyFile)
+                             boolean&nbsp;copyFile,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;item2RegionMap)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
  them.  Any failures are re-queued for another pass with the
@@ -1205,7 +1207,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>checkHFilesCountPerRegionPerFamily</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.690">checkHFilesCountPerRegionPerFamily</a>(com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.702">checkHFilesCountPerRegionPerFamily</a>(com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups)</pre>
 </li>
 </ul>
 <a name="groupOrSplitPhase-org.apache.hadoop.hbase.client.Table-java.util.concurrent.ExecutorService-java.util.Deque-org.apache.hadoop.hbase.util.Pair-">
@@ -1214,11 +1216,11 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>groupOrSplitPhase</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.722">groupOrSplitPhase</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Ta
 ble.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
-                                                                                                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
-                                                                                                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
-                                                                                                                                <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[][],byte[][]&gt;&nbsp;startEndKeys)
-                                                                                                                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.734">groupOrSplitPhase</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Tabl
 e.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+                                                                                                                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
+                                                                                                                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
+                                                                                                                               <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[][],byte[][]&gt;&nbsp;startEndKeys)
+                                                                                                                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>table</code> - the table to load into</dd>
@@ -1226,7 +1228,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <dd><code>queue</code> - the queue for LoadQueueItem</dd>
 <dd><code>startEndKeys</code> - start and end keys</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>A map that groups LQI by likely bulk load region targets and List of missing hfiles.</dd>
+<dd>A map that groups LQI by likely bulk load region targets and Set of missing hfiles.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
@@ -1238,7 +1240,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getUniqueName</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.778">getUniqueName</a>()</pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.790">getUniqueName</a>()</pre>
 </li>
 </ul>
 <a name="splitStoreFile-org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem-org.apache.hadoop.hbase.client.Table-byte:A-byte:A-">
@@ -1247,7 +1249,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>splitStoreFile</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.782">splitStoreFile</a>(<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&nbsp;item,
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.794">splitStoreFile</a>(<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&nbsp;item,
                                                                    <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                                                                    byte[]&nbsp;startKey,
                                                                    byte[]&nbsp;splitKey)
@@ -1264,7 +1266,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>groupOrSplit</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.837">groupOrSplit</a>(com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIn
 crementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.849">groupOrSplit</a>(com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIn
 crementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups,
                                                                               <a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&nbsp;item,
                                                                               <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                                                                               <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[][],byte[][]&gt;&nbsp;startEndKeys)
@@ -1287,7 +1289,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>tryAtomicRegionLoad</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.936">tryAtomicRegionLoad</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.948">tryAtomicRegionLoad</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                                                                         <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                                         byte[]&nbsp;first,
                                                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;lqis,
@@ -1316,7 +1318,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>isSecureBulkLoadEndpointAvailable</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1021">isSecureBulkLoadEndpointAvailable</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1033">isSecureBulkLoadEndpointAvailable</a>()</pre>
 </li>
 </ul>
 <a name="splitStoreFile-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.HColumnDescriptor-byte:A-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-">
@@ -1325,7 +1327,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>splitStoreFile</h4>
-<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1030">splitStoreFile</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1042">splitStoreFile</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                            org.apache.hadoop.fs.Path&nbsp;inFile,
                            <a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;familyDesc,
                            byte[]&nbsp;splitKey,
@@ -1346,7 +1348,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>copyHFileHalf</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1045">copyHFileHalf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1057">copyHFileHalf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                   org.apache.hadoop.fs.Path&nbsp;inFile,
                                   org.apache.hadoop.fs.Path&nbsp;outFile,
                                   <a href="../../../../../org/apache/hadoop/hbase/io/Reference.html" title="class in org.apache.hadoop.hbase.io">Reference</a>&nbsp;reference,
@@ -1365,7 +1367,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCopyHFileMetaKey</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1095">shouldCopyHFileMetaKey</a>(byte[]&nbsp;key)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1107">shouldCopyHFileMetaKey</a>(byte[]&nbsp;key)</pre>
 </li>
 </ul>
 <a name="inferBoundaries-java.util.TreeMap-">
@@ -1374,7 +1376,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>inferBoundaries</h4>
-<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1117">inferBoundaries</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;bdryMap)</pre>
+<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1129">inferBoundaries</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;bdryMap)</pre>
 </li>
 </ul>
 <a name="createTable-org.apache.hadoop.hbase.TableName-java.lang.String-org.apache.hadoop.hbase.client.Admin-">
@@ -1383,7 +1385,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1143">createTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1155">createTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dirPath,
                          <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin)
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -1399,10 +1401,10 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1196">run</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dirPath,
-                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
-                        <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
-                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1208">run</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dirPath,
+                                                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
+                                                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+                                                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
@@ -1415,7 +1417,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1231">run</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1244">run</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1431,7 +1433,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1244">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1257">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1445,7 +1447,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>setBulkToken</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1259">setBulkToken</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;stagingDir)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1272">setBulkToken</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;stagingDir)</pre>
 <div class="block">Called from replication sink, where it manages bulkToken(staging directory) by itself. This is
  used only when SecureBulkLoadEndpoint is configured in hbase.coprocessor.region.classes
  property. This directory is used as a temporary directory where all files are initially


[19/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html
index 89b0f0c..df6f4e7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/RegionSplitter.HexStringSplit.html
@@ -28,1103 +28,1096 @@
 <span class="sourceLineNo">020</span><a name="line.20"></a>
 <span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.math.BigInteger;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.Arrays;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.Collection;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.Collections;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.Comparator;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.LinkedList;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.List;<a name="line.28"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.Arrays;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Collection;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.LinkedList;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.Map;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>import java.util.Set;<a name="line.29"></a>
 <span class="sourceLineNo">030</span>import java.util.TreeMap;<a name="line.30"></a>
-<span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.commons.cli.CommandLine;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.commons.cli.GnuParser;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.commons.cli.HelpFormatter;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.commons.cli.OptionBuilder;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.commons.cli.Options;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.commons.cli.ParseException;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.commons.lang.ArrayUtils;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.commons.lang.StringUtils;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.commons.logging.Log;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.commons.logging.LogFactory;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.conf.Configuration;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.fs.FileSystem;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.fs.Path;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.ClusterStatus;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.TableName;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.client.NoServerForRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.client.Table;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;<a name="line.64"></a>
-<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>import com.google.common.base.Preconditions;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import com.google.common.collect.Lists;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import com.google.common.collect.Maps;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import com.google.common.collect.Sets;<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> * The {@link RegionSplitter} class provides several utilities to help in the<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * administration lifecycle for developers who choose to manually split regions<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * instead of having HBase handle that automatically. The most useful utilities<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * are:<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;ul&gt;<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;li&gt;Create a table with a specified number of pre-split regions<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * &lt;li&gt;Execute a rolling split of all regions on an existing table<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * &lt;/ul&gt;<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * &lt;p&gt;<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * Both operations can be safely done on a live server.<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * &lt;p&gt;<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * &lt;b&gt;Question:&lt;/b&gt; How do I turn off automatic splitting? &lt;br&gt;<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * &lt;b&gt;Answer:&lt;/b&gt; Automatic splitting is determined by the configuration value<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;i&gt;HConstants.HREGION_MAX_FILESIZE&lt;/i&gt;. It is not recommended that you set this<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * to Long.MAX_VALUE in case you forget about manual splits. A suggested setting<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * is 100GB, which would result in &amp;gt; 1hr major compactions if reached.<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * &lt;p&gt;<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * &lt;b&gt;Question:&lt;/b&gt; Why did the original authors decide to manually split? &lt;br&gt;<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * &lt;b&gt;Answer:&lt;/b&gt; Specific workload characteristics of our use case allowed us<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * to benefit from a manual split system.<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;p&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * &lt;ul&gt;<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * &lt;li&gt;Data (~1k) that would grow instead of being replaced<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * &lt;li&gt;Data growth was roughly uniform across all regions<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * &lt;li&gt;OLTP workload. Data loss is a big deal.<a name="line.97"></a>
-<span class="sourceLineNo">098</span> * &lt;/ul&gt;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * &lt;p&gt;<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * &lt;b&gt;Question:&lt;/b&gt; Why is manual splitting good for this workload? &lt;br&gt;<a name="line.100"></a>
-<span class="sourceLineNo">101</span> * &lt;b&gt;Answer:&lt;/b&gt; Although automated splitting is not a bad option, there are<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * benefits to manual splitting.<a name="line.102"></a>
-<span class="sourceLineNo">103</span> * &lt;p&gt;<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * &lt;ul&gt;<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * &lt;li&gt;With growing amounts of data, splits will continually be needed. Since<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * you always know exactly what regions you have, long-term debugging and<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * profiling is much easier with manual splits. It is hard to trace the logs to<a name="line.107"></a>
-<span class="sourceLineNo">108</span> * understand region level problems if it keeps splitting and getting renamed.<a name="line.108"></a>
-<span class="sourceLineNo">109</span> * &lt;li&gt;Data offlining bugs + unknown number of split regions == oh crap! If an<a name="line.109"></a>
-<span class="sourceLineNo">110</span> * WAL or StoreFile was mistakenly unprocessed by HBase due to a weird bug and<a name="line.110"></a>
-<span class="sourceLineNo">111</span> * you notice it a day or so later, you can be assured that the regions<a name="line.111"></a>
-<span class="sourceLineNo">112</span> * specified in these files are the same as the current regions and you have<a name="line.112"></a>
-<span class="sourceLineNo">113</span> * less headaches trying to restore/replay your data.<a name="line.113"></a>
-<span class="sourceLineNo">114</span> * &lt;li&gt;You can finely tune your compaction algorithm. With roughly uniform data<a name="line.114"></a>
-<span class="sourceLineNo">115</span> * growth, it's easy to cause split / compaction storms as the regions all<a name="line.115"></a>
-<span class="sourceLineNo">116</span> * roughly hit the same data size at the same time. With manual splits, you can<a name="line.116"></a>
-<span class="sourceLineNo">117</span> * let staggered, time-based major compactions spread out your network IO load.<a name="line.117"></a>
-<span class="sourceLineNo">118</span> * &lt;/ul&gt;<a name="line.118"></a>
-<span class="sourceLineNo">119</span> * &lt;p&gt;<a name="line.119"></a>
-<span class="sourceLineNo">120</span> * &lt;b&gt;Question:&lt;/b&gt; What's the optimal number of pre-split regions to create? &lt;br&gt;<a name="line.120"></a>
-<span class="sourceLineNo">121</span> * &lt;b&gt;Answer:&lt;/b&gt; Mileage will vary depending upon your application.<a name="line.121"></a>
-<span class="sourceLineNo">122</span> * &lt;p&gt;<a name="line.122"></a>
-<span class="sourceLineNo">123</span> * The short answer for our application is that we started with 10 pre-split<a name="line.123"></a>
-<span class="sourceLineNo">124</span> * regions / server and watched our data growth over time. It's better to err on<a name="line.124"></a>
-<span class="sourceLineNo">125</span> * the side of too little regions and rolling split later.<a name="line.125"></a>
-<span class="sourceLineNo">126</span> * &lt;p&gt;<a name="line.126"></a>
-<span class="sourceLineNo">127</span> * The more complicated answer is that this depends upon the largest storefile<a name="line.127"></a>
-<span class="sourceLineNo">128</span> * in your region. With a growing data size, this will get larger over time. You<a name="line.128"></a>
-<span class="sourceLineNo">129</span> * want the largest region to be just big enough that the<a name="line.129"></a>
-<span class="sourceLineNo">130</span> * {@link org.apache.hadoop.hbase.regionserver.HStore} compact<a name="line.130"></a>
-<span class="sourceLineNo">131</span> * selection algorithm only compacts it due to a timed major. If you don't, your<a name="line.131"></a>
-<span class="sourceLineNo">132</span> * cluster can be prone to compaction storms as the algorithm decides to run<a name="line.132"></a>
-<span class="sourceLineNo">133</span> * major compactions on a large series of regions all at once. Note that<a name="line.133"></a>
-<span class="sourceLineNo">134</span> * compaction storms are due to the uniform data growth, not the manual split<a name="line.134"></a>
-<span class="sourceLineNo">135</span> * decision.<a name="line.135"></a>
-<span class="sourceLineNo">136</span> * &lt;p&gt;<a name="line.136"></a>
-<span class="sourceLineNo">137</span> * If you pre-split your regions too thin, you can increase the major compaction<a name="line.137"></a>
-<span class="sourceLineNo">138</span> * interval by configuring HConstants.MAJOR_COMPACTION_PERIOD. If your data size<a name="line.138"></a>
-<span class="sourceLineNo">139</span> * grows too large, use this script to perform a network IO safe rolling split<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * of all regions.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> */<a name="line.141"></a>
-<span class="sourceLineNo">142</span>@InterfaceAudience.Private<a name="line.142"></a>
-<span class="sourceLineNo">143</span>public class RegionSplitter {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private static final Log LOG = LogFactory.getLog(RegionSplitter.class);<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  /**<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   * A generic interface for the RegionSplitter code to use for all it's<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * functionality. Note that the original authors of this code use<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * {@link HexStringSplit} to partition their table and set it as default, but<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * provided this for your custom algorithm. To use, create a new derived class<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * from this interface and call {@link RegionSplitter#createPresplitTable} or<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * RegionSplitter#rollingSplit(TableName, SplitAlgorithm, Configuration) with the<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * argument splitClassName giving the name of your class.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   */<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  public interface SplitAlgorithm {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    /**<a name="line.156"></a>
-<span class="sourceLineNo">157</span>     * Split a pre-existing region into 2 regions.<a name="line.157"></a>
-<span class="sourceLineNo">158</span>     *<a name="line.158"></a>
-<span class="sourceLineNo">159</span>     * @param start<a name="line.159"></a>
-<span class="sourceLineNo">160</span>     *          first row (inclusive)<a name="line.160"></a>
-<span class="sourceLineNo">161</span>     * @param end<a name="line.161"></a>
-<span class="sourceLineNo">162</span>     *          last row (exclusive)<a name="line.162"></a>
-<span class="sourceLineNo">163</span>     * @return the split row to use<a name="line.163"></a>
-<span class="sourceLineNo">164</span>     */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    byte[] split(byte[] start, byte[] end);<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>    /**<a name="line.167"></a>
-<span class="sourceLineNo">168</span>     * Split an entire table.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>     *<a name="line.169"></a>
-<span class="sourceLineNo">170</span>     * @param numRegions<a name="line.170"></a>
-<span class="sourceLineNo">171</span>     *          number of regions to split the table into<a name="line.171"></a>
-<span class="sourceLineNo">172</span>     *<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * @throws RuntimeException<a name="line.173"></a>
-<span class="sourceLineNo">174</span>     *           user input is validated at this time. may throw a runtime<a name="line.174"></a>
-<span class="sourceLineNo">175</span>     *           exception in response to a parse failure<a name="line.175"></a>
-<span class="sourceLineNo">176</span>     * @return array of split keys for the initial regions of the table. The<a name="line.176"></a>
-<span class="sourceLineNo">177</span>     *         length of the returned array should be numRegions-1.<a name="line.177"></a>
-<span class="sourceLineNo">178</span>     */<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    byte[][] split(int numRegions);<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>    /**<a name="line.181"></a>
-<span class="sourceLineNo">182</span>     * In HBase, the first row is represented by an empty byte array. This might<a name="line.182"></a>
-<span class="sourceLineNo">183</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.183"></a>
-<span class="sourceLineNo">184</span>     * will be passed firstRow() instead of empty array.<a name="line.184"></a>
-<span class="sourceLineNo">185</span>     *<a name="line.185"></a>
-<span class="sourceLineNo">186</span>     * @return your representation of your first row<a name="line.186"></a>
-<span class="sourceLineNo">187</span>     */<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    byte[] firstRow();<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>    /**<a name="line.190"></a>
-<span class="sourceLineNo">191</span>     * In HBase, the last row is represented by an empty byte array. This might<a name="line.191"></a>
-<span class="sourceLineNo">192</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.192"></a>
-<span class="sourceLineNo">193</span>     * will be passed firstRow() instead of empty array.<a name="line.193"></a>
-<span class="sourceLineNo">194</span>     *<a name="line.194"></a>
-<span class="sourceLineNo">195</span>     * @return your representation of your last row<a name="line.195"></a>
-<span class="sourceLineNo">196</span>     */<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    byte[] lastRow();<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    /**<a name="line.199"></a>
-<span class="sourceLineNo">200</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.200"></a>
-<span class="sourceLineNo">201</span>     * value to help the split code understand how to evenly divide the first<a name="line.201"></a>
-<span class="sourceLineNo">202</span>     * region.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>     *<a name="line.203"></a>
-<span class="sourceLineNo">204</span>     * @param userInput<a name="line.204"></a>
-<span class="sourceLineNo">205</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.205"></a>
-<span class="sourceLineNo">206</span>     */<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    void setFirstRow(String userInput);<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>    /**<a name="line.209"></a>
-<span class="sourceLineNo">210</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.210"></a>
-<span class="sourceLineNo">211</span>     * value to help the split code understand how to evenly divide the last<a name="line.211"></a>
-<span class="sourceLineNo">212</span>     * region. Note that this last row is inclusive for all rows sharing the<a name="line.212"></a>
-<span class="sourceLineNo">213</span>     * same prefix.<a name="line.213"></a>
-<span class="sourceLineNo">214</span>     *<a name="line.214"></a>
-<span class="sourceLineNo">215</span>     * @param userInput<a name="line.215"></a>
-<span class="sourceLineNo">216</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.216"></a>
-<span class="sourceLineNo">217</span>     */<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    void setLastRow(String userInput);<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>    /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span>     * @param input<a name="line.221"></a>
-<span class="sourceLineNo">222</span>     *          user or file input for row<a name="line.222"></a>
-<span class="sourceLineNo">223</span>     * @return byte array representation of this row for HBase<a name="line.223"></a>
-<span class="sourceLineNo">224</span>     */<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    byte[] strToRow(String input);<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>    /**<a name="line.227"></a>
-<span class="sourceLineNo">228</span>     * @param row<a name="line.228"></a>
-<span class="sourceLineNo">229</span>     *          byte array representing a row in HBase<a name="line.229"></a>
-<span class="sourceLineNo">230</span>     * @return String to use for debug &amp;amp; file printing<a name="line.230"></a>
-<span class="sourceLineNo">231</span>     */<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    String rowToStr(byte[] row);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    /**<a name="line.234"></a>
-<span class="sourceLineNo">235</span>     * @return the separator character to use when storing / printing the row<a name="line.235"></a>
-<span class="sourceLineNo">236</span>     */<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    String separator();<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    /**<a name="line.239"></a>
-<span class="sourceLineNo">240</span>     * Set the first row<a name="line.240"></a>
-<span class="sourceLineNo">241</span>     * @param userInput byte array of the row key.<a name="line.241"></a>
-<span class="sourceLineNo">242</span>     */<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    void setFirstRow(byte[] userInput);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>    /**<a name="line.245"></a>
-<span class="sourceLineNo">246</span>     * Set the last row<a name="line.246"></a>
-<span class="sourceLineNo">247</span>     * @param userInput byte array of the row key.<a name="line.247"></a>
-<span class="sourceLineNo">248</span>     */<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    void setLastRow(byte[] userInput);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>  }<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>  /**<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * The main function for the RegionSplitter application. Common uses:<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   * &lt;p&gt;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>   * &lt;ul&gt;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>   * &lt;li&gt;create a table named 'myTable' with 60 pre-split regions containing 2<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * column families 'test' &amp;amp; 'rs', assuming the keys are hex-encoded ASCII:<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * &lt;ul&gt;<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -c 60 -f test:rs<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   * myTable HexStringSplit<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   * &lt;/ul&gt;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>   * &lt;li&gt;perform a rolling split of 'myTable' (i.e. 60 =&amp;gt; 120 regions), # 2<a name="line.262"></a>
-<span class="sourceLineNo">263</span>   * outstanding splits at a time, assuming keys are uniformly distributed<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * bytes:<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * &lt;ul&gt;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -r -o 2 myTable<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * UniformSplit<a name="line.267"></a>
+<span class="sourceLineNo">031</span>import org.apache.commons.cli.CommandLine;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.commons.cli.GnuParser;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.commons.cli.HelpFormatter;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.commons.cli.OptionBuilder;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.commons.cli.Options;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.commons.cli.ParseException;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.commons.lang.ArrayUtils;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.commons.lang.StringUtils;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.commons.logging.Log;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.commons.logging.LogFactory;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.conf.Configuration;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.fs.FSDataInputStream;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.fs.FSDataOutputStream;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.fs.FileSystem;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.fs.Path;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ClusterStatus;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.TableName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.client.NoServerForRegionException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.client.Table;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>import com.google.common.base.Preconditions;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import com.google.common.collect.Lists;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import com.google.common.collect.Maps;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import com.google.common.collect.Sets;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>/**<a name="line.70"></a>
+<span class="sourceLineNo">071</span> * The {@link RegionSplitter} class provides several utilities to help in the<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * administration lifecycle for developers who choose to manually split regions<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * instead of having HBase handle that automatically. The most useful utilities<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * are:<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * &lt;p&gt;<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;ul&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * &lt;li&gt;Create a table with a specified number of pre-split regions<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;li&gt;Execute a rolling split of all regions on an existing table<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * &lt;/ul&gt;<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * &lt;p&gt;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * Both operations can be safely done on a live server.<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * &lt;p&gt;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * &lt;b&gt;Question:&lt;/b&gt; How do I turn off automatic splitting? &lt;br&gt;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * &lt;b&gt;Answer:&lt;/b&gt; Automatic splitting is determined by the configuration value<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * &lt;i&gt;HConstants.HREGION_MAX_FILESIZE&lt;/i&gt;. It is not recommended that you set this<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * to Long.MAX_VALUE in case you forget about manual splits. A suggested setting<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * is 100GB, which would result in &amp;gt; 1hr major compactions if reached.<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;p&gt;<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * &lt;b&gt;Question:&lt;/b&gt; Why did the original authors decide to manually split? &lt;br&gt;<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * &lt;b&gt;Answer:&lt;/b&gt; Specific workload characteristics of our use case allowed us<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * to benefit from a manual split system.<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * &lt;p&gt;<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * &lt;ul&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;li&gt;Data (~1k) that would grow instead of being replaced<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * &lt;li&gt;Data growth was roughly uniform across all regions<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * &lt;li&gt;OLTP workload. Data loss is a big deal.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;/ul&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;p&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * &lt;b&gt;Question:&lt;/b&gt; Why is manual splitting good for this workload? &lt;br&gt;<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * &lt;b&gt;Answer:&lt;/b&gt; Although automated splitting is not a bad option, there are<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * benefits to manual splitting.<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * &lt;p&gt;<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * &lt;ul&gt;<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * &lt;li&gt;With growing amounts of data, splits will continually be needed. Since<a name="line.104"></a>
+<span class="sourceLineNo">105</span> * you always know exactly what regions you have, long-term debugging and<a name="line.105"></a>
+<span class="sourceLineNo">106</span> * profiling is much easier with manual splits. It is hard to trace the logs to<a name="line.106"></a>
+<span class="sourceLineNo">107</span> * understand region level problems if it keeps splitting and getting renamed.<a name="line.107"></a>
+<span class="sourceLineNo">108</span> * &lt;li&gt;Data offlining bugs + unknown number of split regions == oh crap! If an<a name="line.108"></a>
+<span class="sourceLineNo">109</span> * WAL or StoreFile was mistakenly unprocessed by HBase due to a weird bug and<a name="line.109"></a>
+<span class="sourceLineNo">110</span> * you notice it a day or so later, you can be assured that the regions<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * specified in these files are the same as the current regions and you have<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * less headaches trying to restore/replay your data.<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * &lt;li&gt;You can finely tune your compaction algorithm. With roughly uniform data<a name="line.113"></a>
+<span class="sourceLineNo">114</span> * growth, it's easy to cause split / compaction storms as the regions all<a name="line.114"></a>
+<span class="sourceLineNo">115</span> * roughly hit the same data size at the same time. With manual splits, you can<a name="line.115"></a>
+<span class="sourceLineNo">116</span> * let staggered, time-based major compactions spread out your network IO load.<a name="line.116"></a>
+<span class="sourceLineNo">117</span> * &lt;/ul&gt;<a name="line.117"></a>
+<span class="sourceLineNo">118</span> * &lt;p&gt;<a name="line.118"></a>
+<span class="sourceLineNo">119</span> * &lt;b&gt;Question:&lt;/b&gt; What's the optimal number of pre-split regions to create? &lt;br&gt;<a name="line.119"></a>
+<span class="sourceLineNo">120</span> * &lt;b&gt;Answer:&lt;/b&gt; Mileage will vary depending upon your application.<a name="line.120"></a>
+<span class="sourceLineNo">121</span> * &lt;p&gt;<a name="line.121"></a>
+<span class="sourceLineNo">122</span> * The short answer for our application is that we started with 10 pre-split<a name="line.122"></a>
+<span class="sourceLineNo">123</span> * regions / server and watched our data growth over time. It's better to err on<a name="line.123"></a>
+<span class="sourceLineNo">124</span> * the side of too little regions and rolling split later.<a name="line.124"></a>
+<span class="sourceLineNo">125</span> * &lt;p&gt;<a name="line.125"></a>
+<span class="sourceLineNo">126</span> * The more complicated answer is that this depends upon the largest storefile<a name="line.126"></a>
+<span class="sourceLineNo">127</span> * in your region. With a growing data size, this will get larger over time. You<a name="line.127"></a>
+<span class="sourceLineNo">128</span> * want the largest region to be just big enough that the<a name="line.128"></a>
+<span class="sourceLineNo">129</span> * {@link org.apache.hadoop.hbase.regionserver.HStore} compact<a name="line.129"></a>
+<span class="sourceLineNo">130</span> * selection algorithm only compacts it due to a timed major. If you don't, your<a name="line.130"></a>
+<span class="sourceLineNo">131</span> * cluster can be prone to compaction storms as the algorithm decides to run<a name="line.131"></a>
+<span class="sourceLineNo">132</span> * major compactions on a large series of regions all at once. Note that<a name="line.132"></a>
+<span class="sourceLineNo">133</span> * compaction storms are due to the uniform data growth, not the manual split<a name="line.133"></a>
+<span class="sourceLineNo">134</span> * decision.<a name="line.134"></a>
+<span class="sourceLineNo">135</span> * &lt;p&gt;<a name="line.135"></a>
+<span class="sourceLineNo">136</span> * If you pre-split your regions too thin, you can increase the major compaction<a name="line.136"></a>
+<span class="sourceLineNo">137</span> * interval by configuring HConstants.MAJOR_COMPACTION_PERIOD. If your data size<a name="line.137"></a>
+<span class="sourceLineNo">138</span> * grows too large, use this script to perform a network IO safe rolling split<a name="line.138"></a>
+<span class="sourceLineNo">139</span> * of all regions.<a name="line.139"></a>
+<span class="sourceLineNo">140</span> */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>@InterfaceAudience.Private<a name="line.141"></a>
+<span class="sourceLineNo">142</span>public class RegionSplitter {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  private static final Log LOG = LogFactory.getLog(RegionSplitter.class);<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span>  /**<a name="line.145"></a>
+<span class="sourceLineNo">146</span>   * A generic interface for the RegionSplitter code to use for all it's<a name="line.146"></a>
+<span class="sourceLineNo">147</span>   * functionality. Note that the original authors of this code use<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   * {@link HexStringSplit} to partition their table and set it as default, but<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * provided this for your custom algorithm. To use, create a new derived class<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * from this interface and call {@link RegionSplitter#createPresplitTable} or<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   * RegionSplitter#rollingSplit(TableName, SplitAlgorithm, Configuration) with the<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * argument splitClassName giving the name of your class.<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   */<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  public interface SplitAlgorithm {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    /**<a name="line.155"></a>
+<span class="sourceLineNo">156</span>     * Split a pre-existing region into 2 regions.<a name="line.156"></a>
+<span class="sourceLineNo">157</span>     *<a name="line.157"></a>
+<span class="sourceLineNo">158</span>     * @param start<a name="line.158"></a>
+<span class="sourceLineNo">159</span>     *          first row (inclusive)<a name="line.159"></a>
+<span class="sourceLineNo">160</span>     * @param end<a name="line.160"></a>
+<span class="sourceLineNo">161</span>     *          last row (exclusive)<a name="line.161"></a>
+<span class="sourceLineNo">162</span>     * @return the split row to use<a name="line.162"></a>
+<span class="sourceLineNo">163</span>     */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    byte[] split(byte[] start, byte[] end);<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>    /**<a name="line.166"></a>
+<span class="sourceLineNo">167</span>     * Split an entire table.<a name="line.167"></a>
+<span class="sourceLineNo">168</span>     *<a name="line.168"></a>
+<span class="sourceLineNo">169</span>     * @param numRegions<a name="line.169"></a>
+<span class="sourceLineNo">170</span>     *          number of regions to split the table into<a name="line.170"></a>
+<span class="sourceLineNo">171</span>     *<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     * @throws RuntimeException<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     *           user input is validated at this time. may throw a runtime<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     *           exception in response to a parse failure<a name="line.174"></a>
+<span class="sourceLineNo">175</span>     * @return array of split keys for the initial regions of the table. The<a name="line.175"></a>
+<span class="sourceLineNo">176</span>     *         length of the returned array should be numRegions-1.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>     */<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    byte[][] split(int numRegions);<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>    /**<a name="line.180"></a>
+<span class="sourceLineNo">181</span>     * In HBase, the first row is represented by an empty byte array. This might<a name="line.181"></a>
+<span class="sourceLineNo">182</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.182"></a>
+<span class="sourceLineNo">183</span>     * will be passed firstRow() instead of empty array.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>     *<a name="line.184"></a>
+<span class="sourceLineNo">185</span>     * @return your representation of your first row<a name="line.185"></a>
+<span class="sourceLineNo">186</span>     */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    byte[] firstRow();<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>    /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>     * In HBase, the last row is represented by an empty byte array. This might<a name="line.190"></a>
+<span class="sourceLineNo">191</span>     * cause problems with your split algorithm or row printing. All your APIs<a name="line.191"></a>
+<span class="sourceLineNo">192</span>     * will be passed firstRow() instead of empty array.<a name="line.192"></a>
+<span class="sourceLineNo">193</span>     *<a name="line.193"></a>
+<span class="sourceLineNo">194</span>     * @return your representation of your last row<a name="line.194"></a>
+<span class="sourceLineNo">195</span>     */<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    byte[] lastRow();<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>    /**<a name="line.198"></a>
+<span class="sourceLineNo">199</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.199"></a>
+<span class="sourceLineNo">200</span>     * value to help the split code understand how to evenly divide the first<a name="line.200"></a>
+<span class="sourceLineNo">201</span>     * region.<a name="line.201"></a>
+<span class="sourceLineNo">202</span>     *<a name="line.202"></a>
+<span class="sourceLineNo">203</span>     * @param userInput<a name="line.203"></a>
+<span class="sourceLineNo">204</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.204"></a>
+<span class="sourceLineNo">205</span>     */<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    void setFirstRow(String userInput);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span>     * In HBase, the last row is represented by an empty byte array. Set this<a name="line.209"></a>
+<span class="sourceLineNo">210</span>     * value to help the split code understand how to evenly divide the last<a name="line.210"></a>
+<span class="sourceLineNo">211</span>     * region. Note that this last row is inclusive for all rows sharing the<a name="line.211"></a>
+<span class="sourceLineNo">212</span>     * same prefix.<a name="line.212"></a>
+<span class="sourceLineNo">213</span>     *<a name="line.213"></a>
+<span class="sourceLineNo">214</span>     * @param userInput<a name="line.214"></a>
+<span class="sourceLineNo">215</span>     *          raw user input (may throw RuntimeException on parse failure)<a name="line.215"></a>
+<span class="sourceLineNo">216</span>     */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    void setLastRow(String userInput);<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    /**<a name="line.219"></a>
+<span class="sourceLineNo">220</span>     * @param input<a name="line.220"></a>
+<span class="sourceLineNo">221</span>     *          user or file input for row<a name="line.221"></a>
+<span class="sourceLineNo">222</span>     * @return byte array representation of this row for HBase<a name="line.222"></a>
+<span class="sourceLineNo">223</span>     */<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    byte[] strToRow(String input);<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>    /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>     * @param row<a name="line.227"></a>
+<span class="sourceLineNo">228</span>     *          byte array representing a row in HBase<a name="line.228"></a>
+<span class="sourceLineNo">229</span>     * @return String to use for debug &amp;amp; file printing<a name="line.229"></a>
+<span class="sourceLineNo">230</span>     */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    String rowToStr(byte[] row);<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>    /**<a name="line.233"></a>
+<span class="sourceLineNo">234</span>     * @return the separator character to use when storing / printing the row<a name="line.234"></a>
+<span class="sourceLineNo">235</span>     */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    String separator();<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>    /**<a name="line.238"></a>
+<span class="sourceLineNo">239</span>     * Set the first row<a name="line.239"></a>
+<span class="sourceLineNo">240</span>     * @param userInput byte array of the row key.<a name="line.240"></a>
+<span class="sourceLineNo">241</span>     */<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    void setFirstRow(byte[] userInput);<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>    /**<a name="line.244"></a>
+<span class="sourceLineNo">245</span>     * Set the last row<a name="line.245"></a>
+<span class="sourceLineNo">246</span>     * @param userInput byte array of the row key.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>     */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    void setLastRow(byte[] userInput);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>  /**<a name="line.251"></a>
+<span class="sourceLineNo">252</span>   * The main function for the RegionSplitter application. Common uses:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * &lt;p&gt;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * &lt;ul&gt;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   * &lt;li&gt;create a table named 'myTable' with 60 pre-split regions containing 2<a name="line.255"></a>
+<span class="sourceLineNo">256</span>   * column families 'test' &amp;amp; 'rs', assuming the keys are hex-encoded ASCII:<a name="line.256"></a>
+<span class="sourceLineNo">257</span>   * &lt;ul&gt;<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -c 60 -f test:rs<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * myTable HexStringSplit<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * &lt;/ul&gt;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   * &lt;li&gt;perform a rolling split of 'myTable' (i.e. 60 =&amp;gt; 120 regions), # 2<a name="line.261"></a>
+<span class="sourceLineNo">262</span>   * outstanding splits at a time, assuming keys are uniformly distributed<a name="line.262"></a>
+<span class="sourceLineNo">263</span>   * bytes:<a name="line.263"></a>
+<span class="sourceLineNo">264</span>   * &lt;ul&gt;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>   * &lt;li&gt;bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -r -o 2 myTable<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * UniformSplit<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   * &lt;/ul&gt;<a name="line.267"></a>
 <span class="sourceLineNo">268</span>   * &lt;/ul&gt;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * &lt;/ul&gt;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   *<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * There are two SplitAlgorithms built into RegionSplitter, HexStringSplit<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * and UniformSplit. These are different strategies for choosing region<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * boundaries. See their source code for details.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   *<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * @param args<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   *          Usage: RegionSplitter &amp;lt;TABLE&amp;gt; &amp;lt;SPLITALGORITHM&amp;gt;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   *          &amp;lt;-c &amp;lt;# regions&amp;gt; -f &amp;lt;family:family:...&amp;gt; | -r<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   *          [-o &amp;lt;# outstanding splits&amp;gt;]&amp;gt;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   *          [-D &amp;lt;conf.param=value&amp;gt;]<a name="line.279"></a>
-<span class="sourceLineNo">280</span>   * @throws IOException<a name="line.280"></a>
-<span class="sourceLineNo">281</span>   *           HBase IO problem<a name="line.281"></a>
-<span class="sourceLineNo">282</span>   * @throws InterruptedException<a name="line.282"></a>
-<span class="sourceLineNo">283</span>   *           user requested exit<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * @throws ParseException<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   *           problem parsing user input<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  @SuppressWarnings("static-access")<a name="line.287"></a>
-<span class="sourceLineNo">288</span>  public static void main(String[] args) throws IOException,<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      InterruptedException, ParseException {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    Configuration conf = HBaseConfiguration.create();<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    // parse user input<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    Options opt = new Options();<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    opt.addOption(OptionBuilder.withArgName("property=value").hasArg()<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        .withDescription("Override HBase Configuration Settings").create("D"));<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    opt.addOption(OptionBuilder.withArgName("region count").hasArg()<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        .withDescription(<a name="line.297"></a>
-<span class="sourceLineNo">298</span>            "Create a new table with a pre-split number of regions")<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        .create("c"));<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    opt.addOption(OptionBuilder.withArgName("family:family:...").hasArg()<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .withDescription(<a name="line.301"></a>
-<span class="sourceLineNo">302</span>            "Column Families to create with new table.  Required with -c")<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        .create("f"));<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    opt.addOption("h", false, "Print this usage help");<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    opt.addOption("r", false, "Perform a rolling split of an existing region");<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    opt.addOption(OptionBuilder.withArgName("count").hasArg().withDescription(<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        "Max outstanding splits that have unfinished major compactions")<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        .create("o"));<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    opt.addOption(null, "firstrow", true,<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        "First Row in Table for Split Algorithm");<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    opt.addOption(null, "lastrow", true,<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        "Last Row in Table for Split Algorithm");<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    opt.addOption(null, "risky", false,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        "Skip verification steps to complete quickly."<a name="line.314"></a>
-<span class="sourceLineNo">315</span>            + "STRONGLY DISCOURAGED for production systems.  ");<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    CommandLine cmd = new GnuParser().parse(opt, args);<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>    if (cmd.hasOption("D")) {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      for (String confOpt : cmd.getOptionValues("D")) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>        String[] kv = confOpt.split("=", 2);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>        if (kv.length == 2) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>          conf.set(kv[0], kv[1]);<a name="line.322"></a>
-<span class="sourceLineNo">323</span>          LOG.debug("-D configuration override: " + kv[0] + "=" + kv[1]);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>        } else {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>          throw new ParseException("-D option format invalid: " + confOpt);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>        }<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      }<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    }<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span>    if (cmd.hasOption("risky")) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      conf.setBoolean("split.verify", false);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>    boolean createTable = cmd.hasOption("c") &amp;&amp; cmd.hasOption("f");<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    boolean rollingSplit = cmd.hasOption("r");<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    boolean oneOperOnly = createTable ^ rollingSplit;<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>    if (2 != cmd.getArgList().size() || !oneOperOnly || cmd.hasOption("h")) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      new HelpFormatter().printHelp("RegionSplitter &lt;TABLE&gt; &lt;SPLITALGORITHM&gt;\n"+<a name="line.339"></a>
-<span class="sourceLineNo">340</span>          "SPLITALGORITHM is a java class name of a class implementing " +<a name="line.340"></a>
-<span class="sourceLineNo">341</span>          "SplitAlgorithm, or one of the special strings HexStringSplit " +<a name="line.341"></a>
-<span class="sourceLineNo">342</span>          "or UniformSplit, which are built-in split algorithms. " +<a name="line.342"></a>
-<span class="sourceLineNo">343</span>          "HexStringSplit treats keys as hexadecimal ASCII, and " +<a name="line.343"></a>
-<span class="sourceLineNo">344</span>          "UniformSplit treats keys as arbitrary bytes.", opt);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      return;<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    TableName tableName = TableName.valueOf(cmd.getArgs()[0]);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    String splitClass = cmd.getArgs()[1];<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    SplitAlgorithm splitAlgo = newSplitAlgoInstance(conf, splitClass);<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    if (cmd.hasOption("firstrow")) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      splitAlgo.setFirstRow(cmd.getOptionValue("firstrow"));<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    if (cmd.hasOption("lastrow")) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      splitAlgo.setLastRow(cmd.getOptionValue("lastrow"));<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    if (createTable) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      conf.set("split.count", cmd.getOptionValue("c"));<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      createPresplitTable(tableName, splitAlgo, cmd.getOptionValue("f").split(":"), conf);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span>    if (rollingSplit) {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      if (cmd.hasOption("o")) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        conf.set("split.outstanding", cmd.getOptionValue("o"));<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      rollingSplit(tableName, splitAlgo, conf);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>  static void createPresplitTable(TableName tableName, SplitAlgorithm splitAlgo,<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          String[] columnFamilies, Configuration conf)<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  throws IOException, InterruptedException {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    final int splitCount = conf.getInt("split.count", 0);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    Preconditions.checkArgument(splitCount &gt; 1, "Split count must be &gt; 1");<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>    Preconditions.checkArgument(columnFamilies.length &gt; 0,<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        "Must specify at least one column family. ");<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    LOG.debug("Creating table " + tableName + " with " + columnFamilies.length<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        + " column families.  Presplitting to " + splitCount + " regions");<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    for (String cf : columnFamilies) {<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      desc.addFamily(new HColumnDescriptor(Bytes.toBytes(cf)));<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    }<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    try (Connection connection = ConnectionFactory.createConnection(conf)) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      Admin admin = connection.getAdmin();<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      try {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        Preconditions.checkArgument(!admin.tableExists(tableName),<a name="line.389"></a>
-<span class="sourceLineNo">390</span>          "Table already exists: " + tableName);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        admin.createTable(desc, splitAlgo.split(splitCount));<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      } finally {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>        admin.close();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      }<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      LOG.debug("Table created!  Waiting for regions to show online in META...");<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      if (!conf.getBoolean("split.verify", true)) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        // NOTE: createTable is synchronous on the table, but not on the regions<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        int onlineRegions = 0;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>        while (onlineRegions &lt; splitCount) {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>          onlineRegions = MetaTableAccessor.getRegionCount(connection, tableName);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          LOG.debug(onlineRegions + " of " + splitCount + " regions online...");<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          if (onlineRegions &lt; splitCount) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            Thread.sleep(10 * 1000); // sleep<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        }<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      LOG.debug("Finished creating table with " + splitCount + " regions");<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
-<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>  /**<a name="line.411"></a>
-<span class="sourceLineNo">412</span>   * Alternative getCurrentNrHRS which is no longer available.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>   * @param connection<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   * @return Rough count of regionservers out on cluster.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>   * @throws IOException <a name="line.415"></a>
-<span class="sourceLineNo">416</span>   */<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private static int getRegionServerCount(final Connection connection) throws IOException {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    try (Admin admin = connection.getAdmin()) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      ClusterStatus status = admin.getClusterStatus();<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      Collection&lt;ServerName&gt; servers = status.getServers();<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      return servers == null || servers.isEmpty()? 0: servers.size();<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
-<span class="sourceLineNo">424</span><a name="line.424"></a>
-<span class="sourceLineNo">425</span>  private static byte [] readFile(final FileSystem fs, final Path path) throws IOException {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    FSDataInputStream tmpIn = fs.open(path);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    try {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      byte [] rawData = new byte[tmpIn.available()];<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      tmpIn.readFully(rawData);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      return rawData;<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    } finally {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      tmpIn.close();<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  static void rollingSplit(TableName tableName, SplitAlgorithm splitAlgo, Configuration conf)<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  throws IOException, InterruptedException {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    final int minOS = conf.getInt("split.outstanding", 2);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    try (Connection connection = ConnectionFactory.createConnection(conf)) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      // Max outstanding splits. default == 50% of servers<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      final int MAX_OUTSTANDING = Math.max(getRegionServerCount(connection) / 2, minOS);<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>      Path hbDir = FSUtils.getRootDir(conf);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      Path tableDir = FSUtils.getTableDir(hbDir, tableName);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      Path splitFile = new Path(tableDir, "_balancedSplit");<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      FileSystem fs = FileSystem.get(conf);<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>      // Get a list of daughter regions to create<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; tmpRegionSet = null;<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      try (Table table = connection.getTable(tableName)) {<a name="line.450"></a>
-<span class="sourceLineNo">451</span>        tmpRegionSet = getSplits(connection, tableName, splitAlgo);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      }<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; outstanding = Lists.newLinkedList();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      int splitCount = 0;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      final int origCount = tmpRegionSet.size();<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>      // all splits must compact &amp; we have 1 compact thread, so 2 split<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      // requests to the same RS can stall the outstanding split queue.<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      // To fix, group the regions into an RS pool and round-robin through it<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      LOG.debug("Bucketing regions by regionserver...");<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      TreeMap&lt;String, LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt;&gt; daughterRegions =<a name="line.461"></a>
-<span class="sourceLineNo">462</span>          Maps.newTreeMap();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      // Get a regionLocator.  Need it in below.<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      try (RegionLocator regionLocator = connection.getRegionLocator(tableName)) {<a name="line.464"></a>
-<span class="sourceLineNo">465</span>        for (Pair&lt;byte[], byte[]&gt; dr : tmpRegionSet) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>          String rsLocation = regionLocator.getRegionLocation(dr.getSecond()).getHostnamePort();<a name="line.466"></a>
-<span class="sourceLineNo">467</span>          if (!daughterRegions.containsKey(rsLocation)) {<a name="line.467"></a>
-<span class="sourceLineNo">468</span>            LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; entry = Lists.newLinkedList();<a name="line.468"></a>
-<span class="sourceLineNo">469</span>            daughterRegions.put(rsLocation, entry);<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          }<a name="line.470"></a>
-<span class="sourceLineNo">471</span>          daughterRegions.get(rsLocation).add(dr);<a name="line.471"></a>
-<span class="sourceLineNo">472</span>        }<a name="line.472"></a>
-<span class="sourceLineNo">473</span>        LOG.debug("Done with bucketing.  Split time!");<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        long startTime = System.currentTimeMillis();<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>        // Open the split file and modify it as splits finish<a name="line.476"></a>
-<span class="sourceLineNo">477</span>        byte[] rawData = readFile(fs, splitFile);<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>        FSDataOutputStream splitOut = fs.create(splitFile);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        try {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>          splitOut.write(rawData);<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>          try {<a name="line.483"></a>
-<span class="sourceLineNo">484</span>            // *** split code ***<a name="line.484"></a>
-<span class="sourceLineNo">485</span>            while (!daughterRegions.isEmpty()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>              LOG.debug(daughterRegions.size() + " RS have regions to splt.");<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>              // Get ServerName to region count mapping<a name="line.488"></a>
-<span class="sourceLineNo">489</span>              final TreeMap&lt;ServerName, Integer&gt; rsSizes = Maps.newTreeMap();<a name="line.489"></a>
-<span class="sourceLineNo">490</span>              List&lt;HRegionLocation&gt; hrls = regionLocator.getAllRegionLocations();<a name="line.490"></a>
-<span class="sourceLineNo">491</span>              for (HRegionLocation hrl: hrls) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>                ServerName sn = hrl.getServerName();<a name="line.492"></a>
-<span class="sourceLineNo">493</span>                if (rsSizes.containsKey(sn)) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>                  rsSizes.put(sn, rsSizes.get(sn) + 1);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>                } else {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>                  rsSizes.put(sn, 1);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>                }<a name="line.497"></a>
-<span class="sourceLineNo">498</span>              }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>              // Sort the ServerNames by the number of regions they have<a name="line.500"></a>
-<span class="sourceLineNo">501</span>              List&lt;String&gt; serversLeft = Lists.newArrayList(daughterRegions .keySet());<a name="line.501"></a>
-<span class="sourceLineNo">502</span>              Collections.sort(serversLeft, new Comparator&lt;String&gt;() {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>                public int compare(String o1, String o2) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>                  return rsSizes.get(o1).compareTo(rsSizes.get(o2));<a name="line.504"></a>
-<span class="sourceLineNo">505</span>                }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>              });<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>              // Round-robin through the ServerName list. Choose the lightest-loaded servers<a name="line.508"></a>
-<span class="sourceLineNo">509</span>              // first to keep the master from load-balancing regions as we split.<a name="line.509"></a>
-<span class="sourceLineNo">510</span>              for (String rsLoc : serversLeft) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>                Pair&lt;byte[], byte[]&gt; dr = null;<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>                // Find a region in the ServerName list that hasn't been moved<a name="line.513"></a>
-<span class="sourceLineNo">514</span>                LOG.debug("Finding a region on " + rsLoc);<a name="line.514"></a>
-<span class="sourceLineNo">515</span>                LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; regionList = daughterRegions.get(rsLoc);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>                while (!regionList.isEmpty()) {<a name="line.516"></a>
-<span class="sourceLineNo">517</span>                  dr = regionList.pop();<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>                  // get current region info<a name="line.519"></a>
-<span class="sourceLineNo">520</span>                  byte[] split = dr.getSecond();<a name="line.520"></a>
-<span class="sourceLineNo">521</span>                  HRegionLocation regionLoc = regionLocator.getRegionLocation(split);<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>                  // if this region moved locations<a name="line.523"></a>
-<span class="sourceLineNo">524</span>                  String newRs = regionLoc.getHostnamePort();<a name="line.524"></a>
-<span class="sourceLineNo">525</span>                  if (newRs.compareTo(rsLoc) != 0) {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>                    LOG.debug("Region with " + splitAlgo.rowToStr(split)<a name="line.526"></a>
-<span class="sourceLineNo">527</span>                        + " moved to " + newRs + ". Relocating...");<a name="line.527"></a>
-<span class="sourceLineNo">528</span>                    // relocate it, don't use it right now<a name="line.528"></a>
-<span class="sourceLineNo">529</span>                    if (!daughterRegions.containsKey(newRs)) {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>                      LinkedList&lt;Pair&lt;byte[], byte[]&gt;&gt; entry = Lists.newLinkedList();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>                      daughterRegions.put(newRs, entry);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>                    }<a name="line.532"></a>
-<span class="sourceLineNo">533</span>                    daughterRegions.get(newRs).add(dr);<a name="line.533"></a>
-<span class="sourceLineNo">534</span>                    dr = null;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>                    continue;<a name="line.535"></a>
-<span class="sourceLineNo">536</span>                  }<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span>                  // make sure this region wasn't already split<a name="line.538"></a>
-<span class="sourceLineNo">539</span>                  byte[] sk = regionLoc.getRegionInfo().getStartKey();<a name="line.539"></a>
-<span class="sourceLineNo">540</span>                  if (sk.length != 0) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>                    if (Bytes.equals(split, sk)) {<a name="line.541"></a>
-<span class="sourceLineNo">542</span>                      LOG.debug("Region already split on "<a name="line.542"></a>
-<span class="sourceLineNo">543</span>                          + splitAlgo.rowToStr(split) + ".  Skipping this region...");<a name="line.543"></a>
-<span class="sourceLineNo">544</span>                      ++splitCount;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>                      dr = null;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>                      continue;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>                    }<a name="line.547"></a>
-<span class="sourceLineNo">548</span>                    byte[] start = dr.getFirst();<a name="line.548"></a>
-<span class="sourceLineNo">549</span>                    Preconditions.checkArgument(Bytes.equals(start, sk), splitAlgo<a name="line.549"></a>
-<span class="sourceLineNo">550</span>                        .rowToStr(start) + " != " + splitAlgo.rowToStr(sk));<a name="line.550"></a>
-<span class="sourceLineNo">551</span>                  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>                  // passed all checks! found a good region<a name="line.553"></a>
-<span class="sourceLineNo">554</span>                  break;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>                }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>                if (regionList.isEmpty()) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>                  daughterRegions.remove(rsLoc);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>                }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>                if (dr == null)<a name="line.559"></a>
-<span class="sourceLineNo">560</span>                  continue;<a name="line.560"></a>
+<span class="sourceLineNo">269</span>   *<a name="line.269"></a>
+<span class="sourceLineNo">270</span>   * There are two SplitAlgorithms built into RegionSplitter, HexStringSplit<a name="line.270"></a>
+<span class="sourceLineNo">271</span>   * and UniformSplit. These are different strategies for choosing region<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   * boundaries. See their source code for details.<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   *<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   * @param args<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   *          Usage: RegionSplitter &amp;lt;TABLE&amp;gt; &amp;lt;SPLITALGORITHM&amp;gt;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   *          &amp;lt;-c &amp;lt;# regions&amp;gt; -f &amp;lt;family:family:...&amp;gt; | -r<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   *          [-o &amp;lt;# outstanding splits&amp;gt;]&amp;gt;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   *          [-D &amp;lt;conf.param=value&amp;gt;]<a name="line.278"></a>
+<span class="sourceLineNo">279</span>   * @throws IOException<a name="line.279"></a>
+<span class="sourceLineNo">280</span>   *           HBase IO problem<a name="line.280"></a>
+<span class="sourceLineNo">281</span>   * @throws InterruptedException<a name="line.281"></a>
+<span class="sourceLineNo">282</span>   *           user requested exit<a name="line.282"></a>
+<span class="sourceLineNo">283</span>   * @throws ParseException<a name="line.283"></a>
+<span class="sourceLineNo">284</span>   *           problem parsing user input<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  @SuppressWarnings("static-access")<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  public static void main(String[] args) throws IOException,<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      InterruptedException, ParseException {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    Configuration conf = HBaseConfiguration.create();<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>    // parse user input<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    Options opt = new Options();<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    opt.addOption(OptionBuilder.withArgName("property=value").hasArg()<a name="line.293"></a>
+<span class="sourceLineNo">294</span>        .withDescription("Override HBase Configuration Settings").create("D"));<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    opt.addOption(OptionBuilder.withArgName("region count").hasArg()<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        .withDescription(<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            "Create a new table with a pre-split number of regions")<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        .create("c"));<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    opt.addOption(OptionBuilder.withArgName("family:family:...").hasArg()<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        .withDescription(<a name="line.300"></a>
+<span class="sourceLineNo">301</span>            "Column Families to create with new table.  Required with -c")<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        .create("f"));<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    opt.addOption("h", false, "Print this usage help");<a name="line.303"></a>
+<span class="sourceLineNo">304</span>    opt.addOption("r", false, "Perform a rolling split of an existing region");<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    opt.addOption(OptionBuilder.withArgName("count").hasArg().withDescription(<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        "Max outstanding splits that have unfinished major compactions")<a name="line.306"></a>
+<span class="sourceLineNo">307</span>        .create("o"));<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    opt.addOption(null, "firstrow", true,<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        "First Row in Table for Split Algorithm");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    opt.addOption(null, "lastrow", true,<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        "Last Row in Table for Split Algorithm");<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    opt.addOption(null, "risky", false,<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        "Skip verification steps to complete quickly."<a name="line.313"></a>
+<span class="sourceLineNo">314</span>            + "STRONGLY DISCOURAGED for production systems.  ");<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    CommandLine cmd = new GnuParser().parse(opt, args);<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>    if (cmd.hasOption("D")) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      for (String confOpt : cmd.getOptionValues("D")) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        String[] kv = confOpt.split("=", 2);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        if (kv.length == 2) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          conf.set(kv[0], kv[1]);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>          LOG.debug("-D configuration override: " + kv[0] + "=" + kv[1]);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>        } else {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          throw new ParseException("-D option format invalid: " + confOpt);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>    if (cmd.hasOption("risky")) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      conf.setBoolean("split.verify", false);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>    boolean createTable = cmd.hasOption("c") &amp;&amp; cmd.hasOption("f");<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    boolean rollingSplit = cmd.hasOption("r");<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    boolean oneOperOnly = createTable ^ rollingSplit;<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>    if (2 != cmd.getArgList().size() || !oneOperOnly || cmd.hasOption("h")) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      new HelpFormatter().printHelp("RegionSplitter &lt;TABLE&gt; &lt;SPLITALGORITHM&gt;\n"+<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          "SPLITALGORITHM is a java class name of a class implementing " +<a name="line.339"></a>
+<span class="sourceLineNo">340</span>          "SplitAlgorithm, or one of the special strings HexStringSplit " +<a name="line.340"></a>
+<span class="sourceLineNo">341</span>          "or UniformSplit, which are built-in split algorithms. " +<a name="line.341"></a>
+<span class="sourceLineNo">342</span>          "HexStringSplit treats keys a

<TRUNCATED>

[25/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.BulkHFileVisitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.BulkHFileVisitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.BulkHFileVisitor.html
index 6d25806..55fa666 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.BulkHFileVisitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.BulkHFileVisitor.html
@@ -370,12 +370,12 @@
 <span class="sourceLineNo">362</span>   * @param regionLocator region locator<a name="line.362"></a>
 <span class="sourceLineNo">363</span>   * @param silence true to ignore unmatched column families<a name="line.363"></a>
 <span class="sourceLineNo">364</span>   * @param copyFile always copy hfiles if true<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * @return List of filenames which were not found<a name="line.365"></a>
+<span class="sourceLineNo">365</span>   * @return Map of LoadQueueItem to region<a name="line.365"></a>
 <span class="sourceLineNo">366</span>   * @throws TableNotFoundException if table does not yet exist<a name="line.366"></a>
 <span class="sourceLineNo">367</span>   */<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  public List&lt;String&gt; doBulkLoad(Map&lt;byte[], List&lt;Path&gt;&gt; map, final Admin admin, Table table,<a name="line.368"></a>
-<span class="sourceLineNo">369</span>          RegionLocator regionLocator, boolean silence, boolean copyFile)<a name="line.369"></a>
-<span class="sourceLineNo">370</span>              throws TableNotFoundException, IOException {<a name="line.370"></a>
+<span class="sourceLineNo">368</span>  public Map&lt;LoadQueueItem, ByteBuffer&gt; doBulkLoad(Map&lt;byte[], List&lt;Path&gt;&gt; map, final Admin admin,<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      Table table, RegionLocator regionLocator, boolean silence, boolean copyFile)<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          throws TableNotFoundException, IOException {<a name="line.370"></a>
 <span class="sourceLineNo">371</span>    if (!admin.isTableAvailable(regionLocator.getName())) {<a name="line.371"></a>
 <span class="sourceLineNo">372</span>      throw new TableNotFoundException("Table " + table.getName() + " is not currently available.");<a name="line.372"></a>
 <span class="sourceLineNo">373</span>    }<a name="line.373"></a>
@@ -457,8 +457,8 @@
 <span class="sourceLineNo">449</span>    }<a name="line.449"></a>
 <span class="sourceLineNo">450</span>  }<a name="line.450"></a>
 <span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  List&lt;String&gt; performBulkLoad(final Admin admin, Table table, RegionLocator regionLocator,<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      Deque&lt;LoadQueueItem&gt; queue, ExecutorService pool,<a name="line.453"></a>
+<span class="sourceLineNo">452</span>  Map&lt;LoadQueueItem, ByteBuffer&gt; performBulkLoad(final Admin admin, Table table,<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      RegionLocator regionLocator, Deque&lt;LoadQueueItem&gt; queue, ExecutorService pool,<a name="line.453"></a>
 <span class="sourceLineNo">454</span>      SecureBulkLoadClient secureClient, boolean copyFile) throws IOException {<a name="line.454"></a>
 <span class="sourceLineNo">455</span>    int count = 0;<a name="line.455"></a>
 <span class="sourceLineNo">456</span><a name="line.456"></a>
@@ -472,802 +472,815 @@
 <span class="sourceLineNo">464</span>    // fs is the source filesystem<a name="line.464"></a>
 <span class="sourceLineNo">465</span>    fsDelegationToken.acquireDelegationToken(fs);<a name="line.465"></a>
 <span class="sourceLineNo">466</span>    bulkToken = secureClient.prepareBulkLoad(admin.getConnection());<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; pair = null;<a name="line.467"></a>
+<span class="sourceLineNo">467</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; pair = null;<a name="line.467"></a>
 <span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // Assumes that region splits can happen while this occurs.<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    while (!queue.isEmpty()) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      // need to reload split keys each iteration.<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys = regionLocator.getStartEndKeys();<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (count != 0) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        LOG.info("Split occured while grouping HFiles, retry attempt " +<a name="line.474"></a>
-<span class="sourceLineNo">475</span>            + count + " with " + queue.size() + " files remaining to group or split");<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>      int maxRetries = getConf().getInt(HConstants.BULKLOAD_MAX_RETRIES_NUMBER, 10);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      maxRetries = Math.max(maxRetries, startEndKeys.getFirst().length + 1);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      if (maxRetries != 0 &amp;&amp; count &gt;= maxRetries) {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        throw new IOException("Retry attempted " + count +<a name="line.481"></a>
-<span class="sourceLineNo">482</span>            " times without completing, bailing out");<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      }<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      count++;<a name="line.484"></a>
-<span class="sourceLineNo">485</span><a name="line.485"></a>
-<span class="sourceLineNo">486</span>      // Using ByteBuffer for byte[] equality semantics<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      pair = groupOrSplitPhase(table, pool, queue, startEndKeys);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = pair.getFirst();<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span>      if (!checkHFilesCountPerRegionPerFamily(regionGroups)) {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // Error is logged inside checkHFilesCountPerRegionPerFamily.<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        throw new IOException("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            + " hfiles to one family of one region");<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>      bulkLoadPhase(table, admin.getConnection(), pool, queue, regionGroups, copyFile);<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>      // NOTE: The next iteration's split / group could happen in parallel to<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      // atomic bulkloads assuming that there are splits and no merges, and<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      // that we can atomically pull out the groups we want to retry.<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>    if (!queue.isEmpty()) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      throw new RuntimeException("Bulk load aborted with some files not yet loaded."<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        + "Please check log for more details.");<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    if (pair == null) return null;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    return pair.getSecond();<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  }<a name="line.509"></a>
-<span class="sourceLineNo">510</span><a name="line.510"></a>
-<span class="sourceLineNo">511</span>  /**<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.513"></a>
-<span class="sourceLineNo">514</span>   * families in it.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   * @param table table to which hfiles should be loaded<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * @param queue queue which needs to be loaded into the table<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @throws IOException If any I/O or network error occurred<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   */<a name="line.520"></a>
-<span class="sourceLineNo">521</span>  public void prepareHFileQueue(Path hfilesDir, Table table, Deque&lt;LoadQueueItem&gt; queue,<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      boolean validateHFile) throws IOException {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    prepareHFileQueue(hfilesDir, table, queue, validateHFile, false);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>  /**<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.527"></a>
-<span class="sourceLineNo">528</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.528"></a>
-<span class="sourceLineNo">529</span>   * families in it.<a name="line.529"></a>
-<span class="sourceLineNo">530</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.530"></a>
-<span class="sourceLineNo">531</span>   * @param table table to which hfiles should be loaded<a name="line.531"></a>
-<span class="sourceLineNo">532</span>   * @param queue queue which needs to be loaded into the table<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @param silence  true to ignore unmatched column families<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * @throws IOException If any I/O or network error occurred<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   */<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  public void prepareHFileQueue(Path hfilesDir, Table table,<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      Deque&lt;LoadQueueItem&gt; queue, boolean validateHFile, boolean silence) throws IOException {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    discoverLoadQueue(queue, hfilesDir, validateHFile);<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>  /**<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.545"></a>
-<span class="sourceLineNo">546</span>   * families in it.<a name="line.546"></a>
-<span class="sourceLineNo">547</span>   * @param map map of family to List of hfiles<a name="line.547"></a>
-<span class="sourceLineNo">548</span>   * @param table table to which hfiles should be loaded<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * @param queue queue which needs to be loaded into the table<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * @param silence  true to ignore unmatched column families<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @throws IOException If any I/O or network error occurred<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public void prepareHFileQueue(Map&lt;byte[], List&lt;Path&gt;&gt; map, Table table,<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      Deque&lt;LoadQueueItem&gt; queue, boolean silence) throws IOException {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    populateLoadQueue(queue, map);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.556"></a>
-<span class="sourceLineNo">557</span>  }<a name="line.557"></a>
-<span class="sourceLineNo">558</span><a name="line.558"></a>
-<span class="sourceLineNo">559</span>  // Initialize a thread pool<a name="line.559"></a>
-<span class="sourceLineNo">560</span>  private ExecutorService createExecutorService() {<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    ThreadFactoryBuilder builder = new ThreadFactoryBuilder();<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    builder.setNameFormat("LoadIncrementalHFiles-%1$d");<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    ExecutorService pool = new ThreadPoolExecutor(nrThreads, nrThreads, 60, TimeUnit.SECONDS,<a name="line.563"></a>
-<span class="sourceLineNo">564</span>        new LinkedBlockingQueue&lt;Runnable&gt;(), builder.build());<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    ((ThreadPoolExecutor) pool).allowCoreThreadTimeOut(true);<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    return pool;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>  /**<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   * Checks whether there is any invalid family name in HFiles to be bulk loaded.<a name="line.570"></a>
-<span class="sourceLineNo">571</span>   */<a name="line.571"></a>
-<span class="sourceLineNo">572</span>  private void validateFamiliesInHFiles(Table table, Deque&lt;LoadQueueItem&gt; queue, boolean silence)<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      throws IOException {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    Collection&lt;HColumnDescriptor&gt; families = table.getTableDescriptor().getFamilies();<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    List&lt;String&gt; familyNames = new ArrayList&lt;&gt;(families.size());<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    for (HColumnDescriptor family : families) {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      familyNames.add(family.getNameAsString());<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    }<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    Iterator&lt;LoadQueueItem&gt; queueIter = queue.iterator();<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    while (queueIter.hasNext()) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      LoadQueueItem lqi = queueIter.next();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      String familyNameInHFile = Bytes.toString(lqi.family);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      if (!familyNames.contains(familyNameInHFile)) {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        unmatchedFamilies.add(familyNameInHFile);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      }<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    if (unmatchedFamilies.size() &gt; 0) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      String msg =<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          "Unmatched family names found: unmatched family names in HFiles to be bulkloaded: "<a name="line.589"></a>
-<span class="sourceLineNo">590</span>              + unmatchedFamilies + "; valid family names of table " + table.getName() + " are: "<a name="line.590"></a>
-<span class="sourceLineNo">591</span>              + familyNames;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      LOG.error(msg);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      if (!silence) throw new IOException(msg);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>  /**<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * &lt;ol&gt;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * &lt;/li&gt;<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   * &lt;/ol&gt;<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   * @param table Table to which these hfiles should be loaded to<a name="line.604"></a>
-<span class="sourceLineNo">605</span>   * @param conn Connection to use<a name="line.605"></a>
-<span class="sourceLineNo">606</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.606"></a>
-<span class="sourceLineNo">607</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    loadHFileQueue(table, conn, queue, startEndKeys, false);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>  }<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>  /**<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   * &lt;ol&gt;<a name="line.616"></a>
-<span class="sourceLineNo">617</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.617"></a>
-<span class="sourceLineNo">618</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.618"></a>
-<span class="sourceLineNo">619</span>   * &lt;/li&gt;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>   * &lt;/ol&gt;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>   * @param table Table to which these hfiles should be loaded to<a name="line.621"></a>
-<span class="sourceLineNo">622</span>   * @param conn Connection to use<a name="line.622"></a>
-<span class="sourceLineNo">623</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.624"></a>
-<span class="sourceLineNo">625</span>   */<a name="line.625"></a>
-<span class="sourceLineNo">626</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys, boolean copyFile) throws IOException {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    ExecutorService pool = null;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    try {<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      pool = createExecutorService();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups =<a name="line.631"></a>
-<span class="sourceLineNo">632</span>          groupOrSplitPhase(table, pool, queue, startEndKeys).getFirst();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      bulkLoadPhase(table, conn, pool, queue, regionGroups, copyFile);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    } finally {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      if (pool != null) {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>        pool.shutdown();<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      }<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    }<a name="line.638"></a>
-<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
-<span class="sourceLineNo">640</span><a name="line.640"></a>
-<span class="sourceLineNo">641</span>  /**<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * This takes the LQI's grouped by likely regions and attempts to bulk load<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * them.  Any failures are re-queued for another pass with the<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * groupOrSplitPhase.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   */<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  protected void bulkLoadPhase(final Table table, final Connection conn,<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, boolean copyFile) throws IOException {<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    // atomically bulk load the groups.<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    Set&lt;Future&lt;List&lt;LoadQueueItem&gt;&gt;&gt; loadingFutures = new HashSet&lt;&gt;();<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    for (Entry&lt;ByteBuffer, ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()){<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      final byte[] first = e.getKey().array();<a name="line.652"></a>
-<span class="sourceLineNo">653</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.653"></a>
-<span class="sourceLineNo">654</span><a name="line.654"></a>
-<span class="sourceLineNo">655</span>      final Callable&lt;List&lt;LoadQueueItem&gt;&gt; call = new Callable&lt;List&lt;LoadQueueItem&gt;&gt;() {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>        @Override<a name="line.656"></a>
-<span class="sourceLineNo">657</span>        public List&lt;LoadQueueItem&gt; call() throws Exception {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>          List&lt;LoadQueueItem&gt; toRetry =<a name="line.658"></a>
-<span class="sourceLineNo">659</span>              tryAtomicRegionLoad(conn, table.getName(), first, lqis, copyFile);<a name="line.659"></a>
-<span class="sourceLineNo">660</span>          return toRetry;<a name="line.660"></a>
-<span class="sourceLineNo">661</span>        }<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      };<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      loadingFutures.add(pool.submit(call));<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span><a name="line.665"></a>
-<span class="sourceLineNo">666</span>    // get all the results.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    for (Future&lt;List&lt;LoadQueueItem&gt;&gt; future : loadingFutures) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      try {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        List&lt;LoadQueueItem&gt; toRetry = future.get();<a name="line.669"></a>
-<span class="sourceLineNo">670</span><a name="line.670"></a>
-<span class="sourceLineNo">671</span>        // LQIs that are requeued to be regrouped.<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        queue.addAll(toRetry);<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>      } catch (ExecutionException e1) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        Throwable t = e1.getCause();<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        if (t instanceof IOException) {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          // At this point something unrecoverable has happened.<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          // TODO Implement bulk load recovery<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          throw new IOException("BulkLoad encountered an unrecoverable problem", t);<a name="line.679"></a>
-<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        LOG.error("Unexpected execution exception during bulk load", e1);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        throw new IllegalStateException(t);<a name="line.682"></a>
-<span class="sourceLineNo">683</span>      } catch (InterruptedException e1) {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>        LOG.error("Unexpected interrupted exception during bulk load", e1);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>      }<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    }<a name="line.687"></a>
-<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
-<span class="sourceLineNo">689</span><a name="line.689"></a>
-<span class="sourceLineNo">690</span>  private boolean checkHFilesCountPerRegionPerFamily(<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    for (Entry&lt;ByteBuffer,<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()) {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      HashMap&lt;byte[], MutableInt&gt; filesMap = new HashMap&lt;&gt;();<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      for (LoadQueueItem lqi: lqis) {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        MutableInt count = filesMap.get(lqi.family);<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        if (count == null) {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>          count = new MutableInt();<a name="line.699"></a>
-<span class="sourceLineNo">700</span>          filesMap.put(lqi.family, count);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        count.increment();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>        if (count.intValue() &gt; maxFilesPerRegionPerFamily) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>          LOG.error("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.704"></a>
-<span class="sourceLineNo">705</span>            + " hfiles to family " + Bytes.toStringBinary(lqi.family)<a name="line.705"></a>
-<span class="sourceLineNo">706</span>            + " of region with start key "<a name="line.706"></a>
-<span class="sourceLineNo">707</span>            + Bytes.toStringBinary(e.getKey()));<a name="line.707"></a>
-<span class="sourceLineNo">708</span>          return false;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        }<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    return true;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  }<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>  /**<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * @param table the table to load into<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * @param pool the ExecutorService<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   * @param queue the queue for LoadQueueItem<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   * @param startEndKeys start and end keys<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * @return A map that groups LQI by likely bulk load region targets and List of missing hfiles.<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   */<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  private Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; groupOrSplitPhase(<a name="line.722"></a>
-<span class="sourceLineNo">723</span>      final Table table, ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    // &lt;region start key, LQI&gt; need synchronized only within this scope of this<a name="line.725"></a>
-<span class="sourceLineNo">726</span>    // phase because of the puts that happen in futures.<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    Multimap&lt;ByteBuffer, LoadQueueItem&gt; rgs = HashMultimap.create();<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = Multimaps.synchronizedMultimap(rgs);<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    List&lt;String&gt; missingHFiles = new ArrayList&lt;&gt;();<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; pair = new Pair&lt;&gt;(regionGroups,<a name="line.730"></a>
-<span class="sourceLineNo">731</span>        missingHFiles);<a name="line.731"></a>
-<span class="sourceLineNo">732</span><a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // drain LQIs and figure out bulk load groups<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    Set&lt;Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;&gt; splittingFutures = new HashSet&lt;&gt;();<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    while (!queue.isEmpty()) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      final LoadQueueItem item = queue.remove();<a name="line.736"></a>
-<span class="sourceLineNo">737</span><a name="line.737"></a>
-<span class="sourceLineNo">738</span>      final Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; call =<a name="line.738"></a>
-<span class="sourceLineNo">739</span>          new Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;() {<a name="line.739"></a>
-<span class="sourceLineNo">740</span>        @Override<a name="line.740"></a>
-<span class="sourceLineNo">741</span>        public Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; call() throws Exception {<a name="line.741"></a>
-<span class="sourceLineNo">742</span>          Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = groupOrSplit(regionGroups, item, table,<a name="line.742"></a>
-<span class="sourceLineNo">743</span>              startEndKeys);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>          return splits;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>        }<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      };<a name="line.746"></a>
-<span class="sourceLineNo">747</span>      splittingFutures.add(pool.submit(call));<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    }<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    // get all the results.  All grouping and splitting must finish before<a name="line.749"></a>
-<span class="sourceLineNo">750</span>    // we can attempt the atomic loads.<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    for (Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; lqis : splittingFutures) {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>      try {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>        Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = lqis.get();<a name="line.753"></a>
-<span class="sourceLineNo">754</span>        if (splits != null) {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>          if (splits.getFirst() != null) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>            queue.addAll(splits.getFirst());<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          } else {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>            missingHFiles.add(splits.getSecond());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
-<span class="sourceLineNo">761</span>      } catch (ExecutionException e1) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>        Throwable t = e1.getCause();<a name="line.762"></a>
-<span class="sourceLineNo">763</span>        if (t instanceof IOException) {<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          LOG.error("IOException during splitting", e1);<a name="line.764"></a>
-<span class="sourceLineNo">765</span>          throw (IOException)t; // would have been thrown if not parallelized,<a name="line.765"></a>
-<span class="sourceLineNo">766</span>        }<a name="line.766"></a>
-<span class="sourceLineNo">767</span>        LOG.error("Unexpected execution exception during splitting", e1);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>        throw new IllegalStateException(t);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      } catch (InterruptedException e1) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>        LOG.error("Unexpected interrupted exception during splitting", e1);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    }<a name="line.773"></a>
-<span class="sourceLineNo">774</span>    return pair;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>  }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>  // unique file name for the table<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  private String getUniqueName() {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    return UUID.randomUUID().toString().replaceAll("-", "");<a name="line.779"></a>
-<span class="sourceLineNo">780</span>  }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>  protected List&lt;LoadQueueItem&gt; splitStoreFile(final LoadQueueItem item,<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      final Table table, byte[] startKey,<a name="line.783"></a>
-<span class="sourceLineNo">784</span>      byte[] splitKey) throws IOException {<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    final Path hfilePath = item.hfilePath;<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>    Path tmpDir = item.hfilePath.getParent();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    if (!tmpDir.getName().equals(TMP_DIR)) {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      tmpDir = new Path(tmpDir, TMP_DIR);<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    }<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>    LOG.info("HFile at " + hfilePath + " no longer fits inside a single " +<a name="line.792"></a>
-<span class="sourceLineNo">793</span>      "region. Splitting...");<a name="line.793"></a>
-<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>    String uniqueName = getUniqueName();<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    HColumnDescriptor familyDesc = table.getTableDescriptor().getFamily(item.family);<a name="line.796"></a>
-<span class="sourceLineNo">797</span><a name="line.797"></a>
-<span class="sourceLineNo">798</span>    Path botOut = new Path(tmpDir, uniqueName + ".bottom");<a name="line.798"></a>
-<span class="sourceLineNo">799</span>    Path topOut = new Path(tmpDir, uniqueName + ".top");<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    splitStoreFile(getConf(), hfilePath, familyDesc, splitKey, botOut, topOut);<a name="line.800"></a>
-<span class="sourceLineNo">801</span><a name="line.801"></a>
-<span class="sourceLineNo">802</span>    FileSystem fs = tmpDir.getFileSystem(getConf());<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    fs.setPermission(tmpDir, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    fs.setPermission(botOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    fs.setPermission(topOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.805"></a>
+<span class="sourceLineNo">469</span>    Map&lt;LoadQueueItem, ByteBuffer&gt; item2RegionMap = new HashMap&lt;&gt;();<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    // Assumes that region splits can happen while this occurs.<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    while (!queue.isEmpty()) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      // need to reload split keys each iteration.<a name="line.472"></a>
+<span class="sourceLineNo">473</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys = regionLocator.getStartEndKeys();<a name="line.473"></a>
+<span class="sourceLineNo">474</span>      if (count != 0) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        LOG.info("Split occured while grouping HFiles, retry attempt " +<a name="line.475"></a>
+<span class="sourceLineNo">476</span>            + count + " with " + queue.size() + " files remaining to group or split");<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      }<a name="line.477"></a>
+<span class="sourceLineNo">478</span><a name="line.478"></a>
+<span class="sourceLineNo">479</span>      int maxRetries = getConf().getInt(HConstants.BULKLOAD_MAX_RETRIES_NUMBER, 10);<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      maxRetries = Math.max(maxRetries, startEndKeys.getFirst().length + 1);<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      if (maxRetries != 0 &amp;&amp; count &gt;= maxRetries) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        throw new IOException("Retry attempted " + count +<a name="line.482"></a>
+<span class="sourceLineNo">483</span>            " times without completing, bailing out");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      count++;<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>      // Using ByteBuffer for byte[] equality semantics<a name="line.487"></a>
+<span class="sourceLineNo">488</span>      pair = groupOrSplitPhase(table, pool, queue, startEndKeys);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = pair.getFirst();<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>      if (!checkHFilesCountPerRegionPerFamily(regionGroups)) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        // Error is logged inside checkHFilesCountPerRegionPerFamily.<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        throw new IOException("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.493"></a>
+<span class="sourceLineNo">494</span>            + " hfiles to one family of one region");<a name="line.494"></a>
+<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
+<span class="sourceLineNo">496</span><a name="line.496"></a>
+<span class="sourceLineNo">497</span>      bulkLoadPhase(table, admin.getConnection(), pool, queue, regionGroups, copyFile,<a name="line.497"></a>
+<span class="sourceLineNo">498</span>          item2RegionMap);<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>      // NOTE: The next iteration's split / group could happen in parallel to<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      // atomic bulkloads assuming that there are splits and no merges, and<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      // that we can atomically pull out the groups we want to retry.<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    }<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span>    if (!queue.isEmpty()) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      throw new RuntimeException("Bulk load aborted with some files not yet loaded."<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        + "Please check log for more details.");<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    return item2RegionMap;<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>  /**<a name="line.512"></a>
+<span class="sourceLineNo">513</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.513"></a>
+<span class="sourceLineNo">514</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.514"></a>
+<span class="sourceLineNo">515</span>   * families in it.<a name="line.515"></a>
+<span class="sourceLineNo">516</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.516"></a>
+<span class="sourceLineNo">517</span>   * @param table table to which hfiles should be loaded<a name="line.517"></a>
+<span class="sourceLineNo">518</span>   * @param queue queue which needs to be loaded into the table<a name="line.518"></a>
+<span class="sourceLineNo">519</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.519"></a>
+<span class="sourceLineNo">520</span>   * @throws IOException If any I/O or network error occurred<a name="line.520"></a>
+<span class="sourceLineNo">521</span>   */<a name="line.521"></a>
+<span class="sourceLineNo">522</span>  public void prepareHFileQueue(Path hfilesDir, Table table, Deque&lt;LoadQueueItem&gt; queue,<a name="line.522"></a>
+<span class="sourceLineNo">523</span>      boolean validateHFile) throws IOException {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>    prepareHFileQueue(hfilesDir, table, queue, validateHFile, false);<a name="line.524"></a>
+<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>  /**<a name="line.527"></a>
+<span class="sourceLineNo">528</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.528"></a>
+<span class="sourceLineNo">529</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.529"></a>
+<span class="sourceLineNo">530</span>   * families in it.<a name="line.530"></a>
+<span class="sourceLineNo">531</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.531"></a>
+<span class="sourceLineNo">532</span>   * @param table table to which hfiles should be loaded<a name="line.532"></a>
+<span class="sourceLineNo">533</span>   * @param queue queue which needs to be loaded into the table<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.534"></a>
+<span class="sourceLineNo">535</span>   * @param silence  true to ignore unmatched column families<a name="line.535"></a>
+<span class="sourceLineNo">536</span>   * @throws IOException If any I/O or network error occurred<a name="line.536"></a>
+<span class="sourceLineNo">537</span>   */<a name="line.537"></a>
+<span class="sourceLineNo">538</span>  public void prepareHFileQueue(Path hfilesDir, Table table,<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      Deque&lt;LoadQueueItem&gt; queue, boolean validateHFile, boolean silence) throws IOException {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    discoverLoadQueue(queue, hfilesDir, validateHFile);<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  /**<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.546"></a>
+<span class="sourceLineNo">547</span>   * families in it.<a name="line.547"></a>
+<span class="sourceLineNo">548</span>   * @param map map of family to List of hfiles<a name="line.548"></a>
+<span class="sourceLineNo">549</span>   * @param table table to which hfiles should be loaded<a name="line.549"></a>
+<span class="sourceLineNo">550</span>   * @param queue queue which needs to be loaded into the table<a name="line.550"></a>
+<span class="sourceLineNo">551</span>   * @param silence  true to ignore unmatched column families<a name="line.551"></a>
+<span class="sourceLineNo">552</span>   * @throws IOException If any I/O or network error occurred<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   */<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  public void prepareHFileQueue(Map&lt;byte[], List&lt;Path&gt;&gt; map, Table table,<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      Deque&lt;LoadQueueItem&gt; queue, boolean silence) throws IOException {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    populateLoadQueue(queue, map);<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>  }<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>  // Initialize a thread pool<a name="line.560"></a>
+<span class="sourceLineNo">561</span>  private ExecutorService createExecutorService() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    ThreadFactoryBuilder builder = new ThreadFactoryBuilder();<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    builder.setNameFormat("LoadIncrementalHFiles-%1$d");<a name="line.563"></a>
+<span class="sourceLineNo">564</span>    ExecutorService pool = new ThreadPoolExecutor(nrThreads, nrThreads, 60, TimeUnit.SECONDS,<a name="line.564"></a>
+<span class="sourceLineNo">565</span>        new LinkedBlockingQueue&lt;Runnable&gt;(), builder.build());<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    ((ThreadPoolExecutor) pool).allowCoreThreadTimeOut(true);<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    return pool;<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  }<a name="line.568"></a>
+<span class="sourceLineNo">569</span><a name="line.569"></a>
+<span class="sourceLineNo">570</span>  /**<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   * Checks whether there is any invalid family name in HFiles to be bulk loaded.<a name="line.571"></a>
+<span class="sourceLineNo">572</span>   */<a name="line.572"></a>
+<span class="sourceLineNo">573</span>  private void validateFamiliesInHFiles(Table table, Deque&lt;LoadQueueItem&gt; queue, boolean silence)<a name="line.573"></a>
+<span class="sourceLineNo">574</span>      throws IOException {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    Collection&lt;HColumnDescriptor&gt; families = table.getTableDescriptor().getFamilies();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    List&lt;String&gt; familyNames = new ArrayList&lt;&gt;(families.size());<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    for (HColumnDescriptor family : families) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      familyNames.add(family.getNameAsString());<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    Iterator&lt;LoadQueueItem&gt; queueIter = queue.iterator();<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    while (queueIter.hasNext()) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      LoadQueueItem lqi = queueIter.next();<a name="line.582"></a>
+<span class="sourceLineNo">583</span>      String familyNameInHFile = Bytes.toString(lqi.family);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>      if (!familyNames.contains(familyNameInHFile)) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        unmatchedFamilies.add(familyNameInHFile);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      }<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    }<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    if (unmatchedFamilies.size() &gt; 0) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      String msg =<a name="line.589"></a>
+<span class="sourceLineNo">590</span>          "Unmatched family names found: unmatched family names in HFiles to be bulkloaded: "<a name="line.590"></a>
+<span class="sourceLineNo">591</span>              + unmatchedFamilies + "; valid family names of table " + table.getName() + " are: "<a name="line.591"></a>
+<span class="sourceLineNo">592</span>              + familyNames;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>      LOG.error(msg);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      if (!silence) throw new IOException(msg);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    }<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  }<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>  /**<a name="line.598"></a>
+<span class="sourceLineNo">599</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.599"></a>
+<span class="sourceLineNo">600</span>   * &lt;ol&gt;<a name="line.600"></a>
+<span class="sourceLineNo">601</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.602"></a>
+<span class="sourceLineNo">603</span>   * &lt;/li&gt;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>   * &lt;/ol&gt;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>   * @param table Table to which these hfiles should be loaded to<a name="line.605"></a>
+<span class="sourceLineNo">606</span>   * @param conn Connection to use<a name="line.606"></a>
+<span class="sourceLineNo">607</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.607"></a>
+<span class="sourceLineNo">608</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.608"></a>
+<span class="sourceLineNo">609</span>   */<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.610"></a>
+<span class="sourceLineNo">611</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    loadHFileQueue(table, conn, queue, startEndKeys, false);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>  }<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>  /**<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.616"></a>
+<span class="sourceLineNo">617</span>   * &lt;ol&gt;<a name="line.617"></a>
+<span class="sourceLineNo">618</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.619"></a>
+<span class="sourceLineNo">620</span>   * &lt;/li&gt;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>   * &lt;/ol&gt;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * @param table Table to which these hfiles should be loaded to<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * @param conn Connection to use<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.625"></a>
+<span class="sourceLineNo">626</span>   */<a name="line.626"></a>
+<span class="sourceLineNo">627</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys, boolean copyFile) throws IOException {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    ExecutorService pool = null;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>    try {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      pool = createExecutorService();<a name="line.631"></a>
+<span class="sourceLineNo">632</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups =<a name="line.632"></a>
+<span class="sourceLineNo">633</span>          groupOrSplitPhase(table, pool, queue, startEndKeys).getFirst();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      bulkLoadPhase(table, conn, pool, queue, regionGroups, copyFile, null);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    } finally {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      if (pool != null) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        pool.shutdown();<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
+<span class="sourceLineNo">640</span>  }<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
+<span class="sourceLineNo">643</span>   * This takes the LQI's grouped by likely regions and attempts to bulk load<a name="line.643"></a>
+<span class="sourceLineNo">644</span>   * them.  Any failures are re-queued for another pass with the<a name="line.644"></a>
+<span class="sourceLineNo">645</span>   * groupOrSplitPhase.<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   */<a name="line.646"></a>
+<span class="sourceLineNo">647</span>  protected void bulkLoadPhase(final Table table, final Connection conn,<a name="line.647"></a>
+<span class="sourceLineNo">648</span>      ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.648"></a>
+<span class="sourceLineNo">649</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, boolean copyFile,<a name="line.649"></a>
+<span class="sourceLineNo">650</span>      Map&lt;LoadQueueItem, ByteBuffer&gt; item2RegionMap) throws IOException {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>    // atomically bulk load the groups.<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    Set&lt;Future&lt;List&lt;LoadQueueItem&gt;&gt;&gt; loadingFutures = new HashSet&lt;&gt;();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    for (Entry&lt;ByteBuffer, ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()){<a name="line.653"></a>
+<span class="sourceLineNo">654</span>      final byte[] first = e.getKey().array();<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span>      final Callable&lt;List&lt;LoadQueueItem&gt;&gt; call = new Callable&lt;List&lt;LoadQueueItem&gt;&gt;() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>        @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>        public List&lt;LoadQueueItem&gt; call() throws Exception {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>          List&lt;LoadQueueItem&gt; toRetry =<a name="line.660"></a>
+<span class="sourceLineNo">661</span>              tryAtomicRegionLoad(conn, table.getName(), first, lqis, copyFile);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>          return toRetry;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      };<a name="line.664"></a>
+<span class="sourceLineNo">665</span>      if (item2RegionMap != null) {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>        for (LoadQueueItem lqi : lqis) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>          item2RegionMap.put(lqi, e.getKey());<a name="line.667"></a>
+<span class="sourceLineNo">668</span>        }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      }<a name="line.669"></a>
+<span class="sourceLineNo">670</span>      loadingFutures.add(pool.submit(call));<a name="line.670"></a>
+<span class="sourceLineNo">671</span>    }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>    // get all the results.<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    for (Future&lt;List&lt;LoadQueueItem&gt;&gt; future : loadingFutures) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      try {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        List&lt;LoadQueueItem&gt; toRetry = future.get();<a name="line.676"></a>
+<span class="sourceLineNo">677</span><a name="line.677"></a>
+<span class="sourceLineNo">678</span>        if (item2RegionMap != null) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>          for (LoadQueueItem lqi : toRetry) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>            item2RegionMap.remove(lqi);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>          }<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        // LQIs that are requeued to be regrouped.<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        queue.addAll(toRetry);<a name="line.684"></a>
+<span class="sourceLineNo">685</span><a name="line.685"></a>
+<span class="sourceLineNo">686</span>      } catch (ExecutionException e1) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        Throwable t = e1.getCause();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>        if (t instanceof IOException) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>          // At this point something unrecoverable has happened.<a name="line.689"></a>
+<span class="sourceLineNo">690</span>          // TODO Implement bulk load recovery<a name="line.690"></a>
+<span class="sourceLineNo">691</span>          throw new IOException("BulkLoad encountered an unrecoverable problem", t);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        LOG.error("Unexpected execution exception during bulk load", e1);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        throw new IllegalStateException(t);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>      } catch (InterruptedException e1) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        LOG.error("Unexpected interrupted exception during bulk load", e1);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    }<a name="line.699"></a>
+<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>  private boolean checkHFilesCountPerRegionPerFamily(<a name="line.702"></a>
+<span class="sourceLineNo">703</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    for (Entry&lt;ByteBuffer,<a name="line.704"></a>
+<span class="sourceLineNo">705</span>      ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      HashMap&lt;byte[], MutableInt&gt; filesMap = new HashMap&lt;&gt;();<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      for (LoadQueueItem lqi: lqis) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>        MutableInt count = filesMap.get(lqi.family);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        if (count == null) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>          count = new MutableInt();<a name="line.711"></a>
+<span class="sourceLineNo">712</span>          filesMap.put(lqi.family, count);<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        }<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        count.increment();<a name="line.714"></a>
+<span class="sourceLineNo">715</span>        if (count.intValue() &gt; maxFilesPerRegionPerFamily) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>          LOG.error("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.716"></a>
+<span class="sourceLineNo">717</span>            + " hfiles to family " + Bytes.toStringBinary(lqi.family)<a name="line.717"></a>
+<span class="sourceLineNo">718</span>            + " of region with start key "<a name="line.718"></a>
+<span class="sourceLineNo">719</span>            + Bytes.toStringBinary(e.getKey()));<a name="line.719"></a>
+<span class="sourceLineNo">720</span>          return false;<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>    }<a name="line.723"></a>
+<span class="sourceLineNo">724</span>    return true;<a name="line.724"></a>
+<span class="sourceLineNo">725</span>  }<a name="line.725"></a>
+<span class="sourceLineNo">726</span><a name="line.726"></a>
+<span class="sourceLineNo">727</span>  /**<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * @param table the table to load into<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   * @param pool the ExecutorService<a name="line.729"></a>
+<span class="sourceLineNo">730</span>   * @param queue the queue for LoadQueueItem<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   * @param startEndKeys start and end keys<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   * @return A map that groups LQI by likely bulk load region targets and Set of missing hfiles.<a name="line.732"></a>
+<span class="sourceLineNo">733</span>   */<a name="line.733"></a>
+<span class="sourceLineNo">734</span>  private Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; groupOrSplitPhase(<a name="line.734"></a>
+<span class="sourceLineNo">735</span>      final Table table, ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.735"></a>
+<span class="sourceLineNo">736</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    // &lt;region start key, LQI&gt; need synchronized only within this scope of this<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    // phase because of the puts that happen in futures.<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    Multimap&lt;ByteBuffer, LoadQueueItem&gt; rgs = HashMultimap.create();<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = Multimaps.synchronizedMultimap(rgs);<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    Set&lt;String&gt; missingHFiles = new HashSet&lt;&gt;();<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; pair = new Pair&lt;&gt;(regionGroups,<a name="line.742"></a>
+<span class="sourceLineNo">743</span>        missingHFiles);<a name="line.743"></a>
+<span class="sourceLineNo">744</span><a name="line.744"></a>
+<span class="sourceLineNo">745</span>    // drain LQIs and figure out bulk load groups<a name="line.745"></a>
+<span class="sourceLineNo">746</span>    Set&lt;Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;&gt; splittingFutures = new HashSet&lt;&gt;();<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    while (!queue.isEmpty()) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      final LoadQueueItem item = queue.remove();<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>      final Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; call =<a name="line.750"></a>
+<span class="sourceLineNo">751</span>          new Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;() {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        @Override<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; call() throws Exception {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>          Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = groupOrSplit(regionGroups, item, table,<a name="line.754"></a>
+<span class="sourceLineNo">755</span>              startEndKeys);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>          return splits;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        }<a name="line.757"></a>
+<span class="sourceLineNo">758</span>      };<a name="line.758"></a>
+<span class="sourceLineNo">759</span>      splittingFutures.add(pool.submit(call));<a name="line.759"></a>
+<span class="sourceLineNo">760</span>    }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    // get all the results.  All grouping and splitting must finish before<a name="line.761"></a>
+<span class="sourceLineNo">762</span>    // we can attempt the atomic loads.<a name="line.762"></a>
+<span class="sourceLineNo">763</span>    for (Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; lqis : splittingFutures) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>      try {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>        Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = lqis.get();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>        if (splits != null) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>          if (splits.getFirst() != null) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>            queue.addAll(splits.getFirst());<a name="line.768"></a>
+<span class="sourceLineNo">769</span>          } else {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>            missingHFiles.add(splits.getSecond());<a name="line.770"></a>
+<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>        }<a name="line.772"></a>
+<span class="sourceLineNo">773</span>      } catch (ExecutionException e1) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>        Throwable t = e1.getCause();<a name="line.774"></a>
+<span class="sourceLineNo">775</span>        if (t instanceof IOException) {<a name="line.775"></a>
+<span class="sourceLineNo">776</span>          LOG.error("IOException during splitting", e1);<a name="line.776"></a>
+<span class="sourceLineNo">777</span>          throw (IOException)t; // would have been thrown if not parallelized,<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        }<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        LOG.error("Unexpected execution exception during splitting", e1);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        throw new IllegalStateException(t);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>      } catch (InterruptedException e1) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        LOG.error("Unexpected interrupted exception during splitting", e1);<a name="line.782"></a>
+<span class="sourceLineNo">783</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.783"></a>
+<span class="sourceLineNo">784</span>      }<a name="line.784"></a>
+<span class="sourceLineNo">785</span>    }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>    return pair;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>  }<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>  // unique file name for the table<a name="line.789"></a>
+<span class="sourceLineNo">790</span>  private String getUniqueName() {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    return UUID.randomUUID().toString().replaceAll("-", "");<a name="line.791"></a>
+<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>  protected List&lt;LoadQueueItem&gt; splitStoreFile(final LoadQueueItem item,<a name="line.794"></a>
+<span class="sourceLineNo">795</span>      final Table table, byte[] startKey,<a name="line.795"></a>
+<span class="sourceLineNo">796</span>      byte[] splitKey) throws IOException {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>    final Path hfilePath = item.hfilePath;<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>    Path tmpDir = item.hfilePath.getParent();<a name="line.799"></a>
+<span class="sourceLineNo">800</span>    if (!tmpDir.getName().equals(TMP_DIR)) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>      tmpDir = new Path(tmpDir, TMP_DIR);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>    }<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>    LOG.info("HFile at " + hfilePath + " no longer fits inside a single " +<a name="line.804"></a>
+<span class="sourceLineNo">805</span>      "region. Splitting...");<a name="line.805"></a>
 <span class="sourceLineNo">806</span><a name="line.806"></a>
-<span class="sourceLineNo">807</span>    // Add these back at the *front* of the queue, so there's a lower<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    // chance that the region will just split again before we get there.<a name="line.808"></a>
-<span class="sourceLineNo">809</span>    List&lt;LoadQueueItem&gt; lqis = new ArrayList&lt;LoadQueueItem&gt;(2);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>    lqis.add(new LoadQueueItem(item.family, botOut));<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    lqis.add(new LoadQueueItem(item.family, topOut));<a name="line.811"></a>
-<span class="sourceLineNo">812</span><a name="line.812"></a>
-<span class="sourceLineNo">813</span>    // If the current item is already the result of previous splits,<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    // we don't need it anymore. Clean up to save space.<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    // It is not part of the original input files.<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    try {<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      tmpDir = item.hfilePath.getParent();<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      if (tmpDir.getName().equals(TMP_DIR)) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>        fs.delete(item.hfilePath, false);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>      }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    } catch (IOException e) {<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      LOG.warn("Unable to delete temporary split file " + item.hfilePath);<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>    LOG.info("Successfully split into new HFiles " + botOut + " and " + topOut);<a name="line.824"></a>
-<span class="sourceLineNo">825</span>    return lqis;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>  }<a name="line.826"></a>
-<span class="sourceLineNo">827</span><a name="line.827"></a>
-<span class="sourceLineNo">828</span>  /**<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * Attempt to assign the given load queue item into its target region group.<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   * If the hfile boundary no longer fits into a region, physically splits<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   * the hfile such that the new bottom half will fit and returns the list of<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * LQI's corresponding to the resultant hfiles.<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   *<a name="line.833"></a>
-<span class="sourceLineNo">834</span>   * protected for testing<a name="line.834"></a>
-<span class="sourceLineNo">835</span>   * @throws IOException if an IO failure is encountered<a name="line.835"></a>
-<span class="sourceLineNo">836</span>   */<a name="line.836"></a>
-<span class="sourceLineNo">837</span>  protected Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; groupOrSplit(<a name="line.837"></a>
-<span class="sourceLineNo">838</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, final LoadQueueItem item, final Table table,<a name="line.838"></a>
-<span class="sourceLineNo">839</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    final Path hfilePath = item.hfilePath;<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    // fs is the source filesystem<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    if (fs == null) {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      fs = hfilePath.getFileSystem(getConf());<a name="line.843"></a>
-<span class="sourceLineNo">844</span>    }<a name="line.844"></a>
-<span class="sourceLineNo">845</span>    HFile.Reader hfr = null;<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    try {<a name="line.846"></a>
-<span class="sourceLineNo">847</span>      hfr = HFile.createReader(fs, hfilePath,<a name="line.847"></a>
-<span class="sourceLineNo">848</span>          new CacheConfig(getConf()), getConf());<a name="line.848"></a>
-<span class="sourceLineNo">849</span>    } catch (FileNotFoundException fnfe) {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      LOG.debug("encountered", fnfe);<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      return new Pair&lt;&gt;(null, hfilePath.getName());<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    final byte[] first, last;<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    try {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      hfr.loadFileInfo();<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      first = hfr.getFirstRowKey();<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      last = hfr.getLastRowKey();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    }  finally {<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      hfr.close();<a name="line.859"></a>
-<span class="sourceLineNo">860</span>    }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span>    LOG.info("Trying to load hfile=" + hfilePath +<a name="line.862"></a>
-<span class="sourceLineNo">863</span>        " first=" + Bytes.toStringBinary(first) +<a name="line.863"></a>
-<span class="sourceLineNo">864</span>        " last="  + Bytes.toStringBinary(last));<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (first == null || last == null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      assert first == null &amp;&amp; last == null;<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      // TODO what if this is due to a bad HFile?<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      LOG.info("hfile " + hfilePath + " has no entries, skipping");<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return null;<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    if (Bytes.compareTo(first, last) &gt; 0) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      throw new IllegalArgumentException(<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      "Invalid range: " + Bytes.toStringBinary(first) +<a name="line.873"></a>
-<span class="sourceLineNo">874</span>      " &gt; " + Bytes.toStringBinary(last));<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    }<a name="line.875"></a>
-<span class="sourceLineNo">876</span>    int idx = Arrays.binarySearch(startEndKeys.getFirst(), first,<a name="line.876"></a>
-<span class="sourceLineNo">877</span>        Bytes.BYTES_COMPARATOR);<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    if (idx &lt; 0) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>      // not on boundary, returns -(insertion index).  Calculate region it<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      // would be in.<a name="line.880"></a>
-<span class="sourceLineNo">881</span>      idx = -(idx + 1) - 1;<a name="line.881"></a>
+<span class="sourceLineNo">807</span>    String uniqueName = getUniqueName();<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    HColumnDescriptor familyDesc = table.getTableDescriptor().getFamily(item.family);<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>    Path botOut = new Path(tmpDir, uniqueName + ".bottom");<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    Path topOut = new Path(tmpDir, uniqueName + ".top");<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    splitStoreFile(getConf(), hfilePath, familyDesc, splitKey, botOut, topOut);<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>    FileSystem fs = tmpDir.getFileSystem(getConf());<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    fs.setPermission(tmpDir, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    fs.setPermission(botOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.816"></a>
+<span class="sourceLineNo">817</span>    fs.setPermission(topOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.817"></a>
+<span class="sourceLineNo">818</span><a name="line.818"></a>
+<span class="sourceLineNo">819</span>    // Add these back at the *front* of the queue, so there's a lower<a name="line.819"></a>
+<span class="sourceLineNo">820</span>    // chance that the region will just split again before we get there.<a name="line.820"></a>
+<span class="sourceLineNo">821</span>    List&lt;LoadQueueItem&gt; lqis = new ArrayList&lt;LoadQueueItem&gt;(2);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>    lqis.add(new LoadQueueItem(item.family, botOut));<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    lqis.add(new LoadQueueItem(item.family, topOut));<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>    // If the current item is already the result of previous splits,<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    // we don't need it anymore. Clean up to save space.<a name="line.826"></a>
+<span class="sourceLineNo">827</span>    // It is not part of the original input files.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>    try {<a name="line.828"></a>
+<span class="sourceLineNo">829</span>      tmpDir = item.hfilePath.getParent();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>      if (tmpDir.getName().equals(TMP_DIR)) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        fs.delete(item.hfilePath, false);<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    } catch (IOException e) {<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      LOG.warn("Unable to delete temporary split file " + item.hfilePath);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    }<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    LOG.info("Successfully split into new HFiles " + botOut + " and " + topOut);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    return lqis;<a name="line.837"></a>
+<span class="sourceLineNo">838</span>  }<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>  /**<a name="line.840"></a>
+<span class="sourceLineNo">841</span>   * Attempt to assign the given load queue item into its target region group.<a name="line.841"></a>
+<span class="sourceLineNo">842</span>   * If the hfile boundary no longer fits into a region, physically splits<a name="line.842"></a>
+<span class="sourceLineNo">843</span>   * the hfile such that the new bottom half will fit and returns the list of<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * LQI's corresponding to the resultant hfiles.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   *<a name="line.845"></a>
+<span class="sourceLineNo">846</span>   * protected for testing<a name="line.846"></a>
+<span class="sourceLineNo">847</span>   * @throws IOException if an IO failure is encountered<a name="line.847"></a>
+<span class="sourceLineNo">848</span>   */<a name="line.848"></a>
+<span class="sourceLineNo">849</span>  protected Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; groupOrSplit(<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, final LoadQueueItem item, final Table table,<a name="line.850"></a>
+<span class="sourceLineNo">851</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>    final Path hfilePath = item.hfilePath;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>    // fs is the source filesystem<a name="line.853"></a>
+<span class="sourceLineNo">854</span>    if (fs == null) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>      fs = hfilePath.getFileSystem(getConf());<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>    HFile.Reader hfr = null;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>    try {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>      hfr = HFile.createReader(fs, hfilePath,<a name="line.859"></a>
+<span class="sourceLineNo">860</span>          new CacheConfig(getConf()), getConf());<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    } catch (FileNotFoundException fnfe) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      LOG.debug("encountered", fnfe);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>      return new Pair&lt;&gt;(null, hfilePath.getName());<a name="line.863"></a>
+<span class="sourceLineNo">864</span>    }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    final byte[] first, la

<TRUNCATED>

[30/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 105757b..30e54df 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,8 +25,8 @@ under the License.
     <language>en-us</language>
     <copyright>&#169;2007 - 2016 The Apache Software Foundation</copyright>
     <item>
-      <title>File: 2045,
-             Errors: 13916,
+      <title>File: 2051,
+             Errors: 13912,
              Warnings: 0,
              Infos: 0
       </title>
@@ -895,7 +895,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  89
+                  82
                 </td>
               </tr>
                           <tr>
@@ -3107,7 +3107,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  3
                 </td>
               </tr>
                           <tr>
@@ -5109,7 +5109,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  187
+                  186
                 </td>
               </tr>
                           <tr>
@@ -6243,7 +6243,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  19
+                  16
                 </td>
               </tr>
                           <tr>
@@ -8007,7 +8007,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  5
                 </td>
               </tr>
                           <tr>
@@ -8427,7 +8427,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  17
+                  16
                 </td>
               </tr>
                           <tr>
@@ -8623,7 +8623,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  9
+                  2
                 </td>
               </tr>
                           <tr>
@@ -8838,6 +8838,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.ScanResultConsumer.java">org/apache/hadoop/hbase/client/ScanResultConsumer.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  1
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.shaded.com.google.protobuf.NullValue.java">org/apache/hadoop/hbase/shaded/com/google/protobuf/NullValue.java</a>
                 </td>
                 <td>
@@ -9533,7 +9547,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  1
+                  0
                 </td>
               </tr>
                           <tr>
@@ -13817,7 +13831,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  19
+                  17
                 </td>
               </tr>
                           <tr>
@@ -15175,7 +15189,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  18
+                  14
                 </td>
               </tr>
                           <tr>
@@ -16272,6 +16286,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.AllowPartialScanResultCache.java">org/apache/hadoop/hbase/client/AllowPartialScanResultCache.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.shaded.com.google.protobuf.OptionOrBuilder.java">org/apache/hadoop/hbase/shaded/com/google/protobuf/OptionOrBuilder.java</a>
                 </td>
                 <td>
@@ -16463,7 +16491,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  113
+                  127
                 </td>
               </tr>
                           <tr>
@@ -16650,6 +16678,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.ScanResultCache.java">org/apache/hadoop/hbase/client/ScanResultCache.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.example.MultiThreadedClientExample.java">org/apache/hadoop/hbase/client/example/MultiThreadedClientExample.java</a>
                 </td>
                 <td>
@@ -17597,7 +17639,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  48
+                  49
                 </td>
               </tr>
                           <tr>
@@ -18829,7 +18871,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  116
+                  117
                 </td>
               </tr>
                           <tr>
@@ -19660,6 +19702,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.AsyncRegistryFactory.java">org/apache/hadoop/hbase/client/AsyncRegistryFactory.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.http.HttpServer.java">org/apache/hadoop/hbase/http/HttpServer.java</a>
                 </td>
                 <td>
@@ -20108,6 +20164,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.CompleteScanResultCache.java">org/apache/hadoop/hbase/client/CompleteScanResultCache.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.io.hfile.CachedBlock.java">org/apache/hadoop/hbase/io/hfile/CachedBlock.java</a>
                 </td>
                 <td>
@@ -20397,7 +20467,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  4
                 </td>
               </tr>
                           <tr>
@@ -21447,7 +21517,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  4
+                  6
                 </td>
               </tr>
                           <tr>
@@ -22511,7 +22581,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  3
                 </td>
               </tr>
                           <tr>
@@ -22922,6 +22992,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.AsyncClientScanner.java">org/apache/hadoop/hbase/client/AsyncClientScanner.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  2
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.security.access.AccessControlClient.java">org/apache/hadoop/hbase/security/access/AccessControlClient.java</a>
                 </td>
                 <td>
@@ -23743,7 +23827,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>
@@ -23776,6 +23860,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.AsyncScanSingleRegionRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.io.hfile.CorruptHFileException.java">org/apache/hadoop/hbase/io/hfile/CorruptHFileException.java</a>
                 </td>
                 <td>
@@ -26193,7 +26291,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  68
+                  70
                 </td>
               </tr>
                           <tr>
@@ -27500,20 +27598,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.ClusterRegistryFactory.java">org/apache/hadoop/hbase/client/ClusterRegistryFactory.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.mapreduce.MultithreadedTableMapper.java">org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java</a>
                 </td>
                 <td>
@@ -27761,7 +27845,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  7
+                  8
                 </td>
               </tr>
                           <tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 8b72a38..b8f034e 100644
--- a/coc.html
+++ b/coc.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -343,7 +343,7 @@ For flagrant violations requiring a firm response the PMC may opt to skip early
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/cygwin.html
----------------------------------------------------------------------
diff --git a/cygwin.html b/cygwin.html
index 8238c67..fb1adc5 100644
--- a/cygwin.html
+++ b/cygwin.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Installing Apache HBase (TM) on Windows using Cygwin</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -685,7 +685,7 @@ Now your <b>HBase </b>server is running, <b>start coding</b> and build that next
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 6df5b3c..df84298 100644
--- a/dependencies.html
+++ b/dependencies.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -530,7 +530,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 986077d..0afea62 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -1848,7 +1848,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index ff46dfb..564f14a 100644
--- a/dependency-info.html
+++ b/dependency-info.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -324,7 +324,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 01a6d4d..db4c9a1 100644
--- a/dependency-management.html
+++ b/dependency-management.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -864,7 +864,7 @@
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index f98cfb4..d1aadfa 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3662,21 +3662,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Fri Nov 11 14:29:04 UTC 2016"</code></td>
+<td class="colLast"><code>"Mon Nov 14 14:27:04 UTC 2016"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"8a6d6aa23944bbfd5047cf0c09fb4d8045735dab"</code></td>
+<td class="colLast"><code>"9250bf809155ebe93fd6ae8a0485b22c744fdf70"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"681093e9797dd6baf3dff8627bd19b06"</code></td>
+<td class="colLast"><code>"26adfd25faf563ea02f464d54c1596b1"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index c3c9c76..1cda11e 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -6335,7 +6335,7 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactor.html#bulkloadPath">bulkloadPath</a></span> - Variable in class org.apache.hadoop.hbase.mob.compactions.<a href="org/apache/hadoop/hbase/mob/compactions/PartitionedMobCompactor.html" title="class in org.apache.hadoop.hbase.mob.compactions">PartitionedMobCompactor</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-">bulkLoadPhase(Table, Connection, ExecutorService, Deque&lt;LoadIncrementalHFiles.LoadQueueItem&gt;, Multimap&lt;ByteBuffer, LoadIncrementalHFiles.LoadQueueItem&gt;, boolean)</a></span> - Method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">bulkLoadPhase(Table, Connection, ExecutorService, Deque&lt;LoadIncrementalHFiles.LoadQueueItem&gt;, Multimap&lt;ByteBuffer, LoadIncrementalHFiles.LoadQueueItem&gt;, boolean, Map&lt;LoadIncrementalHFiles.LoadQueueItem, ByteBuffer&gt;)</a></span> - Method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles</a></dt>
 <dd>
 <div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
  them.</div>
@@ -63048,8 +63048,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html#moveQueueUsingMulti-java.lang.String-java.lang.String-">moveQueueUsingMulti(String, String)</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.html" title="class in org.apache.hadoop.hbase.replication">ReplicationQueuesZKImpl</a></dt>
 <dd>
-<div class="block">It "atomically" copies all the wals queues from another region server and returns them all
- sorted per peer cluster (appended with the dead server's znode).</div>
+<div class="block">It "atomically" copies one peer's wals queue from another dead region server and returns them
+ all sorted.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterRpcServices.html#moveRegion-org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest-">moveRegion(RpcController, MasterProtos.MoveRegionRequest)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterRpcServices.html" title="class in org.apache.hadoop.hbase.master">MasterRpcServices</a></dt>
 <dd>&nbsp;</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html b/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
index e99713c..eb1476c 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
@@ -4869,7 +4869,7 @@ service.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#run-java.lang.String-java.util.Map-org.apache.hadoop.hbase.TableName-">run</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dirPath,
    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
    <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/class-use/TableNotFoundException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/TableNotFoundException.html b/devapidocs/org/apache/hadoop/hbase/class-use/TableNotFoundException.html
index 2cf6bde..8138641 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/TableNotFoundException.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/TableNotFoundException.html
@@ -142,7 +142,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#doBulkLoad-java.util.Map-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-boolean-boolean-">doBulkLoad</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
           <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
           <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
index 99b1fe8..ab8f995 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
@@ -251,7 +251,7 @@ service.</div>
            <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#doBulkLoad-java.util.Map-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-boolean-boolean-">doBulkLoad</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
           <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
           <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
@@ -285,7 +285,7 @@ service.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#performBulkLoad-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-java.util.Deque-java.util.concurrent.ExecutorService-org.apache.hadoop.hbase.client.SecureBulkLoadClient-boolean-">performBulkLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
                <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                <a href="../../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/client/class-use/Connection.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/Connection.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/Connection.html
index ff4d11a..010bab5 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/Connection.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/Connection.html
@@ -1148,12 +1148,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
              <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
              com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups,
-             boolean&nbsp;copyFile)</code>
+             boolean&nbsp;copyFile,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;item2RegionMap)</code>
 <div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
  them.</div>
 </td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/client/class-use/RegionLocator.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/RegionLocator.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/RegionLocator.html
index 851bbf2..afb6f91 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/RegionLocator.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/RegionLocator.html
@@ -258,7 +258,7 @@ service.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#doBulkLoad-java.util.Map-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-boolean-boolean-">doBulkLoad</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
           <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
           <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
@@ -299,7 +299,7 @@ service.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#performBulkLoad-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-java.util.Deque-java.util.concurrent.ExecutorService-org.apache.hadoop.hbase.client.SecureBulkLoadClient-boolean-">performBulkLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
                <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                <a href="../../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/client/class-use/SecureBulkLoadClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/SecureBulkLoadClient.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/SecureBulkLoadClient.html
index 73352ed..0fb75f1 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/SecureBulkLoadClient.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/SecureBulkLoadClient.html
@@ -113,7 +113,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
        <a href="../../../../../../org/apache/hadoop/hbase/client/SecureBulkLoadClient.html" title="class in org.apache.hadoop.hbase.client">SecureBulkLoadClient</a>&nbsp;secureClient)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#performBulkLoad-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-java.util.Deque-java.util.concurrent.ExecutorService-org.apache.hadoop.hbase.client.SecureBulkLoadClient-boolean-">performBulkLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
                <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                <a href="../../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/org/apache/hadoop/hbase/client/class-use/Table.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/Table.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/Table.html
index 9a6ddbd..8fc44f3 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/Table.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/Table.html
@@ -698,12 +698,13 @@ service.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
              <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
              com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;regionGroups,
-             boolean&nbsp;copyFile)</code>
+             boolean&nbsp;copyFile,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;item2RegionMap)</code>
 <div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
  them.</div>
 </td>
@@ -718,7 +719,7 @@ service.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#doBulkLoad-java.util.Map-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-boolean-boolean-">doBulkLoad</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
           <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
           <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
@@ -761,7 +762,7 @@ service.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#groupOrSplitPhase-org.apache.hadoop.hbase.client.Table-java.util.concurrent.ExecutorService-java.util.Deque-org.apache.hadoop.hbase.util.Pair-">groupOrSplitPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>&gt;&nbsp;queue,
@@ -787,7 +788,7 @@ service.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles.LoadQueueItem</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#performBulkLoad-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-java.util.Deque-java.util.concurrent.ExecutorService-org.apache.hadoop.hbase.client.SecureBulkLoadClient-boolean-">performBulkLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
                <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                <a href="../../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,


[11/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html b/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html
index 9b0e573..1e6eeaa 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.71">TestLoadIncrementalHFiles</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.74">TestLoadIncrementalHFiles</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Test cases for the "load" half of the HFileOutputFormat bulk load
  functionality. These tests run faster than the full MR cluster
@@ -449,7 +449,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tn</h4>
-<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.73">tn</a></pre>
+<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.76">tn</a></pre>
 </li>
 </ul>
 <a name="QUALIFIER">
@@ -458,7 +458,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>QUALIFIER</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.75">QUALIFIER</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.78">QUALIFIER</a></pre>
 </li>
 </ul>
 <a name="FAMILY">
@@ -467,7 +467,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>FAMILY</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.76">FAMILY</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.79">FAMILY</a></pre>
 </li>
 </ul>
 <a name="NAMESPACE">
@@ -476,7 +476,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>NAMESPACE</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.77">NAMESPACE</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.80">NAMESPACE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.mapreduce.TestLoadIncrementalHFiles.NAMESPACE">Constant Field Values</a></dd>
@@ -489,7 +489,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>EXPECTED_MSG_FOR_NON_EXISTING_FAMILY</h4>
-<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.79">EXPECTED_MSG_FOR_NON_EXISTING_FAMILY</a></pre>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.82">EXPECTED_MSG_FOR_NON_EXISTING_FAMILY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.mapreduce.TestLoadIncrementalHFiles.EXPECTED_MSG_FOR_NON_EXISTING_FAMILY">Constant Field Values</a></dd>
@@ -502,7 +502,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>MAX_FILES_PER_REGION_PER_FAMILY</h4>
-<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.80">MAX_FILES_PER_REGION_PER_FAMILY</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.83">MAX_FILES_PER_REGION_PER_FAMILY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.mapreduce.TestLoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY">Constant Field Values</a></dd>
@@ -515,7 +515,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>SPLIT_KEYS</h4>
-<pre>private static final&nbsp;byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.82">SPLIT_KEYS</a></pre>
+<pre>private static final&nbsp;byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.85">SPLIT_KEYS</a></pre>
 </li>
 </ul>
 <a name="util">
@@ -524,7 +524,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>util</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.87">util</a></pre>
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.90">util</a></pre>
 </li>
 </ul>
 </li>
@@ -541,7 +541,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestLoadIncrementalHFiles</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.71">TestLoadIncrementalHFiles</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.74">TestLoadIncrementalHFiles</a>()</pre>
 </li>
 </ul>
 </li>
@@ -558,7 +558,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.90">setUpBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.93">setUpBeforeClass</a>()
                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -572,7 +572,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setupNamespace</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.103">setupNamespace</a>()
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.106">setupNamespace</a>()
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -586,7 +586,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.108">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.111">tearDownAfterClass</a>()
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -600,7 +600,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSimpleLoadWithMap</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.113">testSimpleLoadWithMap</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.116">testSimpleLoadWithMap</a>()
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -614,7 +614,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSimpleLoad</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.126">testSimpleLoad</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.129">testSimpleLoad</a>()
                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test case that creates some regions and loads
  HFiles that fit snugly inside those regions</div>
@@ -630,7 +630,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSimpleLoadWithFileCopy</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.135">testSimpleLoadWithFileCopy</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.138">testSimpleLoadWithFileCopy</a>()
                                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -644,7 +644,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionCrossingLoad</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.150">testRegionCrossingLoad</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.153">testRegionCrossingLoad</a>()
                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test case that creates some regions and loads
  HFiles that cross the boundaries of those regions</div>
@@ -660,7 +660,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionCrossingRowBloom</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.162">testRegionCrossingRowBloom</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.165">testRegionCrossingRowBloom</a>()
                                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test loading into a column family that has a ROW bloom filter.</div>
 <dl>
@@ -675,7 +675,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionCrossingRowColBloom</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.174">testRegionCrossingRowColBloom</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.177">testRegionCrossingRowColBloom</a>()
                                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test loading into a column family that has a ROWCOL bloom filter.</div>
 <dl>
@@ -690,7 +690,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSimpleHFileSplit</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.187">testSimpleHFileSplit</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.190">testSimpleHFileSplit</a>()
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test case that creates some regions and loads HFiles that have
  different region boundaries than the table pre-split.</div>
@@ -706,7 +706,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionCrossingHFileSplit</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.205">testRegionCrossingHFileSplit</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.208">testRegionCrossingHFileSplit</a>()
                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test case that creates some regions and loads HFiles that cross the boundaries
  and have different region boundaries than the table pre-split.</div>
@@ -722,7 +722,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionCrossingHFileSplitRowBloom</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.214">testRegionCrossingHFileSplitRowBloom</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.217">testRegionCrossingHFileSplitRowBloom</a>()
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test case that creates some regions and loads HFiles that cross the boundaries
  have a ROW bloom filter and a different region boundaries than the table pre-split.</div>
@@ -738,7 +738,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionCrossingHFileSplitRowColBloom</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.223">testRegionCrossingHFileSplitRowColBloom</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.226">testRegionCrossingHFileSplitRowColBloom</a>()
                                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test case that creates some regions and loads HFiles that cross the boundaries
  have a ROWCOL bloom filter and a different region boundaries than the table pre-split.</div>
@@ -754,7 +754,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSplitALot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.228">testSplitALot</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.231">testSplitALot</a>()
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -768,7 +768,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionCrossingHFileSplit</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.249">testRegionCrossingHFileSplit</a>(org.apache.hadoop.hbase.regionserver.BloomType&nbsp;bloomType)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.252">testRegionCrossingHFileSplit</a>(org.apache.hadoop.hbase.regionserver.BloomType&nbsp;bloomType)
                                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -782,7 +782,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>buildHTD</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.262">buildHTD</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
+<pre>private&nbsp;org.apache.hadoop.hbase.HTableDescriptor&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.265">buildHTD</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
                                                           org.apache.hadoop.hbase.regionserver.BloomType&nbsp;bloomType)</pre>
 </li>
 </ul>
@@ -792,7 +792,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>runTest</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.270">runTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;testName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.273">runTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;testName,
                      org.apache.hadoop.hbase.regionserver.BloomType&nbsp;bloomType,
                      byte[][][]&nbsp;hfileRanges)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -808,7 +808,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>runTest</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.275">runTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;testName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.278">runTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;testName,
                      org.apache.hadoop.hbase.regionserver.BloomType&nbsp;bloomType,
                      byte[][][]&nbsp;hfileRanges,
                      boolean&nbsp;useMap)
@@ -825,7 +825,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>runTest</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.280">runTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;testName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.283">runTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;testName,
                      org.apache.hadoop.hbase.regionserver.BloomType&nbsp;bloomType,
                      byte[][]&nbsp;tableSplitKeys,
                      byte[][][]&nbsp;hfileRanges)
@@ -842,7 +842,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>runTest</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.285">runTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;testName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.288">runTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;testName,
                      org.apache.hadoop.hbase.regionserver.BloomType&nbsp;bloomType,
                      byte[][]&nbsp;tableSplitKeys,
                      byte[][][]&nbsp;hfileRanges,
@@ -860,7 +860,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>runTest</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.301">runTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;testName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.304">runTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;testName,
                      org.apache.hadoop.hbase.TableName&nbsp;tableName,
                      org.apache.hadoop.hbase.regionserver.BloomType&nbsp;bloomType,
                      boolean&nbsp;preCreateTable,
@@ -880,7 +880,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>runTest</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.308">runTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;testName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.311">runTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;testName,
                      org.apache.hadoop.hbase.HTableDescriptor&nbsp;htd,
                      org.apache.hadoop.hbase.regionserver.BloomType&nbsp;bloomType,
                      boolean&nbsp;preCreateTable,
@@ -901,7 +901,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testTagsSurviveBulkLoadSplit</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.392">testTagsSurviveBulkLoadSplit</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.399">testTagsSurviveBulkLoadSplit</a>()
                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test that tags survive through a bulk load that needs to split hfiles.
 
@@ -919,7 +919,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testNonexistentColumnFamilyLoad</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.434">testNonexistentColumnFamilyLoad</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.441">testNonexistentColumnFamilyLoad</a>()
                                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test loading into a column family that does not exist.</div>
 <dl>
@@ -934,7 +934,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testNonHfileFolderWithUnmatchedFamilyName</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.463">testNonHfileFolderWithUnmatchedFamilyName</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.470">testNonHfileFolderWithUnmatchedFamilyName</a>()
                                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -948,7 +948,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testNonHfileFolder</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.468">testNonHfileFolder</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.475">testNonHfileFolder</a>()
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -962,7 +962,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testNonHfileFolder</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.477">testNonHfileFolder</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.484">testNonHfileFolder</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableName,
                                 boolean&nbsp;preCreateTable)
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Write a random data file and a non-file in a dir with a valid family name
@@ -980,7 +980,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createRandomDataFile</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.512">createRandomDataFile</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.519">createRandomDataFile</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                          org.apache.hadoop.fs.Path&nbsp;path,
                                          int&nbsp;size)
                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -996,7 +996,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSplitStoreFile</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.533">testSplitStoreFile</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.540">testSplitStoreFile</a>()
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1010,7 +1010,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSplitStoreFileWithNoneToNone</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.556">testSplitStoreFileWithNoneToNone</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.563">testSplitStoreFileWithNoneToNone</a>()
                                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1024,7 +1024,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSplitStoreFileWithEncodedToEncoded</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.561">testSplitStoreFileWithEncodedToEncoded</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.568">testSplitStoreFileWithEncodedToEncoded</a>()
                                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1038,7 +1038,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSplitStoreFileWithEncodedToNone</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.566">testSplitStoreFileWithEncodedToNone</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.573">testSplitStoreFileWithEncodedToNone</a>()
                                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1052,7 +1052,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSplitStoreFileWithNoneToEncoded</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.571">testSplitStoreFileWithNoneToEncoded</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.578">testSplitStoreFileWithNoneToEncoded</a>()
                                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1066,7 +1066,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSplitStoreFileWithDifferentEncoding</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.575">testSplitStoreFileWithDifferentEncoding</a>(org.apache.hadoop.hbase.io.encoding.DataBlockEncoding&nbsp;bulkloadEncoding,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.582">testSplitStoreFileWithDifferentEncoding</a>(org.apache.hadoop.hbase.io.encoding.DataBlockEncoding&nbsp;bulkloadEncoding,
                                                      org.apache.hadoop.hbase.io.encoding.DataBlockEncoding&nbsp;cfEncoding)
                                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1081,7 +1081,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyHFile</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.600">verifyHFile</a>(org.apache.hadoop.fs.Path&nbsp;p)
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.607">verifyHFile</a>(org.apache.hadoop.fs.Path&nbsp;p)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1095,7 +1095,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>addStartEndKeysForTest</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.616">addStartEndKeysForTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;map,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.623">addStartEndKeysForTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;map,
                                     byte[]&nbsp;first,
                                     byte[]&nbsp;last)</pre>
 </li>
@@ -1106,7 +1106,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testInferBoundaries</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.625">testInferBoundaries</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.632">testInferBoundaries</a>()</pre>
 </li>
 </ul>
 <a name="testLoadTooMayHFiles--">
@@ -1115,7 +1115,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testLoadTooMayHFiles</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.682">testLoadTooMayHFiles</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.689">testLoadTooMayHFiles</a>()
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1129,7 +1129,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testWithoutAnExistingTableAndCreateTableSetToNo</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.707">testWithoutAnExistingTableAndCreateTableSetToNo</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.714">testWithoutAnExistingTableAndCreateTableSetToNo</a>()
                                                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1143,7 +1143,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testTableWithCFNameStartWithUnderScore</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.716">testTableWithCFNameStartWithUnderScore</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFiles.html#line.723">testTableWithCFNameStartWithUnderScore</a>()
                                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html b/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html
index f3edf5d..99ca32c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.84">TestLoadIncrementalHFilesSplitRecovery</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.86">TestLoadIncrementalHFilesSplitRecovery</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Test cases for the atomic load error handling of the bulk load functionality.</div>
 </li>
@@ -345,7 +345,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.85">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.87">LOG</a></pre>
 </li>
 </ul>
 <a name="util">
@@ -354,7 +354,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>util</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.87">util</a></pre>
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.89">util</a></pre>
 </li>
 </ul>
 <a name="useSecure">
@@ -363,7 +363,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>useSecure</h4>
-<pre>static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.89">useSecure</a></pre>
+<pre>static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.91">useSecure</a></pre>
 </li>
 </ul>
 <a name="NUM_CFS">
@@ -372,7 +372,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>NUM_CFS</h4>
-<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.91">NUM_CFS</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.93">NUM_CFS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.mapreduce.TestLoadIncrementalHFilesSplitRecovery.NUM_CFS">Constant Field Values</a></dd>
@@ -385,7 +385,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>QUAL</h4>
-<pre>static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.92">QUAL</a></pre>
+<pre>static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.94">QUAL</a></pre>
 </li>
 </ul>
 <a name="ROWCOUNT">
@@ -394,7 +394,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>ROWCOUNT</h4>
-<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.93">ROWCOUNT</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.95">ROWCOUNT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.mapreduce.TestLoadIncrementalHFilesSplitRecovery.ROWCOUNT">Constant Field Values</a></dd>
@@ -407,7 +407,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>families</h4>
-<pre>private static final&nbsp;byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.95">families</a></pre>
+<pre>private static final&nbsp;byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.97">families</a></pre>
 </li>
 </ul>
 </li>
@@ -424,7 +424,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestLoadIncrementalHFilesSplitRecovery</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.84">TestLoadIncrementalHFilesSplitRecovery</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.86">TestLoadIncrementalHFilesSplitRecovery</a>()</pre>
 </li>
 </ul>
 </li>
@@ -441,7 +441,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>rowkey</h4>
-<pre>static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.102">rowkey</a>(int&nbsp;i)</pre>
+<pre>static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.104">rowkey</a>(int&nbsp;i)</pre>
 </li>
 </ul>
 <a name="family-int-">
@@ -450,7 +450,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>family</h4>
-<pre>static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.106">family</a>(int&nbsp;i)</pre>
+<pre>static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.108">family</a>(int&nbsp;i)</pre>
 </li>
 </ul>
 <a name="value-int-">
@@ -459,7 +459,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>value</h4>
-<pre>static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.110">value</a>(int&nbsp;i)</pre>
+<pre>static&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.112">value</a>(int&nbsp;i)</pre>
 </li>
 </ul>
 <a name="buildHFiles-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-int-">
@@ -468,7 +468,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>buildHFiles</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.114">buildHFiles</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.116">buildHFiles</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                org.apache.hadoop.fs.Path&nbsp;dir,
                                int&nbsp;value)
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -484,7 +484,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setupTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.129">setupTable</a>(org.apache.hadoop.hbase.client.Connection&nbsp;connection,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.131">setupTable</a>(org.apache.hadoop.hbase.client.Connection&nbsp;connection,
                         org.apache.hadoop.hbase.TableName&nbsp;table,
                         int&nbsp;cfs)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -502,7 +502,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setupTableWithSplitkeys</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.152">setupTableWithSplitkeys</a>(org.apache.hadoop.hbase.TableName&nbsp;table,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.154">setupTableWithSplitkeys</a>(org.apache.hadoop.hbase.TableName&nbsp;table,
                                      int&nbsp;cfs,
                                      byte[][]&nbsp;SPLIT_KEYS)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -524,7 +524,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>buildBulkFiles</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.167">buildBulkFiles</a>(org.apache.hadoop.hbase.TableName&nbsp;table,
+<pre>private&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.169">buildBulkFiles</a>(org.apache.hadoop.hbase.TableName&nbsp;table,
                                                  int&nbsp;value)
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
@@ -539,7 +539,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>populateTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.178">populateTable</a>(org.apache.hadoop.hbase.client.Connection&nbsp;connection,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.180">populateTable</a>(org.apache.hadoop.hbase.client.Connection&nbsp;connection,
                            org.apache.hadoop.hbase.TableName&nbsp;table,
                            int&nbsp;value)
                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -556,7 +556,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>forceSplit</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.193">forceSplit</a>(org.apache.hadoop.hbase.TableName&nbsp;table)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.195">forceSplit</a>(org.apache.hadoop.hbase.TableName&nbsp;table)</pre>
 <div class="block">Split the known table in half.  (this is hard coded for this test suite)</div>
 </li>
 </ul>
@@ -566,7 +566,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setupCluster</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.229">setupCluster</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.231">setupCluster</a>()
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -580,7 +580,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>teardownCluster</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.236">teardownCluster</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.238">teardownCluster</a>()
                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -594,7 +594,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>assertExpectedTable</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.245">assertExpectedTable</a>(org.apache.hadoop.hbase.TableName&nbsp;table,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.247">assertExpectedTable</a>(org.apache.hadoop.hbase.TableName&nbsp;table,
                          int&nbsp;count,
                          int&nbsp;value)
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -612,7 +612,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBulkLoadPhaseFailure</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.275">testBulkLoadPhaseFailure</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.277">testBulkLoadPhaseFailure</a>()
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Test that shows that exception thrown from the RS side will result in an
  exception on the LIHFile client.</div>
@@ -628,7 +628,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMockedConnection</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.320">getMockedConnection</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>private&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.322">getMockedConnection</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
                                                                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                                                              org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -644,7 +644,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSplitWhileBulkLoadPhase</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.349">testSplitWhileBulkLoadPhase</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.351">testSplitWhileBulkLoadPhase</a>()
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">This test exercises the path where there is a split after initial
  validation but before the atomic bulk load call. We cannot use presplitting
@@ -662,7 +662,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testGroupOrSplitPresplit</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.395">testGroupOrSplitPresplit</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.398">testGroupOrSplitPresplit</a>()
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">This test splits a table and attempts to bulk load.  The bulk import files
  should be split before atomically importing.</div>
@@ -678,7 +678,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSplitTmpFileCleanUp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.437">testSplitTmpFileCleanUp</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.440">testSplitTmpFileCleanUp</a>()
                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">This test creates a table with many small regions.  The bulk load files
  would be splitted multiple times before all of them can be loaded successfully.</div>
@@ -694,7 +694,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testGroupOrSplitFailure</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.473">testGroupOrSplitFailure</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.476">testGroupOrSplitFailure</a>()
                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">This simulates an remote exception which should cause LIHF to exit with an
  exception.</div>
@@ -710,7 +710,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testGroupOrSplitWhenRegionHoleExistsInMeta</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.509">testGroupOrSplitWhenRegionHoleExistsInMeta</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.512">testGroupOrSplitWhenRegionHoleExistsInMeta</a>()
                                                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -724,7 +724,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>assertExpectedTable</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.584">assertExpectedTable</a>(org.apache.hadoop.hbase.client.Connection&nbsp;connection,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TestLoadIncrementalHFilesSplitRecovery.html#line.587">assertExpectedTable</a>(org.apache.hadoop.hbase.client.Connection&nbsp;connection,
                          org.apache.hadoop.hbase.TableName&nbsp;table,
                          int&nbsp;count,
                          int&nbsp;value)

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyNodeFailoverWorker.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyNodeFailoverWorker.html b/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyNodeFailoverWorker.html
index fd6c38f..e224a4a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyNodeFailoverWorker.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyNodeFailoverWorker.html
@@ -338,7 +338,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isLogZnodesMapPopulated</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyNodeFailoverWorker.html#line.559">isLogZnodesMapPopulated</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyNodeFailoverWorker.html#line.561">isLogZnodesMapPopulated</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>1 when the map is not empty.</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html b/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html
index b1cc6e5..d7d22ea 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html#line.589">TestReplicationSourceManager.DummyServer</a>
+<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html#line.591">TestReplicationSourceManager.DummyServer</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements org.apache.hadoop.hbase.Server</pre>
 </li>
@@ -254,7 +254,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hostname</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.590">hostname</a></pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.592">hostname</a></pre>
 </li>
 </ul>
 </li>
@@ -271,7 +271,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>DummyServer</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.592">DummyServer</a>()</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.594">DummyServer</a>()</pre>
 </li>
 </ul>
 <a name="DummyServer-java.lang.String-">
@@ -280,7 +280,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DummyServer</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.596">DummyServer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname)</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.598">DummyServer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname)</pre>
 </li>
 </ul>
 </li>
@@ -297,7 +297,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.601">getConfiguration</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.603">getConfiguration</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getConfiguration</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -310,7 +310,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getZooKeeper</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.606">getZooKeeper</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.608">getZooKeeper</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getZooKeeper</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -323,7 +323,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoordinatedStateManager</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.CoordinatedStateManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.611">getCoordinatedStateManager</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.CoordinatedStateManager&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.613">getCoordinatedStateManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getCoordinatedStateManager</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -336,7 +336,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getConnection</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.615">getConnection</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.617">getConnection</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getConnection</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -349,7 +349,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaTableLocator</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.zookeeper.MetaTableLocator&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.620">getMetaTableLocator</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.zookeeper.MetaTableLocator&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.622">getMetaTableLocator</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getMetaTableLocator</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -362,7 +362,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.ServerName&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.625">getServerName</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.ServerName&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.627">getServerName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getServerName</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -375,7 +375,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.630">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.632">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -389,7 +389,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>isAborted</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.635">isAborted</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.637">isAborted</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>isAborted</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Abortable</code></dd>
@@ -402,7 +402,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.640">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.642">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>stop</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Stoppable</code></dd>
@@ -415,7 +415,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.645">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.647">isStopped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>isStopped</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Stoppable</code></dd>
@@ -428,7 +428,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getChoreService</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.ChoreService&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.650">getChoreService</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.ChoreService&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.652">getChoreService</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getChoreService</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>
@@ -441,7 +441,7 @@ implements org.apache.hadoop.hbase.Server</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getClusterConnection</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.655">getClusterConnection</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.client.ClusterConnection&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.DummyServer.html#line.657">getClusterConnection</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getClusterConnection</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.Server</code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html b/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html
index 032d3f0..5d91c68 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html#line.578">TestReplicationSourceManager.FailInitializeDummyReplicationSource</a>
+<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.html#line.580">TestReplicationSourceManager.FailInitializeDummyReplicationSource</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationSourceDummy.html" title="class in org.apache.hadoop.hbase.replication">ReplicationSourceDummy</a></pre>
 </li>
 </ul>
@@ -207,7 +207,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/Replicati
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FailInitializeDummyReplicationSource</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html#line.578">FailInitializeDummyReplicationSource</a>()</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html#line.580">FailInitializeDummyReplicationSource</a>()</pre>
 </li>
 </ul>
 </li>
@@ -224,7 +224,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/replication/Replicati
 <ul class="blockListLast">
 <li class="blockList">
 <h4>init</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html#line.581">init</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.FailInitializeDummyReplicationSource.html#line.583">init</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                  org.apache.hadoop.fs.FileSystem&nbsp;fs,
                  org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceManager&nbsp;manager,
                  org.apache.hadoop.hbase.replication.ReplicationQueues&nbsp;rq,


[33/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html b/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
index 6d25806..55fa666 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
@@ -370,12 +370,12 @@
 <span class="sourceLineNo">362</span>   * @param regionLocator region locator<a name="line.362"></a>
 <span class="sourceLineNo">363</span>   * @param silence true to ignore unmatched column families<a name="line.363"></a>
 <span class="sourceLineNo">364</span>   * @param copyFile always copy hfiles if true<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * @return List of filenames which were not found<a name="line.365"></a>
+<span class="sourceLineNo">365</span>   * @return Map of LoadQueueItem to region<a name="line.365"></a>
 <span class="sourceLineNo">366</span>   * @throws TableNotFoundException if table does not yet exist<a name="line.366"></a>
 <span class="sourceLineNo">367</span>   */<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  public List&lt;String&gt; doBulkLoad(Map&lt;byte[], List&lt;Path&gt;&gt; map, final Admin admin, Table table,<a name="line.368"></a>
-<span class="sourceLineNo">369</span>          RegionLocator regionLocator, boolean silence, boolean copyFile)<a name="line.369"></a>
-<span class="sourceLineNo">370</span>              throws TableNotFoundException, IOException {<a name="line.370"></a>
+<span class="sourceLineNo">368</span>  public Map&lt;LoadQueueItem, ByteBuffer&gt; doBulkLoad(Map&lt;byte[], List&lt;Path&gt;&gt; map, final Admin admin,<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      Table table, RegionLocator regionLocator, boolean silence, boolean copyFile)<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          throws TableNotFoundException, IOException {<a name="line.370"></a>
 <span class="sourceLineNo">371</span>    if (!admin.isTableAvailable(regionLocator.getName())) {<a name="line.371"></a>
 <span class="sourceLineNo">372</span>      throw new TableNotFoundException("Table " + table.getName() + " is not currently available.");<a name="line.372"></a>
 <span class="sourceLineNo">373</span>    }<a name="line.373"></a>
@@ -457,8 +457,8 @@
 <span class="sourceLineNo">449</span>    }<a name="line.449"></a>
 <span class="sourceLineNo">450</span>  }<a name="line.450"></a>
 <span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  List&lt;String&gt; performBulkLoad(final Admin admin, Table table, RegionLocator regionLocator,<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      Deque&lt;LoadQueueItem&gt; queue, ExecutorService pool,<a name="line.453"></a>
+<span class="sourceLineNo">452</span>  Map&lt;LoadQueueItem, ByteBuffer&gt; performBulkLoad(final Admin admin, Table table,<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      RegionLocator regionLocator, Deque&lt;LoadQueueItem&gt; queue, ExecutorService pool,<a name="line.453"></a>
 <span class="sourceLineNo">454</span>      SecureBulkLoadClient secureClient, boolean copyFile) throws IOException {<a name="line.454"></a>
 <span class="sourceLineNo">455</span>    int count = 0;<a name="line.455"></a>
 <span class="sourceLineNo">456</span><a name="line.456"></a>
@@ -472,802 +472,815 @@
 <span class="sourceLineNo">464</span>    // fs is the source filesystem<a name="line.464"></a>
 <span class="sourceLineNo">465</span>    fsDelegationToken.acquireDelegationToken(fs);<a name="line.465"></a>
 <span class="sourceLineNo">466</span>    bulkToken = secureClient.prepareBulkLoad(admin.getConnection());<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; pair = null;<a name="line.467"></a>
+<span class="sourceLineNo">467</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; pair = null;<a name="line.467"></a>
 <span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // Assumes that region splits can happen while this occurs.<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    while (!queue.isEmpty()) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      // need to reload split keys each iteration.<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys = regionLocator.getStartEndKeys();<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (count != 0) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        LOG.info("Split occured while grouping HFiles, retry attempt " +<a name="line.474"></a>
-<span class="sourceLineNo">475</span>            + count + " with " + queue.size() + " files remaining to group or split");<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>      int maxRetries = getConf().getInt(HConstants.BULKLOAD_MAX_RETRIES_NUMBER, 10);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      maxRetries = Math.max(maxRetries, startEndKeys.getFirst().length + 1);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      if (maxRetries != 0 &amp;&amp; count &gt;= maxRetries) {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        throw new IOException("Retry attempted " + count +<a name="line.481"></a>
-<span class="sourceLineNo">482</span>            " times without completing, bailing out");<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      }<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      count++;<a name="line.484"></a>
-<span class="sourceLineNo">485</span><a name="line.485"></a>
-<span class="sourceLineNo">486</span>      // Using ByteBuffer for byte[] equality semantics<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      pair = groupOrSplitPhase(table, pool, queue, startEndKeys);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = pair.getFirst();<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span>      if (!checkHFilesCountPerRegionPerFamily(regionGroups)) {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // Error is logged inside checkHFilesCountPerRegionPerFamily.<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        throw new IOException("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            + " hfiles to one family of one region");<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>      bulkLoadPhase(table, admin.getConnection(), pool, queue, regionGroups, copyFile);<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>      // NOTE: The next iteration's split / group could happen in parallel to<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      // atomic bulkloads assuming that there are splits and no merges, and<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      // that we can atomically pull out the groups we want to retry.<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>    if (!queue.isEmpty()) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      throw new RuntimeException("Bulk load aborted with some files not yet loaded."<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        + "Please check log for more details.");<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    if (pair == null) return null;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    return pair.getSecond();<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  }<a name="line.509"></a>
-<span class="sourceLineNo">510</span><a name="line.510"></a>
-<span class="sourceLineNo">511</span>  /**<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.513"></a>
-<span class="sourceLineNo">514</span>   * families in it.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   * @param table table to which hfiles should be loaded<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * @param queue queue which needs to be loaded into the table<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @throws IOException If any I/O or network error occurred<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   */<a name="line.520"></a>
-<span class="sourceLineNo">521</span>  public void prepareHFileQueue(Path hfilesDir, Table table, Deque&lt;LoadQueueItem&gt; queue,<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      boolean validateHFile) throws IOException {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    prepareHFileQueue(hfilesDir, table, queue, validateHFile, false);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>  /**<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.527"></a>
-<span class="sourceLineNo">528</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.528"></a>
-<span class="sourceLineNo">529</span>   * families in it.<a name="line.529"></a>
-<span class="sourceLineNo">530</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.530"></a>
-<span class="sourceLineNo">531</span>   * @param table table to which hfiles should be loaded<a name="line.531"></a>
-<span class="sourceLineNo">532</span>   * @param queue queue which needs to be loaded into the table<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @param silence  true to ignore unmatched column families<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * @throws IOException If any I/O or network error occurred<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   */<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  public void prepareHFileQueue(Path hfilesDir, Table table,<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      Deque&lt;LoadQueueItem&gt; queue, boolean validateHFile, boolean silence) throws IOException {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    discoverLoadQueue(queue, hfilesDir, validateHFile);<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>  /**<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.545"></a>
-<span class="sourceLineNo">546</span>   * families in it.<a name="line.546"></a>
-<span class="sourceLineNo">547</span>   * @param map map of family to List of hfiles<a name="line.547"></a>
-<span class="sourceLineNo">548</span>   * @param table table to which hfiles should be loaded<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * @param queue queue which needs to be loaded into the table<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * @param silence  true to ignore unmatched column families<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @throws IOException If any I/O or network error occurred<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public void prepareHFileQueue(Map&lt;byte[], List&lt;Path&gt;&gt; map, Table table,<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      Deque&lt;LoadQueueItem&gt; queue, boolean silence) throws IOException {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    populateLoadQueue(queue, map);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.556"></a>
-<span class="sourceLineNo">557</span>  }<a name="line.557"></a>
-<span class="sourceLineNo">558</span><a name="line.558"></a>
-<span class="sourceLineNo">559</span>  // Initialize a thread pool<a name="line.559"></a>
-<span class="sourceLineNo">560</span>  private ExecutorService createExecutorService() {<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    ThreadFactoryBuilder builder = new ThreadFactoryBuilder();<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    builder.setNameFormat("LoadIncrementalHFiles-%1$d");<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    ExecutorService pool = new ThreadPoolExecutor(nrThreads, nrThreads, 60, TimeUnit.SECONDS,<a name="line.563"></a>
-<span class="sourceLineNo">564</span>        new LinkedBlockingQueue&lt;Runnable&gt;(), builder.build());<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    ((ThreadPoolExecutor) pool).allowCoreThreadTimeOut(true);<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    return pool;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>  /**<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   * Checks whether there is any invalid family name in HFiles to be bulk loaded.<a name="line.570"></a>
-<span class="sourceLineNo">571</span>   */<a name="line.571"></a>
-<span class="sourceLineNo">572</span>  private void validateFamiliesInHFiles(Table table, Deque&lt;LoadQueueItem&gt; queue, boolean silence)<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      throws IOException {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    Collection&lt;HColumnDescriptor&gt; families = table.getTableDescriptor().getFamilies();<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    List&lt;String&gt; familyNames = new ArrayList&lt;&gt;(families.size());<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    for (HColumnDescriptor family : families) {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      familyNames.add(family.getNameAsString());<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    }<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    Iterator&lt;LoadQueueItem&gt; queueIter = queue.iterator();<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    while (queueIter.hasNext()) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      LoadQueueItem lqi = queueIter.next();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      String familyNameInHFile = Bytes.toString(lqi.family);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      if (!familyNames.contains(familyNameInHFile)) {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        unmatchedFamilies.add(familyNameInHFile);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      }<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    if (unmatchedFamilies.size() &gt; 0) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      String msg =<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          "Unmatched family names found: unmatched family names in HFiles to be bulkloaded: "<a name="line.589"></a>
-<span class="sourceLineNo">590</span>              + unmatchedFamilies + "; valid family names of table " + table.getName() + " are: "<a name="line.590"></a>
-<span class="sourceLineNo">591</span>              + familyNames;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      LOG.error(msg);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      if (!silence) throw new IOException(msg);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>  /**<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * &lt;ol&gt;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * &lt;/li&gt;<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   * &lt;/ol&gt;<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   * @param table Table to which these hfiles should be loaded to<a name="line.604"></a>
-<span class="sourceLineNo">605</span>   * @param conn Connection to use<a name="line.605"></a>
-<span class="sourceLineNo">606</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.606"></a>
-<span class="sourceLineNo">607</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    loadHFileQueue(table, conn, queue, startEndKeys, false);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>  }<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>  /**<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   * &lt;ol&gt;<a name="line.616"></a>
-<span class="sourceLineNo">617</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.617"></a>
-<span class="sourceLineNo">618</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.618"></a>
-<span class="sourceLineNo">619</span>   * &lt;/li&gt;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>   * &lt;/ol&gt;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>   * @param table Table to which these hfiles should be loaded to<a name="line.621"></a>
-<span class="sourceLineNo">622</span>   * @param conn Connection to use<a name="line.622"></a>
-<span class="sourceLineNo">623</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.624"></a>
-<span class="sourceLineNo">625</span>   */<a name="line.625"></a>
-<span class="sourceLineNo">626</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys, boolean copyFile) throws IOException {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    ExecutorService pool = null;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    try {<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      pool = createExecutorService();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups =<a name="line.631"></a>
-<span class="sourceLineNo">632</span>          groupOrSplitPhase(table, pool, queue, startEndKeys).getFirst();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      bulkLoadPhase(table, conn, pool, queue, regionGroups, copyFile);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    } finally {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      if (pool != null) {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>        pool.shutdown();<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      }<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    }<a name="line.638"></a>
-<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
-<span class="sourceLineNo">640</span><a name="line.640"></a>
-<span class="sourceLineNo">641</span>  /**<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * This takes the LQI's grouped by likely regions and attempts to bulk load<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * them.  Any failures are re-queued for another pass with the<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * groupOrSplitPhase.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   */<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  protected void bulkLoadPhase(final Table table, final Connection conn,<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, boolean copyFile) throws IOException {<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    // atomically bulk load the groups.<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    Set&lt;Future&lt;List&lt;LoadQueueItem&gt;&gt;&gt; loadingFutures = new HashSet&lt;&gt;();<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    for (Entry&lt;ByteBuffer, ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()){<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      final byte[] first = e.getKey().array();<a name="line.652"></a>
-<span class="sourceLineNo">653</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.653"></a>
-<span class="sourceLineNo">654</span><a name="line.654"></a>
-<span class="sourceLineNo">655</span>      final Callable&lt;List&lt;LoadQueueItem&gt;&gt; call = new Callable&lt;List&lt;LoadQueueItem&gt;&gt;() {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>        @Override<a name="line.656"></a>
-<span class="sourceLineNo">657</span>        public List&lt;LoadQueueItem&gt; call() throws Exception {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>          List&lt;LoadQueueItem&gt; toRetry =<a name="line.658"></a>
-<span class="sourceLineNo">659</span>              tryAtomicRegionLoad(conn, table.getName(), first, lqis, copyFile);<a name="line.659"></a>
-<span class="sourceLineNo">660</span>          return toRetry;<a name="line.660"></a>
-<span class="sourceLineNo">661</span>        }<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      };<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      loadingFutures.add(pool.submit(call));<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span><a name="line.665"></a>
-<span class="sourceLineNo">666</span>    // get all the results.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    for (Future&lt;List&lt;LoadQueueItem&gt;&gt; future : loadingFutures) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      try {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        List&lt;LoadQueueItem&gt; toRetry = future.get();<a name="line.669"></a>
-<span class="sourceLineNo">670</span><a name="line.670"></a>
-<span class="sourceLineNo">671</span>        // LQIs that are requeued to be regrouped.<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        queue.addAll(toRetry);<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>      } catch (ExecutionException e1) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        Throwable t = e1.getCause();<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        if (t instanceof IOException) {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          // At this point something unrecoverable has happened.<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          // TODO Implement bulk load recovery<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          throw new IOException("BulkLoad encountered an unrecoverable problem", t);<a name="line.679"></a>
-<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        LOG.error("Unexpected execution exception during bulk load", e1);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        throw new IllegalStateException(t);<a name="line.682"></a>
-<span class="sourceLineNo">683</span>      } catch (InterruptedException e1) {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>        LOG.error("Unexpected interrupted exception during bulk load", e1);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>      }<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    }<a name="line.687"></a>
-<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
-<span class="sourceLineNo">689</span><a name="line.689"></a>
-<span class="sourceLineNo">690</span>  private boolean checkHFilesCountPerRegionPerFamily(<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    for (Entry&lt;ByteBuffer,<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()) {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      HashMap&lt;byte[], MutableInt&gt; filesMap = new HashMap&lt;&gt;();<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      for (LoadQueueItem lqi: lqis) {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        MutableInt count = filesMap.get(lqi.family);<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        if (count == null) {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>          count = new MutableInt();<a name="line.699"></a>
-<span class="sourceLineNo">700</span>          filesMap.put(lqi.family, count);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        count.increment();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>        if (count.intValue() &gt; maxFilesPerRegionPerFamily) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>          LOG.error("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.704"></a>
-<span class="sourceLineNo">705</span>            + " hfiles to family " + Bytes.toStringBinary(lqi.family)<a name="line.705"></a>
-<span class="sourceLineNo">706</span>            + " of region with start key "<a name="line.706"></a>
-<span class="sourceLineNo">707</span>            + Bytes.toStringBinary(e.getKey()));<a name="line.707"></a>
-<span class="sourceLineNo">708</span>          return false;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        }<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    return true;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  }<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>  /**<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * @param table the table to load into<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * @param pool the ExecutorService<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   * @param queue the queue for LoadQueueItem<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   * @param startEndKeys start and end keys<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * @return A map that groups LQI by likely bulk load region targets and List of missing hfiles.<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   */<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  private Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; groupOrSplitPhase(<a name="line.722"></a>
-<span class="sourceLineNo">723</span>      final Table table, ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    // &lt;region start key, LQI&gt; need synchronized only within this scope of this<a name="line.725"></a>
-<span class="sourceLineNo">726</span>    // phase because of the puts that happen in futures.<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    Multimap&lt;ByteBuffer, LoadQueueItem&gt; rgs = HashMultimap.create();<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = Multimaps.synchronizedMultimap(rgs);<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    List&lt;String&gt; missingHFiles = new ArrayList&lt;&gt;();<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; pair = new Pair&lt;&gt;(regionGroups,<a name="line.730"></a>
-<span class="sourceLineNo">731</span>        missingHFiles);<a name="line.731"></a>
-<span class="sourceLineNo">732</span><a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // drain LQIs and figure out bulk load groups<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    Set&lt;Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;&gt; splittingFutures = new HashSet&lt;&gt;();<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    while (!queue.isEmpty()) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      final LoadQueueItem item = queue.remove();<a name="line.736"></a>
-<span class="sourceLineNo">737</span><a name="line.737"></a>
-<span class="sourceLineNo">738</span>      final Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; call =<a name="line.738"></a>
-<span class="sourceLineNo">739</span>          new Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;() {<a name="line.739"></a>
-<span class="sourceLineNo">740</span>        @Override<a name="line.740"></a>
-<span class="sourceLineNo">741</span>        public Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; call() throws Exception {<a name="line.741"></a>
-<span class="sourceLineNo">742</span>          Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = groupOrSplit(regionGroups, item, table,<a name="line.742"></a>
-<span class="sourceLineNo">743</span>              startEndKeys);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>          return splits;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>        }<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      };<a name="line.746"></a>
-<span class="sourceLineNo">747</span>      splittingFutures.add(pool.submit(call));<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    }<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    // get all the results.  All grouping and splitting must finish before<a name="line.749"></a>
-<span class="sourceLineNo">750</span>    // we can attempt the atomic loads.<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    for (Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; lqis : splittingFutures) {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>      try {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>        Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = lqis.get();<a name="line.753"></a>
-<span class="sourceLineNo">754</span>        if (splits != null) {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>          if (splits.getFirst() != null) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>            queue.addAll(splits.getFirst());<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          } else {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>            missingHFiles.add(splits.getSecond());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
-<span class="sourceLineNo">761</span>      } catch (ExecutionException e1) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>        Throwable t = e1.getCause();<a name="line.762"></a>
-<span class="sourceLineNo">763</span>        if (t instanceof IOException) {<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          LOG.error("IOException during splitting", e1);<a name="line.764"></a>
-<span class="sourceLineNo">765</span>          throw (IOException)t; // would have been thrown if not parallelized,<a name="line.765"></a>
-<span class="sourceLineNo">766</span>        }<a name="line.766"></a>
-<span class="sourceLineNo">767</span>        LOG.error("Unexpected execution exception during splitting", e1);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>        throw new IllegalStateException(t);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      } catch (InterruptedException e1) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>        LOG.error("Unexpected interrupted exception during splitting", e1);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    }<a name="line.773"></a>
-<span class="sourceLineNo">774</span>    return pair;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>  }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>  // unique file name for the table<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  private String getUniqueName() {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    return UUID.randomUUID().toString().replaceAll("-", "");<a name="line.779"></a>
-<span class="sourceLineNo">780</span>  }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>  protected List&lt;LoadQueueItem&gt; splitStoreFile(final LoadQueueItem item,<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      final Table table, byte[] startKey,<a name="line.783"></a>
-<span class="sourceLineNo">784</span>      byte[] splitKey) throws IOException {<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    final Path hfilePath = item.hfilePath;<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>    Path tmpDir = item.hfilePath.getParent();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    if (!tmpDir.getName().equals(TMP_DIR)) {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      tmpDir = new Path(tmpDir, TMP_DIR);<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    }<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>    LOG.info("HFile at " + hfilePath + " no longer fits inside a single " +<a name="line.792"></a>
-<span class="sourceLineNo">793</span>      "region. Splitting...");<a name="line.793"></a>
-<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>    String uniqueName = getUniqueName();<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    HColumnDescriptor familyDesc = table.getTableDescriptor().getFamily(item.family);<a name="line.796"></a>
-<span class="sourceLineNo">797</span><a name="line.797"></a>
-<span class="sourceLineNo">798</span>    Path botOut = new Path(tmpDir, uniqueName + ".bottom");<a name="line.798"></a>
-<span class="sourceLineNo">799</span>    Path topOut = new Path(tmpDir, uniqueName + ".top");<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    splitStoreFile(getConf(), hfilePath, familyDesc, splitKey, botOut, topOut);<a name="line.800"></a>
-<span class="sourceLineNo">801</span><a name="line.801"></a>
-<span class="sourceLineNo">802</span>    FileSystem fs = tmpDir.getFileSystem(getConf());<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    fs.setPermission(tmpDir, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    fs.setPermission(botOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    fs.setPermission(topOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.805"></a>
+<span class="sourceLineNo">469</span>    Map&lt;LoadQueueItem, ByteBuffer&gt; item2RegionMap = new HashMap&lt;&gt;();<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    // Assumes that region splits can happen while this occurs.<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    while (!queue.isEmpty()) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      // need to reload split keys each iteration.<a name="line.472"></a>
+<span class="sourceLineNo">473</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys = regionLocator.getStartEndKeys();<a name="line.473"></a>
+<span class="sourceLineNo">474</span>      if (count != 0) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        LOG.info("Split occured while grouping HFiles, retry attempt " +<a name="line.475"></a>
+<span class="sourceLineNo">476</span>            + count + " with " + queue.size() + " files remaining to group or split");<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      }<a name="line.477"></a>
+<span class="sourceLineNo">478</span><a name="line.478"></a>
+<span class="sourceLineNo">479</span>      int maxRetries = getConf().getInt(HConstants.BULKLOAD_MAX_RETRIES_NUMBER, 10);<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      maxRetries = Math.max(maxRetries, startEndKeys.getFirst().length + 1);<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      if (maxRetries != 0 &amp;&amp; count &gt;= maxRetries) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        throw new IOException("Retry attempted " + count +<a name="line.482"></a>
+<span class="sourceLineNo">483</span>            " times without completing, bailing out");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      count++;<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>      // Using ByteBuffer for byte[] equality semantics<a name="line.487"></a>
+<span class="sourceLineNo">488</span>      pair = groupOrSplitPhase(table, pool, queue, startEndKeys);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = pair.getFirst();<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>      if (!checkHFilesCountPerRegionPerFamily(regionGroups)) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        // Error is logged inside checkHFilesCountPerRegionPerFamily.<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        throw new IOException("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.493"></a>
+<span class="sourceLineNo">494</span>            + " hfiles to one family of one region");<a name="line.494"></a>
+<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
+<span class="sourceLineNo">496</span><a name="line.496"></a>
+<span class="sourceLineNo">497</span>      bulkLoadPhase(table, admin.getConnection(), pool, queue, regionGroups, copyFile,<a name="line.497"></a>
+<span class="sourceLineNo">498</span>          item2RegionMap);<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>      // NOTE: The next iteration's split / group could happen in parallel to<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      // atomic bulkloads assuming that there are splits and no merges, and<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      // that we can atomically pull out the groups we want to retry.<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    }<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span>    if (!queue.isEmpty()) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      throw new RuntimeException("Bulk load aborted with some files not yet loaded."<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        + "Please check log for more details.");<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    return item2RegionMap;<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>  /**<a name="line.512"></a>
+<span class="sourceLineNo">513</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.513"></a>
+<span class="sourceLineNo">514</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.514"></a>
+<span class="sourceLineNo">515</span>   * families in it.<a name="line.515"></a>
+<span class="sourceLineNo">516</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.516"></a>
+<span class="sourceLineNo">517</span>   * @param table table to which hfiles should be loaded<a name="line.517"></a>
+<span class="sourceLineNo">518</span>   * @param queue queue which needs to be loaded into the table<a name="line.518"></a>
+<span class="sourceLineNo">519</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.519"></a>
+<span class="sourceLineNo">520</span>   * @throws IOException If any I/O or network error occurred<a name="line.520"></a>
+<span class="sourceLineNo">521</span>   */<a name="line.521"></a>
+<span class="sourceLineNo">522</span>  public void prepareHFileQueue(Path hfilesDir, Table table, Deque&lt;LoadQueueItem&gt; queue,<a name="line.522"></a>
+<span class="sourceLineNo">523</span>      boolean validateHFile) throws IOException {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>    prepareHFileQueue(hfilesDir, table, queue, validateHFile, false);<a name="line.524"></a>
+<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>  /**<a name="line.527"></a>
+<span class="sourceLineNo">528</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.528"></a>
+<span class="sourceLineNo">529</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.529"></a>
+<span class="sourceLineNo">530</span>   * families in it.<a name="line.530"></a>
+<span class="sourceLineNo">531</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.531"></a>
+<span class="sourceLineNo">532</span>   * @param table table to which hfiles should be loaded<a name="line.532"></a>
+<span class="sourceLineNo">533</span>   * @param queue queue which needs to be loaded into the table<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.534"></a>
+<span class="sourceLineNo">535</span>   * @param silence  true to ignore unmatched column families<a name="line.535"></a>
+<span class="sourceLineNo">536</span>   * @throws IOException If any I/O or network error occurred<a name="line.536"></a>
+<span class="sourceLineNo">537</span>   */<a name="line.537"></a>
+<span class="sourceLineNo">538</span>  public void prepareHFileQueue(Path hfilesDir, Table table,<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      Deque&lt;LoadQueueItem&gt; queue, boolean validateHFile, boolean silence) throws IOException {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    discoverLoadQueue(queue, hfilesDir, validateHFile);<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  /**<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.546"></a>
+<span class="sourceLineNo">547</span>   * families in it.<a name="line.547"></a>
+<span class="sourceLineNo">548</span>   * @param map map of family to List of hfiles<a name="line.548"></a>
+<span class="sourceLineNo">549</span>   * @param table table to which hfiles should be loaded<a name="line.549"></a>
+<span class="sourceLineNo">550</span>   * @param queue queue which needs to be loaded into the table<a name="line.550"></a>
+<span class="sourceLineNo">551</span>   * @param silence  true to ignore unmatched column families<a name="line.551"></a>
+<span class="sourceLineNo">552</span>   * @throws IOException If any I/O or network error occurred<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   */<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  public void prepareHFileQueue(Map&lt;byte[], List&lt;Path&gt;&gt; map, Table table,<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      Deque&lt;LoadQueueItem&gt; queue, boolean silence) throws IOException {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    populateLoadQueue(queue, map);<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>  }<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>  // Initialize a thread pool<a name="line.560"></a>
+<span class="sourceLineNo">561</span>  private ExecutorService createExecutorService() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    ThreadFactoryBuilder builder = new ThreadFactoryBuilder();<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    builder.setNameFormat("LoadIncrementalHFiles-%1$d");<a name="line.563"></a>
+<span class="sourceLineNo">564</span>    ExecutorService pool = new ThreadPoolExecutor(nrThreads, nrThreads, 60, TimeUnit.SECONDS,<a name="line.564"></a>
+<span class="sourceLineNo">565</span>        new LinkedBlockingQueue&lt;Runnable&gt;(), builder.build());<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    ((ThreadPoolExecutor) pool).allowCoreThreadTimeOut(true);<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    return pool;<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  }<a name="line.568"></a>
+<span class="sourceLineNo">569</span><a name="line.569"></a>
+<span class="sourceLineNo">570</span>  /**<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   * Checks whether there is any invalid family name in HFiles to be bulk loaded.<a name="line.571"></a>
+<span class="sourceLineNo">572</span>   */<a name="line.572"></a>
+<span class="sourceLineNo">573</span>  private void validateFamiliesInHFiles(Table table, Deque&lt;LoadQueueItem&gt; queue, boolean silence)<a name="line.573"></a>
+<span class="sourceLineNo">574</span>      throws IOException {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    Collection&lt;HColumnDescriptor&gt; families = table.getTableDescriptor().getFamilies();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    List&lt;String&gt; familyNames = new ArrayList&lt;&gt;(families.size());<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    for (HColumnDescriptor family : families) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      familyNames.add(family.getNameAsString());<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    Iterator&lt;LoadQueueItem&gt; queueIter = queue.iterator();<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    while (queueIter.hasNext()) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      LoadQueueItem lqi = queueIter.next();<a name="line.582"></a>
+<span class="sourceLineNo">583</span>      String familyNameInHFile = Bytes.toString(lqi.family);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>      if (!familyNames.contains(familyNameInHFile)) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        unmatchedFamilies.add(familyNameInHFile);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      }<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    }<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    if (unmatchedFamilies.size() &gt; 0) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      String msg =<a name="line.589"></a>
+<span class="sourceLineNo">590</span>          "Unmatched family names found: unmatched family names in HFiles to be bulkloaded: "<a name="line.590"></a>
+<span class="sourceLineNo">591</span>              + unmatchedFamilies + "; valid family names of table " + table.getName() + " are: "<a name="line.591"></a>
+<span class="sourceLineNo">592</span>              + familyNames;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>      LOG.error(msg);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      if (!silence) throw new IOException(msg);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    }<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  }<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>  /**<a name="line.598"></a>
+<span class="sourceLineNo">599</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.599"></a>
+<span class="sourceLineNo">600</span>   * &lt;ol&gt;<a name="line.600"></a>
+<span class="sourceLineNo">601</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.602"></a>
+<span class="sourceLineNo">603</span>   * &lt;/li&gt;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>   * &lt;/ol&gt;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>   * @param table Table to which these hfiles should be loaded to<a name="line.605"></a>
+<span class="sourceLineNo">606</span>   * @param conn Connection to use<a name="line.606"></a>
+<span class="sourceLineNo">607</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.607"></a>
+<span class="sourceLineNo">608</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.608"></a>
+<span class="sourceLineNo">609</span>   */<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.610"></a>
+<span class="sourceLineNo">611</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    loadHFileQueue(table, conn, queue, startEndKeys, false);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>  }<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>  /**<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.616"></a>
+<span class="sourceLineNo">617</span>   * &lt;ol&gt;<a name="line.617"></a>
+<span class="sourceLineNo">618</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.619"></a>
+<span class="sourceLineNo">620</span>   * &lt;/li&gt;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>   * &lt;/ol&gt;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * @param table Table to which these hfiles should be loaded to<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * @param conn Connection to use<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.625"></a>
+<span class="sourceLineNo">626</span>   */<a name="line.626"></a>
+<span class="sourceLineNo">627</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys, boolean copyFile) throws IOException {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    ExecutorService pool = null;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>    try {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      pool = createExecutorService();<a name="line.631"></a>
+<span class="sourceLineNo">632</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups =<a name="line.632"></a>
+<span class="sourceLineNo">633</span>          groupOrSplitPhase(table, pool, queue, startEndKeys).getFirst();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      bulkLoadPhase(table, conn, pool, queue, regionGroups, copyFile, null);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    } finally {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      if (pool != null) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        pool.shutdown();<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
+<span class="sourceLineNo">640</span>  }<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
+<span class="sourceLineNo">643</span>   * This takes the LQI's grouped by likely regions and attempts to bulk load<a name="line.643"></a>
+<span class="sourceLineNo">644</span>   * them.  Any failures are re-queued for another pass with the<a name="line.644"></a>
+<span class="sourceLineNo">645</span>   * groupOrSplitPhase.<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   */<a name="line.646"></a>
+<span class="sourceLineNo">647</span>  protected void bulkLoadPhase(final Table table, final Connection conn,<a name="line.647"></a>
+<span class="sourceLineNo">648</span>      ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.648"></a>
+<span class="sourceLineNo">649</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, boolean copyFile,<a name="line.649"></a>
+<span class="sourceLineNo">650</span>      Map&lt;LoadQueueItem, ByteBuffer&gt; item2RegionMap) throws IOException {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>    // atomically bulk load the groups.<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    Set&lt;Future&lt;List&lt;LoadQueueItem&gt;&gt;&gt; loadingFutures = new HashSet&lt;&gt;();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    for (Entry&lt;ByteBuffer, ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()){<a name="line.653"></a>
+<span class="sourceLineNo">654</span>      final byte[] first = e.getKey().array();<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span>      final Callable&lt;List&lt;LoadQueueItem&gt;&gt; call = new Callable&lt;List&lt;LoadQueueItem&gt;&gt;() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>        @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>        public List&lt;LoadQueueItem&gt; call() throws Exception {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>          List&lt;LoadQueueItem&gt; toRetry =<a name="line.660"></a>
+<span class="sourceLineNo">661</span>              tryAtomicRegionLoad(conn, table.getName(), first, lqis, copyFile);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>          return toRetry;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      };<a name="line.664"></a>
+<span class="sourceLineNo">665</span>      if (item2RegionMap != null) {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>        for (LoadQueueItem lqi : lqis) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>          item2RegionMap.put(lqi, e.getKey());<a name="line.667"></a>
+<span class="sourceLineNo">668</span>        }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      }<a name="line.669"></a>
+<span class="sourceLineNo">670</span>      loadingFutures.add(pool.submit(call));<a name="line.670"></a>
+<span class="sourceLineNo">671</span>    }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>    // get all the results.<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    for (Future&lt;List&lt;LoadQueueItem&gt;&gt; future : loadingFutures) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      try {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        List&lt;LoadQueueItem&gt; toRetry = future.get();<a name="line.676"></a>
+<span class="sourceLineNo">677</span><a name="line.677"></a>
+<span class="sourceLineNo">678</span>        if (item2RegionMap != null) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>          for (LoadQueueItem lqi : toRetry) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>            item2RegionMap.remove(lqi);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>          }<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        // LQIs that are requeued to be regrouped.<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        queue.addAll(toRetry);<a name="line.684"></a>
+<span class="sourceLineNo">685</span><a name="line.685"></a>
+<span class="sourceLineNo">686</span>      } catch (ExecutionException e1) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        Throwable t = e1.getCause();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>        if (t instanceof IOException) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>          // At this point something unrecoverable has happened.<a name="line.689"></a>
+<span class="sourceLineNo">690</span>          // TODO Implement bulk load recovery<a name="line.690"></a>
+<span class="sourceLineNo">691</span>          throw new IOException("BulkLoad encountered an unrecoverable problem", t);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        LOG.error("Unexpected execution exception during bulk load", e1);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        throw new IllegalStateException(t);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>      } catch (InterruptedException e1) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        LOG.error("Unexpected interrupted exception during bulk load", e1);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    }<a name="line.699"></a>
+<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>  private boolean checkHFilesCountPerRegionPerFamily(<a name="line.702"></a>
+<span class="sourceLineNo">703</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    for (Entry&lt;ByteBuffer,<a name="line.704"></a>
+<span class="sourceLineNo">705</span>      ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      HashMap&lt;byte[], MutableInt&gt; filesMap = new HashMap&lt;&gt;();<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      for (LoadQueueItem lqi: lqis) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>        MutableInt count = filesMap.get(lqi.family);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        if (count == null) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>          count = new MutableInt();<a name="line.711"></a>
+<span class="sourceLineNo">712</span>          filesMap.put(lqi.family, count);<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        }<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        count.increment();<a name="line.714"></a>
+<span class="sourceLineNo">715</span>        if (count.intValue() &gt; maxFilesPerRegionPerFamily) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>          LOG.error("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.716"></a>
+<span class="sourceLineNo">717</span>            + " hfiles to family " + Bytes.toStringBinary(lqi.family)<a name="line.717"></a>
+<span class="sourceLineNo">718</span>            + " of region with start key "<a name="line.718"></a>
+<span class="sourceLineNo">719</span>            + Bytes.toStringBinary(e.getKey()));<a name="line.719"></a>
+<span class="sourceLineNo">720</span>          return false;<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>    }<a name="line.723"></a>
+<span class="sourceLineNo">724</span>    return true;<a name="line.724"></a>
+<span class="sourceLineNo">725</span>  }<a name="line.725"></a>
+<span class="sourceLineNo">726</span><a name="line.726"></a>
+<span class="sourceLineNo">727</span>  /**<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * @param table the table to load into<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   * @param pool the ExecutorService<a name="line.729"></a>
+<span class="sourceLineNo">730</span>   * @param queue the queue for LoadQueueItem<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   * @param startEndKeys start and end keys<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   * @return A map that groups LQI by likely bulk load region targets and Set of missing hfiles.<a name="line.732"></a>
+<span class="sourceLineNo">733</span>   */<a name="line.733"></a>
+<span class="sourceLineNo">734</span>  private Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; groupOrSplitPhase(<a name="line.734"></a>
+<span class="sourceLineNo">735</span>      final Table table, ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.735"></a>
+<span class="sourceLineNo">736</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    // &lt;region start key, LQI&gt; need synchronized only within this scope of this<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    // phase because of the puts that happen in futures.<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    Multimap&lt;ByteBuffer, LoadQueueItem&gt; rgs = HashMultimap.create();<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = Multimaps.synchronizedMultimap(rgs);<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    Set&lt;String&gt; missingHFiles = new HashSet&lt;&gt;();<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; pair = new Pair&lt;&gt;(regionGroups,<a name="line.742"></a>
+<span class="sourceLineNo">743</span>        missingHFiles);<a name="line.743"></a>
+<span class="sourceLineNo">744</span><a name="line.744"></a>
+<span class="sourceLineNo">745</span>    // drain LQIs and figure out bulk load groups<a name="line.745"></a>
+<span class="sourceLineNo">746</span>    Set&lt;Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;&gt; splittingFutures = new HashSet&lt;&gt;();<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    while (!queue.isEmpty()) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      final LoadQueueItem item = queue.remove();<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>      final Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; call =<a name="line.750"></a>
+<span class="sourceLineNo">751</span>          new Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;() {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        @Override<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; call() throws Exception {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>          Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = groupOrSplit(regionGroups, item, table,<a name="line.754"></a>
+<span class="sourceLineNo">755</span>              startEndKeys);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>          return splits;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        }<a name="line.757"></a>
+<span class="sourceLineNo">758</span>      };<a name="line.758"></a>
+<span class="sourceLineNo">759</span>      splittingFutures.add(pool.submit(call));<a name="line.759"></a>
+<span class="sourceLineNo">760</span>    }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    // get all the results.  All grouping and splitting must finish before<a name="line.761"></a>
+<span class="sourceLineNo">762</span>    // we can attempt the atomic loads.<a name="line.762"></a>
+<span class="sourceLineNo">763</span>    for (Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; lqis : splittingFutures) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>      try {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>        Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = lqis.get();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>        if (splits != null) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>          if (splits.getFirst() != null) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>            queue.addAll(splits.getFirst());<a name="line.768"></a>
+<span class="sourceLineNo">769</span>          } else {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>            missingHFiles.add(splits.getSecond());<a name="line.770"></a>
+<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>        }<a name="line.772"></a>
+<span class="sourceLineNo">773</span>      } catch (ExecutionException e1) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>        Throwable t = e1.getCause();<a name="line.774"></a>
+<span class="sourceLineNo">775</span>        if (t instanceof IOException) {<a name="line.775"></a>
+<span class="sourceLineNo">776</span>          LOG.error("IOException during splitting", e1);<a name="line.776"></a>
+<span class="sourceLineNo">777</span>          throw (IOException)t; // would have been thrown if not parallelized,<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        }<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        LOG.error("Unexpected execution exception during splitting", e1);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        throw new IllegalStateException(t);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>      } catch (InterruptedException e1) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        LOG.error("Unexpected interrupted exception during splitting", e1);<a name="line.782"></a>
+<span class="sourceLineNo">783</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.783"></a>
+<span class="sourceLineNo">784</span>      }<a name="line.784"></a>
+<span class="sourceLineNo">785</span>    }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>    return pair;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>  }<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>  // unique file name for the table<a name="line.789"></a>
+<span class="sourceLineNo">790</span>  private String getUniqueName() {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    return UUID.randomUUID().toString().replaceAll("-", "");<a name="line.791"></a>
+<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>  protected List&lt;LoadQueueItem&gt; splitStoreFile(final LoadQueueItem item,<a name="line.794"></a>
+<span class="sourceLineNo">795</span>      final Table table, byte[] startKey,<a name="line.795"></a>
+<span class="sourceLineNo">796</span>      byte[] splitKey) throws IOException {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>    final Path hfilePath = item.hfilePath;<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>    Path tmpDir = item.hfilePath.getParent();<a name="line.799"></a>
+<span class="sourceLineNo">800</span>    if (!tmpDir.getName().equals(TMP_DIR)) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>      tmpDir = new Path(tmpDir, TMP_DIR);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>    }<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>    LOG.info("HFile at " + hfilePath + " no longer fits inside a single " +<a name="line.804"></a>
+<span class="sourceLineNo">805</span>      "region. Splitting...");<a name="line.805"></a>
 <span class="sourceLineNo">806</span><a name="line.806"></a>
-<span class="sourceLineNo">807</span>    // Add these back at the *front* of the queue, so there's a lower<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    // chance that the region will just split again before we get there.<a name="line.808"></a>
-<span class="sourceLineNo">809</span>    List&lt;LoadQueueItem&gt; lqis = new ArrayList&lt;LoadQueueItem&gt;(2);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>    lqis.add(new LoadQueueItem(item.family, botOut));<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    lqis.add(new LoadQueueItem(item.family, topOut));<a name="line.811"></a>
-<span class="sourceLineNo">812</span><a name="line.812"></a>
-<span class="sourceLineNo">813</span>    // If the current item is already the result of previous splits,<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    // we don't need it anymore. Clean up to save space.<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    // It is not part of the original input files.<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    try {<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      tmpDir = item.hfilePath.getParent();<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      if (tmpDir.getName().equals(TMP_DIR)) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>        fs.delete(item.hfilePath, false);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>      }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    } catch (IOException e) {<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      LOG.warn("Unable to delete temporary split file " + item.hfilePath);<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>    LOG.info("Successfully split into new HFiles " + botOut + " and " + topOut);<a name="line.824"></a>
-<span class="sourceLineNo">825</span>    return lqis;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>  }<a name="line.826"></a>
-<span class="sourceLineNo">827</span><a name="line.827"></a>
-<span class="sourceLineNo">828</span>  /**<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * Attempt to assign the given load queue item into its target region group.<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   * If the hfile boundary no longer fits into a region, physically splits<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   * the hfile such that the new bottom half will fit and returns the list of<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * LQI's corresponding to the resultant hfiles.<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   *<a name="line.833"></a>
-<span class="sourceLineNo">834</span>   * protected for testing<a name="line.834"></a>
-<span class="sourceLineNo">835</span>   * @throws IOException if an IO failure is encountered<a name="line.835"></a>
-<span class="sourceLineNo">836</span>   */<a name="line.836"></a>
-<span class="sourceLineNo">837</span>  protected Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; groupOrSplit(<a name="line.837"></a>
-<span class="sourceLineNo">838</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, final LoadQueueItem item, final Table table,<a name="line.838"></a>
-<span class="sourceLineNo">839</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    final Path hfilePath = item.hfilePath;<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    // fs is the source filesystem<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    if (fs == null) {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      fs = hfilePath.getFileSystem(getConf());<a name="line.843"></a>
-<span class="sourceLineNo">844</span>    }<a name="line.844"></a>
-<span class="sourceLineNo">845</span>    HFile.Reader hfr = null;<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    try {<a name="line.846"></a>
-<span class="sourceLineNo">847</span>      hfr = HFile.createReader(fs, hfilePath,<a name="line.847"></a>
-<span class="sourceLineNo">848</span>          new CacheConfig(getConf()), getConf());<a name="line.848"></a>
-<span class="sourceLineNo">849</span>    } catch (FileNotFoundException fnfe) {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      LOG.debug("encountered", fnfe);<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      return new Pair&lt;&gt;(null, hfilePath.getName());<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    final byte[] first, last;<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    try {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      hfr.loadFileInfo();<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      first = hfr.getFirstRowKey();<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      last = hfr.getLastRowKey();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    }  finally {<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      hfr.close();<a name="line.859"></a>
-<span class="sourceLineNo">860</span>    }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span>    LOG.info("Trying to load hfile=" + hfilePath +<a name="line.862"></a>
-<span class="sourceLineNo">863</span>        " first=" + Bytes.toStringBinary(first) +<a name="line.863"></a>
-<span class="sourceLineNo">864</span>        " last="  + Bytes.toStringBinary(last));<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (first == null || last == null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      assert first == null &amp;&amp; last == null;<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      // TODO what if this is due to a bad HFile?<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      LOG.info("hfile " + hfilePath + " has no entries, skipping");<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return null;<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    if (Bytes.compareTo(first, last) &gt; 0) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      throw new IllegalArgumentException(<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      "Invalid range: " + Bytes.toStringBinary(first) +<a name="line.873"></a>
-<span class="sourceLineNo">874</span>      " &gt; " + Bytes.toStringBinary(last));<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    }<a name="line.875"></a>
-<span class="sourceLineNo">876</span>    int idx = Arrays.binarySearch(startEndKeys.getFirst(), first,<a name="line.876"></a>
-<span class="sourceLineNo">877</span>        Bytes.BYTES_COMPARATOR);<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    if (idx &lt; 0) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>      // not on boundary, returns -(insertion index).  Calculate region it<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      // would be in.<a name="line.880"></a>
-<span class="sourceLineNo">881</span>      idx = -(idx + 1) - 1;<a name="line.881"></a>
+<span class="sourceLineNo">807</span>    String uniqueName = getUniqueName();<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    HColumnDescriptor familyDesc = table.getTableDescriptor().getFamily(item.family);<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>    Path botOut = new Path(tmpDir, uniqueName + ".bottom");<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    Path topOut = new Path(tmpDir, uniqueName + ".top");<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    splitStoreFile(getConf(), hfilePath, familyDesc, splitKey, botOut, topOut);<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>    FileSystem fs = tmpDir.getFileSystem(getConf());<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    fs.setPermission(tmpDir, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    fs.setPermission(botOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.816"></a>
+<span class="sourceLineNo">817</span>    fs.setPermission(topOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.817"></a>
+<span class="sourceLineNo">818</span><a name="line.818"></a>
+<span class="sourceLineNo">819</span>    // Add these back at the *front* of the queue, so there's a lower<a name="line.819"></a>
+<span class="sourceLineNo">820</span>    // chance that the region will just split again before we get there.<a name="line.820"></a>
+<span class="sourceLineNo">821</span>    List&lt;LoadQueueItem&gt; lqis = new ArrayList&lt;LoadQueueItem&gt;(2);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>    lqis.add(new LoadQueueItem(item.family, botOut));<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    lqis.add(new LoadQueueItem(item.family, topOut));<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>    // If the current item is already the result of previous splits,<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    // we don't need it anymore. Clean up to save space.<a name="line.826"></a>
+<span class="sourceLineNo">827</span>    // It is not part of the original input files.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>    try {<a name="line.828"></a>
+<span class="sourceLineNo">829</span>      tmpDir = item.hfilePath.getParent();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>      if (tmpDir.getName().equals(TMP_DIR)) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        fs.delete(item.hfilePath, false);<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    } catch (IOException e) {<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      LOG.warn("Unable to delete temporary split file " + item.hfilePath);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    }<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    LOG.info("Successfully split into new HFiles " + botOut + " and " + topOut);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    return lqis;<a name="line.837"></a>
+<span class="sourceLineNo">838</span>  }<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>  /**<a name="line.840"></a>
+<span class="sourceLineNo">841</span>   * Attempt to assign the given load queue item into its target region group.<a name="line.841"></a>
+<span class="sourceLineNo">842</span>   * If the hfile boundary no longer fits into a region, physically splits<a name="line.842"></a>
+<span class="sourceLineNo">843</span>   * the hfile such that the new bottom half will fit and returns the list of<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * LQI's corresponding to the resultant hfiles.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   *<a name="line.845"></a>
+<span class="sourceLineNo">846</span>   * protected for testing<a name="line.846"></a>
+<span class="sourceLineNo">847</span>   * @throws IOException if an IO failure is encountered<a name="line.847"></a>
+<span class="sourceLineNo">848</span>   */<a name="line.848"></a>
+<span class="sourceLineNo">849</span>  protected Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; groupOrSplit(<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, final LoadQueueItem item, final Table table,<a name="line.850"></a>
+<span class="sourceLineNo">851</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>    final Path hfilePath = item.hfilePath;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>    // fs is the source filesystem<a name="line.853"></a>
+<span class="sourceLineNo">854</span>    if (fs == null) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>      fs = hfilePath.getFileSystem(getConf());<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>    HFile.Reader hfr = null;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>    try {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>      hfr = HFile.createReader(fs, hfilePath,<a name="line.859"></a>
+<span class="sourceLineNo">860</span>          new CacheConfig(getConf()), getConf());<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    } catch (FileNotFoundException fnfe) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      LOG.debug("encountered", fnfe);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>      return new Pair&lt;&gt;(null, hfilePath.getName());<a name="line.863"></a>
+<span class="sourceLineNo">864</span>    }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    final byte[] first, last;<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    try {<a name="line.866"></a>
+<

<TRUNCATED>

[02/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html b/xref/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
index bbb9563..0d2b675 100644
--- a/xref/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
+++ b/xref/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
@@ -71,15 +71,15 @@
 <a class="jxr_linenumber" name="61" href="#61">61</a>    requiredArguments = {
 <a class="jxr_linenumber" name="62" href="#62">62</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"master"</span>, type = <span class="jxr_string">"HMaster"</span>)},
 <a class="jxr_linenumber" name="63" href="#63">63</a>    optionalArguments = {
-<a class="jxr_linenumber" name="64" href="#64">64</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"frags"</span>, type = <span class="jxr_string">"Map&lt;String,Integer&gt;"</span>),
-<a class="jxr_linenumber" name="65" href="#65">65</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"metaLocation"</span>, type = <span class="jxr_string">"ServerName"</span>),
+<a class="jxr_linenumber" name="64" href="#64">64</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"filter"</span>, type = <span class="jxr_string">"String"</span>),
+<a class="jxr_linenumber" name="65" href="#65">65</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"deadServers"</span>, type = <span class="jxr_string">"Set&lt;ServerName&gt;"</span>),
 <a class="jxr_linenumber" name="66" href="#66">66</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"catalogJanitorEnabled"</span>, type = <span class="jxr_string">"boolean"</span>),
-<a class="jxr_linenumber" name="67" href="#67">67</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"deadServers"</span>, type = <span class="jxr_string">"Set&lt;ServerName&gt;"</span>),
-<a class="jxr_linenumber" name="68" href="#68">68</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"assignmentManager"</span>, type = <span class="jxr_string">"AssignmentManager"</span>),
-<a class="jxr_linenumber" name="69" href="#69">69</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"servers"</span>, type = <span class="jxr_string">"List&lt;ServerName&gt;"</span>),
-<a class="jxr_linenumber" name="70" href="#70">70</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"format"</span>, type = <span class="jxr_string">"String"</span>),
-<a class="jxr_linenumber" name="71" href="#71">71</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"filter"</span>, type = <span class="jxr_string">"String"</span>),
-<a class="jxr_linenumber" name="72" href="#72">72</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"serverManager"</span>, type = <span class="jxr_string">"ServerManager"</span>)})
+<a class="jxr_linenumber" name="67" href="#67">67</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"format"</span>, type = <span class="jxr_string">"String"</span>),
+<a class="jxr_linenumber" name="68" href="#68">68</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"serverManager"</span>, type = <span class="jxr_string">"ServerManager"</span>),
+<a class="jxr_linenumber" name="69" href="#69">69</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"frags"</span>, type = <span class="jxr_string">"Map&lt;String,Integer&gt;"</span>),
+<a class="jxr_linenumber" name="70" href="#70">70</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"metaLocation"</span>, type = <span class="jxr_string">"ServerName"</span>),
+<a class="jxr_linenumber" name="71" href="#71">71</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"assignmentManager"</span>, type = <span class="jxr_string">"AssignmentManager"</span>),
+<a class="jxr_linenumber" name="72" href="#72">72</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"servers"</span>, type = <span class="jxr_string">"List&lt;ServerName&gt;"</span>)})
 <a class="jxr_linenumber" name="73" href="#73">73</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html">MasterStatusTmpl</a>
 <a class="jxr_linenumber" name="74" href="#74">74</a>    <strong class="jxr_keyword">extends</strong> org.jamon.AbstractTemplateProxy
 <a class="jxr_linenumber" name="75" href="#75">75</a>  {
@@ -120,40 +120,40 @@
 <a class="jxr_linenumber" name="110" href="#110">110</a>       <strong class="jxr_keyword">return</strong> m_master;
 <a class="jxr_linenumber" name="111" href="#111">111</a>     }
 <a class="jxr_linenumber" name="112" href="#112">112</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html">HMaster</a> m_master;
-<a class="jxr_linenumber" name="113" href="#113">113</a>     <em class="jxr_comment">// 21, 1</em>
-<a class="jxr_linenumber" name="114" href="#114">114</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFrags(Map&lt;String,Integer&gt; frags)
+<a class="jxr_linenumber" name="113" href="#113">113</a>     <em class="jxr_comment">// 26, 1</em>
+<a class="jxr_linenumber" name="114" href="#114">114</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFilter(String filter)
 <a class="jxr_linenumber" name="115" href="#115">115</a>     {
-<a class="jxr_linenumber" name="116" href="#116">116</a>       <em class="jxr_comment">// 21, 1</em>
-<a class="jxr_linenumber" name="117" href="#117">117</a>       m_frags = frags;
-<a class="jxr_linenumber" name="118" href="#118">118</a>       m_frags__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="116" href="#116">116</a>       <em class="jxr_comment">// 26, 1</em>
+<a class="jxr_linenumber" name="117" href="#117">117</a>       m_filter = filter;
+<a class="jxr_linenumber" name="118" href="#118">118</a>       m_filter__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="119" href="#119">119</a>     }
-<a class="jxr_linenumber" name="120" href="#120">120</a>     <strong class="jxr_keyword">public</strong> Map&lt;String,Integer&gt; getFrags()
+<a class="jxr_linenumber" name="120" href="#120">120</a>     <strong class="jxr_keyword">public</strong> String getFilter()
 <a class="jxr_linenumber" name="121" href="#121">121</a>     {
-<a class="jxr_linenumber" name="122" href="#122">122</a>       <strong class="jxr_keyword">return</strong> m_frags;
+<a class="jxr_linenumber" name="122" href="#122">122</a>       <strong class="jxr_keyword">return</strong> m_filter;
 <a class="jxr_linenumber" name="123" href="#123">123</a>     }
-<a class="jxr_linenumber" name="124" href="#124">124</a>     <strong class="jxr_keyword">private</strong> Map&lt;String,Integer&gt; m_frags;
-<a class="jxr_linenumber" name="125" href="#125">125</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getFrags__IsNotDefault()
+<a class="jxr_linenumber" name="124" href="#124">124</a>     <strong class="jxr_keyword">private</strong> String m_filter;
+<a class="jxr_linenumber" name="125" href="#125">125</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getFilter__IsNotDefault()
 <a class="jxr_linenumber" name="126" href="#126">126</a>     {
-<a class="jxr_linenumber" name="127" href="#127">127</a>       <strong class="jxr_keyword">return</strong> m_frags__IsNotDefault;
+<a class="jxr_linenumber" name="127" href="#127">127</a>       <strong class="jxr_keyword">return</strong> m_filter__IsNotDefault;
 <a class="jxr_linenumber" name="128" href="#128">128</a>     }
-<a class="jxr_linenumber" name="129" href="#129">129</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_frags__IsNotDefault;
-<a class="jxr_linenumber" name="130" href="#130">130</a>     <em class="jxr_comment">// 22, 1</em>
-<a class="jxr_linenumber" name="131" href="#131">131</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMetaLocation(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html">ServerName</a> metaLocation)
+<a class="jxr_linenumber" name="129" href="#129">129</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_filter__IsNotDefault;
+<a class="jxr_linenumber" name="130" href="#130">130</a>     <em class="jxr_comment">// 24, 1</em>
+<a class="jxr_linenumber" name="131" href="#131">131</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setDeadServers(Set&lt;ServerName&gt; deadServers)
 <a class="jxr_linenumber" name="132" href="#132">132</a>     {
-<a class="jxr_linenumber" name="133" href="#133">133</a>       <em class="jxr_comment">// 22, 1</em>
-<a class="jxr_linenumber" name="134" href="#134">134</a>       m_metaLocation = metaLocation;
-<a class="jxr_linenumber" name="135" href="#135">135</a>       m_metaLocation__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="133" href="#133">133</a>       <em class="jxr_comment">// 24, 1</em>
+<a class="jxr_linenumber" name="134" href="#134">134</a>       m_deadServers = deadServers;
+<a class="jxr_linenumber" name="135" href="#135">135</a>       m_deadServers__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="136" href="#136">136</a>     }
-<a class="jxr_linenumber" name="137" href="#137">137</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html">ServerName</a> getMetaLocation()
+<a class="jxr_linenumber" name="137" href="#137">137</a>     <strong class="jxr_keyword">public</strong> Set&lt;ServerName&gt; getDeadServers()
 <a class="jxr_linenumber" name="138" href="#138">138</a>     {
-<a class="jxr_linenumber" name="139" href="#139">139</a>       <strong class="jxr_keyword">return</strong> m_metaLocation;
+<a class="jxr_linenumber" name="139" href="#139">139</a>       <strong class="jxr_keyword">return</strong> m_deadServers;
 <a class="jxr_linenumber" name="140" href="#140">140</a>     }
-<a class="jxr_linenumber" name="141" href="#141">141</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html">ServerName</a> m_metaLocation;
-<a class="jxr_linenumber" name="142" href="#142">142</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getMetaLocation__IsNotDefault()
+<a class="jxr_linenumber" name="141" href="#141">141</a>     <strong class="jxr_keyword">private</strong> Set&lt;ServerName&gt; m_deadServers;
+<a class="jxr_linenumber" name="142" href="#142">142</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getDeadServers__IsNotDefault()
 <a class="jxr_linenumber" name="143" href="#143">143</a>     {
-<a class="jxr_linenumber" name="144" href="#144">144</a>       <strong class="jxr_keyword">return</strong> m_metaLocation__IsNotDefault;
+<a class="jxr_linenumber" name="144" href="#144">144</a>       <strong class="jxr_keyword">return</strong> m_deadServers__IsNotDefault;
 <a class="jxr_linenumber" name="145" href="#145">145</a>     }
-<a class="jxr_linenumber" name="146" href="#146">146</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_metaLocation__IsNotDefault;
+<a class="jxr_linenumber" name="146" href="#146">146</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_deadServers__IsNotDefault;
 <a class="jxr_linenumber" name="147" href="#147">147</a>     <em class="jxr_comment">// 25, 1</em>
 <a class="jxr_linenumber" name="148" href="#148">148</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setCatalogJanitorEnabled(<strong class="jxr_keyword">boolean</strong> catalogJanitorEnabled)
 <a class="jxr_linenumber" name="149" href="#149">149</a>     {
@@ -171,108 +171,108 @@
 <a class="jxr_linenumber" name="161" href="#161">161</a>       <strong class="jxr_keyword">return</strong> m_catalogJanitorEnabled__IsNotDefault;
 <a class="jxr_linenumber" name="162" href="#162">162</a>     }
 <a class="jxr_linenumber" name="163" href="#163">163</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_catalogJanitorEnabled__IsNotDefault;
-<a class="jxr_linenumber" name="164" href="#164">164</a>     <em class="jxr_comment">// 24, 1</em>
-<a class="jxr_linenumber" name="165" href="#165">165</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setDeadServers(Set&lt;ServerName&gt; deadServers)
+<a class="jxr_linenumber" name="164" href="#164">164</a>     <em class="jxr_comment">// 27, 1</em>
+<a class="jxr_linenumber" name="165" href="#165">165</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFormat(String format)
 <a class="jxr_linenumber" name="166" href="#166">166</a>     {
-<a class="jxr_linenumber" name="167" href="#167">167</a>       <em class="jxr_comment">// 24, 1</em>
-<a class="jxr_linenumber" name="168" href="#168">168</a>       m_deadServers = deadServers;
-<a class="jxr_linenumber" name="169" href="#169">169</a>       m_deadServers__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="167" href="#167">167</a>       <em class="jxr_comment">// 27, 1</em>
+<a class="jxr_linenumber" name="168" href="#168">168</a>       m_format = format;
+<a class="jxr_linenumber" name="169" href="#169">169</a>       m_format__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="170" href="#170">170</a>     }
-<a class="jxr_linenumber" name="171" href="#171">171</a>     <strong class="jxr_keyword">public</strong> Set&lt;ServerName&gt; getDeadServers()
+<a class="jxr_linenumber" name="171" href="#171">171</a>     <strong class="jxr_keyword">public</strong> String getFormat()
 <a class="jxr_linenumber" name="172" href="#172">172</a>     {
-<a class="jxr_linenumber" name="173" href="#173">173</a>       <strong class="jxr_keyword">return</strong> m_deadServers;
+<a class="jxr_linenumber" name="173" href="#173">173</a>       <strong class="jxr_keyword">return</strong> m_format;
 <a class="jxr_linenumber" name="174" href="#174">174</a>     }
-<a class="jxr_linenumber" name="175" href="#175">175</a>     <strong class="jxr_keyword">private</strong> Set&lt;ServerName&gt; m_deadServers;
-<a class="jxr_linenumber" name="176" href="#176">176</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getDeadServers__IsNotDefault()
+<a class="jxr_linenumber" name="175" href="#175">175</a>     <strong class="jxr_keyword">private</strong> String m_format;
+<a class="jxr_linenumber" name="176" href="#176">176</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getFormat__IsNotDefault()
 <a class="jxr_linenumber" name="177" href="#177">177</a>     {
-<a class="jxr_linenumber" name="178" href="#178">178</a>       <strong class="jxr_keyword">return</strong> m_deadServers__IsNotDefault;
+<a class="jxr_linenumber" name="178" href="#178">178</a>       <strong class="jxr_keyword">return</strong> m_format__IsNotDefault;
 <a class="jxr_linenumber" name="179" href="#179">179</a>     }
-<a class="jxr_linenumber" name="180" href="#180">180</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_deadServers__IsNotDefault;
-<a class="jxr_linenumber" name="181" href="#181">181</a>     <em class="jxr_comment">// 29, 1</em>
-<a class="jxr_linenumber" name="182" href="#182">182</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setAssignmentManager(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html">AssignmentManager</a> assignmentManager)
+<a class="jxr_linenumber" name="180" href="#180">180</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_format__IsNotDefault;
+<a class="jxr_linenumber" name="181" href="#181">181</a>     <em class="jxr_comment">// 28, 1</em>
+<a class="jxr_linenumber" name="182" href="#182">182</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setServerManager(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html">ServerManager</a> serverManager)
 <a class="jxr_linenumber" name="183" href="#183">183</a>     {
-<a class="jxr_linenumber" name="184" href="#184">184</a>       <em class="jxr_comment">// 29, 1</em>
-<a class="jxr_linenumber" name="185" href="#185">185</a>       m_assignmentManager = assignmentManager;
-<a class="jxr_linenumber" name="186" href="#186">186</a>       m_assignmentManager__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="184" href="#184">184</a>       <em class="jxr_comment">// 28, 1</em>
+<a class="jxr_linenumber" name="185" href="#185">185</a>       m_serverManager = serverManager;
+<a class="jxr_linenumber" name="186" href="#186">186</a>       m_serverManager__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="187" href="#187">187</a>     }
-<a class="jxr_linenumber" name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html">AssignmentManager</a> getAssignmentManager()
+<a class="jxr_linenumber" name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html">ServerManager</a> getServerManager()
 <a class="jxr_linenumber" name="189" href="#189">189</a>     {
-<a class="jxr_linenumber" name="190" href="#190">190</a>       <strong class="jxr_keyword">return</strong> m_assignmentManager;
+<a class="jxr_linenumber" name="190" href="#190">190</a>       <strong class="jxr_keyword">return</strong> m_serverManager;
 <a class="jxr_linenumber" name="191" href="#191">191</a>     }
-<a class="jxr_linenumber" name="192" href="#192">192</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html">AssignmentManager</a> m_assignmentManager;
-<a class="jxr_linenumber" name="193" href="#193">193</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getAssignmentManager__IsNotDefault()
+<a class="jxr_linenumber" name="192" href="#192">192</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html">ServerManager</a> m_serverManager;
+<a class="jxr_linenumber" name="193" href="#193">193</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getServerManager__IsNotDefault()
 <a class="jxr_linenumber" name="194" href="#194">194</a>     {
-<a class="jxr_linenumber" name="195" href="#195">195</a>       <strong class="jxr_keyword">return</strong> m_assignmentManager__IsNotDefault;
+<a class="jxr_linenumber" name="195" href="#195">195</a>       <strong class="jxr_keyword">return</strong> m_serverManager__IsNotDefault;
 <a class="jxr_linenumber" name="196" href="#196">196</a>     }
-<a class="jxr_linenumber" name="197" href="#197">197</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_assignmentManager__IsNotDefault;
-<a class="jxr_linenumber" name="198" href="#198">198</a>     <em class="jxr_comment">// 23, 1</em>
-<a class="jxr_linenumber" name="199" href="#199">199</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setServers(List&lt;ServerName&gt; servers)
+<a class="jxr_linenumber" name="197" href="#197">197</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_serverManager__IsNotDefault;
+<a class="jxr_linenumber" name="198" href="#198">198</a>     <em class="jxr_comment">// 21, 1</em>
+<a class="jxr_linenumber" name="199" href="#199">199</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFrags(Map&lt;String,Integer&gt; frags)
 <a class="jxr_linenumber" name="200" href="#200">200</a>     {
-<a class="jxr_linenumber" name="201" href="#201">201</a>       <em class="jxr_comment">// 23, 1</em>
-<a class="jxr_linenumber" name="202" href="#202">202</a>       m_servers = servers;
-<a class="jxr_linenumber" name="203" href="#203">203</a>       m_servers__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="201" href="#201">201</a>       <em class="jxr_comment">// 21, 1</em>
+<a class="jxr_linenumber" name="202" href="#202">202</a>       m_frags = frags;
+<a class="jxr_linenumber" name="203" href="#203">203</a>       m_frags__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="204" href="#204">204</a>     }
-<a class="jxr_linenumber" name="205" href="#205">205</a>     <strong class="jxr_keyword">public</strong> List&lt;ServerName&gt; getServers()
+<a class="jxr_linenumber" name="205" href="#205">205</a>     <strong class="jxr_keyword">public</strong> Map&lt;String,Integer&gt; getFrags()
 <a class="jxr_linenumber" name="206" href="#206">206</a>     {
-<a class="jxr_linenumber" name="207" href="#207">207</a>       <strong class="jxr_keyword">return</strong> m_servers;
+<a class="jxr_linenumber" name="207" href="#207">207</a>       <strong class="jxr_keyword">return</strong> m_frags;
 <a class="jxr_linenumber" name="208" href="#208">208</a>     }
-<a class="jxr_linenumber" name="209" href="#209">209</a>     <strong class="jxr_keyword">private</strong> List&lt;ServerName&gt; m_servers;
-<a class="jxr_linenumber" name="210" href="#210">210</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getServers__IsNotDefault()
+<a class="jxr_linenumber" name="209" href="#209">209</a>     <strong class="jxr_keyword">private</strong> Map&lt;String,Integer&gt; m_frags;
+<a class="jxr_linenumber" name="210" href="#210">210</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getFrags__IsNotDefault()
 <a class="jxr_linenumber" name="211" href="#211">211</a>     {
-<a class="jxr_linenumber" name="212" href="#212">212</a>       <strong class="jxr_keyword">return</strong> m_servers__IsNotDefault;
+<a class="jxr_linenumber" name="212" href="#212">212</a>       <strong class="jxr_keyword">return</strong> m_frags__IsNotDefault;
 <a class="jxr_linenumber" name="213" href="#213">213</a>     }
-<a class="jxr_linenumber" name="214" href="#214">214</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_servers__IsNotDefault;
-<a class="jxr_linenumber" name="215" href="#215">215</a>     <em class="jxr_comment">// 27, 1</em>
-<a class="jxr_linenumber" name="216" href="#216">216</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFormat(String format)
+<a class="jxr_linenumber" name="214" href="#214">214</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_frags__IsNotDefault;
+<a class="jxr_linenumber" name="215" href="#215">215</a>     <em class="jxr_comment">// 22, 1</em>
+<a class="jxr_linenumber" name="216" href="#216">216</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMetaLocation(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html">ServerName</a> metaLocation)
 <a class="jxr_linenumber" name="217" href="#217">217</a>     {
-<a class="jxr_linenumber" name="218" href="#218">218</a>       <em class="jxr_comment">// 27, 1</em>
-<a class="jxr_linenumber" name="219" href="#219">219</a>       m_format = format;
-<a class="jxr_linenumber" name="220" href="#220">220</a>       m_format__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="218" href="#218">218</a>       <em class="jxr_comment">// 22, 1</em>
+<a class="jxr_linenumber" name="219" href="#219">219</a>       m_metaLocation = metaLocation;
+<a class="jxr_linenumber" name="220" href="#220">220</a>       m_metaLocation__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="221" href="#221">221</a>     }
-<a class="jxr_linenumber" name="222" href="#222">222</a>     <strong class="jxr_keyword">public</strong> String getFormat()
+<a class="jxr_linenumber" name="222" href="#222">222</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html">ServerName</a> getMetaLocation()
 <a class="jxr_linenumber" name="223" href="#223">223</a>     {
-<a class="jxr_linenumber" name="224" href="#224">224</a>       <strong class="jxr_keyword">return</strong> m_format;
+<a class="jxr_linenumber" name="224" href="#224">224</a>       <strong class="jxr_keyword">return</strong> m_metaLocation;
 <a class="jxr_linenumber" name="225" href="#225">225</a>     }
-<a class="jxr_linenumber" name="226" href="#226">226</a>     <strong class="jxr_keyword">private</strong> String m_format;
-<a class="jxr_linenumber" name="227" href="#227">227</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getFormat__IsNotDefault()
+<a class="jxr_linenumber" name="226" href="#226">226</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html">ServerName</a> m_metaLocation;
+<a class="jxr_linenumber" name="227" href="#227">227</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getMetaLocation__IsNotDefault()
 <a class="jxr_linenumber" name="228" href="#228">228</a>     {
-<a class="jxr_linenumber" name="229" href="#229">229</a>       <strong class="jxr_keyword">return</strong> m_format__IsNotDefault;
+<a class="jxr_linenumber" name="229" href="#229">229</a>       <strong class="jxr_keyword">return</strong> m_metaLocation__IsNotDefault;
 <a class="jxr_linenumber" name="230" href="#230">230</a>     }
-<a class="jxr_linenumber" name="231" href="#231">231</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_format__IsNotDefault;
-<a class="jxr_linenumber" name="232" href="#232">232</a>     <em class="jxr_comment">// 26, 1</em>
-<a class="jxr_linenumber" name="233" href="#233">233</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFilter(String filter)
+<a class="jxr_linenumber" name="231" href="#231">231</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_metaLocation__IsNotDefault;
+<a class="jxr_linenumber" name="232" href="#232">232</a>     <em class="jxr_comment">// 29, 1</em>
+<a class="jxr_linenumber" name="233" href="#233">233</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setAssignmentManager(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html">AssignmentManager</a> assignmentManager)
 <a class="jxr_linenumber" name="234" href="#234">234</a>     {
-<a class="jxr_linenumber" name="235" href="#235">235</a>       <em class="jxr_comment">// 26, 1</em>
-<a class="jxr_linenumber" name="236" href="#236">236</a>       m_filter = filter;
-<a class="jxr_linenumber" name="237" href="#237">237</a>       m_filter__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="235" href="#235">235</a>       <em class="jxr_comment">// 29, 1</em>
+<a class="jxr_linenumber" name="236" href="#236">236</a>       m_assignmentManager = assignmentManager;
+<a class="jxr_linenumber" name="237" href="#237">237</a>       m_assignmentManager__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="238" href="#238">238</a>     }
-<a class="jxr_linenumber" name="239" href="#239">239</a>     <strong class="jxr_keyword">public</strong> String getFilter()
+<a class="jxr_linenumber" name="239" href="#239">239</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html">AssignmentManager</a> getAssignmentManager()
 <a class="jxr_linenumber" name="240" href="#240">240</a>     {
-<a class="jxr_linenumber" name="241" href="#241">241</a>       <strong class="jxr_keyword">return</strong> m_filter;
+<a class="jxr_linenumber" name="241" href="#241">241</a>       <strong class="jxr_keyword">return</strong> m_assignmentManager;
 <a class="jxr_linenumber" name="242" href="#242">242</a>     }
-<a class="jxr_linenumber" name="243" href="#243">243</a>     <strong class="jxr_keyword">private</strong> String m_filter;
-<a class="jxr_linenumber" name="244" href="#244">244</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getFilter__IsNotDefault()
+<a class="jxr_linenumber" name="243" href="#243">243</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html">AssignmentManager</a> m_assignmentManager;
+<a class="jxr_linenumber" name="244" href="#244">244</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getAssignmentManager__IsNotDefault()
 <a class="jxr_linenumber" name="245" href="#245">245</a>     {
-<a class="jxr_linenumber" name="246" href="#246">246</a>       <strong class="jxr_keyword">return</strong> m_filter__IsNotDefault;
+<a class="jxr_linenumber" name="246" href="#246">246</a>       <strong class="jxr_keyword">return</strong> m_assignmentManager__IsNotDefault;
 <a class="jxr_linenumber" name="247" href="#247">247</a>     }
-<a class="jxr_linenumber" name="248" href="#248">248</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_filter__IsNotDefault;
-<a class="jxr_linenumber" name="249" href="#249">249</a>     <em class="jxr_comment">// 28, 1</em>
-<a class="jxr_linenumber" name="250" href="#250">250</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setServerManager(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html">ServerManager</a> serverManager)
+<a class="jxr_linenumber" name="248" href="#248">248</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_assignmentManager__IsNotDefault;
+<a class="jxr_linenumber" name="249" href="#249">249</a>     <em class="jxr_comment">// 23, 1</em>
+<a class="jxr_linenumber" name="250" href="#250">250</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setServers(List&lt;ServerName&gt; servers)
 <a class="jxr_linenumber" name="251" href="#251">251</a>     {
-<a class="jxr_linenumber" name="252" href="#252">252</a>       <em class="jxr_comment">// 28, 1</em>
-<a class="jxr_linenumber" name="253" href="#253">253</a>       m_serverManager = serverManager;
-<a class="jxr_linenumber" name="254" href="#254">254</a>       m_serverManager__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="252" href="#252">252</a>       <em class="jxr_comment">// 23, 1</em>
+<a class="jxr_linenumber" name="253" href="#253">253</a>       m_servers = servers;
+<a class="jxr_linenumber" name="254" href="#254">254</a>       m_servers__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="255" href="#255">255</a>     }
-<a class="jxr_linenumber" name="256" href="#256">256</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html">ServerManager</a> getServerManager()
+<a class="jxr_linenumber" name="256" href="#256">256</a>     <strong class="jxr_keyword">public</strong> List&lt;ServerName&gt; getServers()
 <a class="jxr_linenumber" name="257" href="#257">257</a>     {
-<a class="jxr_linenumber" name="258" href="#258">258</a>       <strong class="jxr_keyword">return</strong> m_serverManager;
+<a class="jxr_linenumber" name="258" href="#258">258</a>       <strong class="jxr_keyword">return</strong> m_servers;
 <a class="jxr_linenumber" name="259" href="#259">259</a>     }
-<a class="jxr_linenumber" name="260" href="#260">260</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html">ServerManager</a> m_serverManager;
-<a class="jxr_linenumber" name="261" href="#261">261</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getServerManager__IsNotDefault()
+<a class="jxr_linenumber" name="260" href="#260">260</a>     <strong class="jxr_keyword">private</strong> List&lt;ServerName&gt; m_servers;
+<a class="jxr_linenumber" name="261" href="#261">261</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getServers__IsNotDefault()
 <a class="jxr_linenumber" name="262" href="#262">262</a>     {
-<a class="jxr_linenumber" name="263" href="#263">263</a>       <strong class="jxr_keyword">return</strong> m_serverManager__IsNotDefault;
+<a class="jxr_linenumber" name="263" href="#263">263</a>       <strong class="jxr_keyword">return</strong> m_servers__IsNotDefault;
 <a class="jxr_linenumber" name="264" href="#264">264</a>     }
-<a class="jxr_linenumber" name="265" href="#265">265</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_serverManager__IsNotDefault;
+<a class="jxr_linenumber" name="265" href="#265">265</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_servers__IsNotDefault;
 <a class="jxr_linenumber" name="266" href="#266">266</a>   }
 <a class="jxr_linenumber" name="267" href="#267">267</a>   @Override
 <a class="jxr_linenumber" name="268" href="#268">268</a>   <strong class="jxr_keyword">protected</strong> org.jamon.AbstractTemplateProxy.ImplData makeImplData()
@@ -284,17 +284,17 @@
 <a class="jxr_linenumber" name="274" href="#274">274</a>     <strong class="jxr_keyword">return</strong> (ImplData) <strong class="jxr_keyword">super</strong>.getImplData();
 <a class="jxr_linenumber" name="275" href="#275">275</a>   }
 <a class="jxr_linenumber" name="276" href="#276">276</a>
-<a class="jxr_linenumber" name="277" href="#277">277</a>   <strong class="jxr_keyword">protected</strong> Map&lt;String,Integer&gt; frags;
-<a class="jxr_linenumber" name="278" href="#278">278</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)
+<a class="jxr_linenumber" name="277" href="#277">277</a>   <strong class="jxr_keyword">protected</strong> String filter;
+<a class="jxr_linenumber" name="278" href="#278">278</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)
 <a class="jxr_linenumber" name="279" href="#279">279</a>   {
-<a class="jxr_linenumber" name="280" href="#280">280</a>     (getImplData()).setFrags(p_frags);
+<a class="jxr_linenumber" name="280" href="#280">280</a>     (getImplData()).setFilter(p_filter);
 <a class="jxr_linenumber" name="281" href="#281">281</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="282" href="#282">282</a>   }
 <a class="jxr_linenumber" name="283" href="#283">283</a>
-<a class="jxr_linenumber" name="284" href="#284">284</a>   <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html">ServerName</a> metaLocation;
-<a class="jxr_linenumber" name="285" href="#285">285</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html">ServerName</a> p_metaLocation)
+<a class="jxr_linenumber" name="284" href="#284">284</a>   <strong class="jxr_keyword">protected</strong> Set&lt;ServerName&gt; deadServers;
+<a class="jxr_linenumber" name="285" href="#285">285</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)
 <a class="jxr_linenumber" name="286" href="#286">286</a>   {
-<a class="jxr_linenumber" name="287" href="#287">287</a>     (getImplData()).setMetaLocation(p_metaLocation);
+<a class="jxr_linenumber" name="287" href="#287">287</a>     (getImplData()).setDeadServers(p_deadServers);
 <a class="jxr_linenumber" name="288" href="#288">288</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="289" href="#289">289</a>   }
 <a class="jxr_linenumber" name="290" href="#290">290</a>
@@ -305,45 +305,45 @@
 <a class="jxr_linenumber" name="295" href="#295">295</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="296" href="#296">296</a>   }
 <a class="jxr_linenumber" name="297" href="#297">297</a>
-<a class="jxr_linenumber" name="298" href="#298">298</a>   <strong class="jxr_keyword">protected</strong> Set&lt;ServerName&gt; deadServers;
-<a class="jxr_linenumber" name="299" href="#299">299</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)
+<a class="jxr_linenumber" name="298" href="#298">298</a>   <strong class="jxr_keyword">protected</strong> String format;
+<a class="jxr_linenumber" name="299" href="#299">299</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)
 <a class="jxr_linenumber" name="300" href="#300">300</a>   {
-<a class="jxr_linenumber" name="301" href="#301">301</a>     (getImplData()).setDeadServers(p_deadServers);
+<a class="jxr_linenumber" name="301" href="#301">301</a>     (getImplData()).setFormat(p_format);
 <a class="jxr_linenumber" name="302" href="#302">302</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="303" href="#303">303</a>   }
 <a class="jxr_linenumber" name="304" href="#304">304</a>
-<a class="jxr_linenumber" name="305" href="#305">305</a>   <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html">AssignmentManager</a> assignmentManager;
-<a class="jxr_linenumber" name="306" href="#306">306</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html">AssignmentManager</a> p_assignmentManager)
+<a class="jxr_linenumber" name="305" href="#305">305</a>   <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html">ServerManager</a> serverManager;
+<a class="jxr_linenumber" name="306" href="#306">306</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html">ServerManager</a> p_serverManager)
 <a class="jxr_linenumber" name="307" href="#307">307</a>   {
-<a class="jxr_linenumber" name="308" href="#308">308</a>     (getImplData()).setAssignmentManager(p_assignmentManager);
+<a class="jxr_linenumber" name="308" href="#308">308</a>     (getImplData()).setServerManager(p_serverManager);
 <a class="jxr_linenumber" name="309" href="#309">309</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="310" href="#310">310</a>   }
 <a class="jxr_linenumber" name="311" href="#311">311</a>
-<a class="jxr_linenumber" name="312" href="#312">312</a>   <strong class="jxr_keyword">protected</strong> List&lt;ServerName&gt; servers;
-<a class="jxr_linenumber" name="313" href="#313">313</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)
+<a class="jxr_linenumber" name="312" href="#312">312</a>   <strong class="jxr_keyword">protected</strong> Map&lt;String,Integer&gt; frags;
+<a class="jxr_linenumber" name="313" href="#313">313</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFrags(Map&lt;String,Integer&gt; p_frags)
 <a class="jxr_linenumber" name="314" href="#314">314</a>   {
-<a class="jxr_linenumber" name="315" href="#315">315</a>     (getImplData()).setServers(p_servers);
+<a class="jxr_linenumber" name="315" href="#315">315</a>     (getImplData()).setFrags(p_frags);
 <a class="jxr_linenumber" name="316" href="#316">316</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="317" href="#317">317</a>   }
 <a class="jxr_linenumber" name="318" href="#318">318</a>
-<a class="jxr_linenumber" name="319" href="#319">319</a>   <strong class="jxr_keyword">protected</strong> String format;
-<a class="jxr_linenumber" name="320" href="#320">320</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)
+<a class="jxr_linenumber" name="319" href="#319">319</a>   <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html">ServerName</a> metaLocation;
+<a class="jxr_linenumber" name="320" href="#320">320</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html">ServerName</a> p_metaLocation)
 <a class="jxr_linenumber" name="321" href="#321">321</a>   {
-<a class="jxr_linenumber" name="322" href="#322">322</a>     (getImplData()).setFormat(p_format);
+<a class="jxr_linenumber" name="322" href="#322">322</a>     (getImplData()).setMetaLocation(p_metaLocation);
 <a class="jxr_linenumber" name="323" href="#323">323</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="324" href="#324">324</a>   }
 <a class="jxr_linenumber" name="325" href="#325">325</a>
-<a class="jxr_linenumber" name="326" href="#326">326</a>   <strong class="jxr_keyword">protected</strong> String filter;
-<a class="jxr_linenumber" name="327" href="#327">327</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)
+<a class="jxr_linenumber" name="326" href="#326">326</a>   <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html">AssignmentManager</a> assignmentManager;
+<a class="jxr_linenumber" name="327" href="#327">327</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(<a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html">AssignmentManager</a> p_assignmentManager)
 <a class="jxr_linenumber" name="328" href="#328">328</a>   {
-<a class="jxr_linenumber" name="329" href="#329">329</a>     (getImplData()).setFilter(p_filter);
+<a class="jxr_linenumber" name="329" href="#329">329</a>     (getImplData()).setAssignmentManager(p_assignmentManager);
 <a class="jxr_linenumber" name="330" href="#330">330</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="331" href="#331">331</a>   }
 <a class="jxr_linenumber" name="332" href="#332">332</a>
-<a class="jxr_linenumber" name="333" href="#333">333</a>   <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html">ServerManager</a> serverManager;
-<a class="jxr_linenumber" name="334" href="#334">334</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html">ServerManager</a> p_serverManager)
+<a class="jxr_linenumber" name="333" href="#333">333</a>   <strong class="jxr_keyword">protected</strong> List&lt;ServerName&gt; servers;
+<a class="jxr_linenumber" name="334" href="#334">334</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)
 <a class="jxr_linenumber" name="335" href="#335">335</a>   {
-<a class="jxr_linenumber" name="336" href="#336">336</a>     (getImplData()).setServerManager(p_serverManager);
+<a class="jxr_linenumber" name="336" href="#336">336</a>     (getImplData()).setServers(p_servers);
 <a class="jxr_linenumber" name="337" href="#337">337</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="338" href="#338">338</a>   }
 <a class="jxr_linenumber" name="339" href="#339">339</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html b/xref/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
index 6108217..b658d55 100644
--- a/xref/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
+++ b/xref/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
@@ -72,15 +72,15 @@
 <a class="jxr_linenumber" name="62" href="#62">62</a>
 <a class="jxr_linenumber" name="63" href="#63">63</a>  {
 <a class="jxr_linenumber" name="64" href="#64">64</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html">HMaster</a> master;
-<a class="jxr_linenumber" name="65" href="#65">65</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String,Integer&gt; frags;
-<a class="jxr_linenumber" name="66" href="#66">66</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html">ServerName</a> metaLocation;
+<a class="jxr_linenumber" name="65" href="#65">65</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String filter;
+<a class="jxr_linenumber" name="66" href="#66">66</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Set&lt;ServerName&gt; deadServers;
 <a class="jxr_linenumber" name="67" href="#67">67</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> catalogJanitorEnabled;
-<a class="jxr_linenumber" name="68" href="#68">68</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Set&lt;ServerName&gt; deadServers;
-<a class="jxr_linenumber" name="69" href="#69">69</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html">AssignmentManager</a> assignmentManager;
-<a class="jxr_linenumber" name="70" href="#70">70</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> List&lt;ServerName&gt; servers;
-<a class="jxr_linenumber" name="71" href="#71">71</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String format;
-<a class="jxr_linenumber" name="72" href="#72">72</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String filter;
-<a class="jxr_linenumber" name="73" href="#73">73</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html">ServerManager</a> serverManager;
+<a class="jxr_linenumber" name="68" href="#68">68</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String format;
+<a class="jxr_linenumber" name="69" href="#69">69</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html">ServerManager</a> serverManager;
+<a class="jxr_linenumber" name="70" href="#70">70</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String,Integer&gt; frags;
+<a class="jxr_linenumber" name="71" href="#71">71</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html">ServerName</a> metaLocation;
+<a class="jxr_linenumber" name="72" href="#72">72</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/hadoop/hbase/master/AssignmentManager.html">AssignmentManager</a> assignmentManager;
+<a class="jxr_linenumber" name="73" href="#73">73</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> List&lt;ServerName&gt; servers;
 <a class="jxr_linenumber" name="74" href="#74">74</a>    <em class="jxr_comment">// 69, 1</em>
 <a class="jxr_linenumber" name="75" href="#75">75</a>
 <a class="jxr_linenumber" name="76" href="#76">76</a>    <strong class="jxr_keyword">public</strong> String formatZKString() {
@@ -110,41 +110,41 @@
 <a class="jxr_linenumber" name="100" href="#100">100</a>
 <a class="jxr_linenumber" name="101" href="#101">101</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl.ImplData p_implData)
 <a class="jxr_linenumber" name="102" href="#102">102</a>   {
-<a class="jxr_linenumber" name="103" href="#103">103</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getFrags__IsNotDefault())
+<a class="jxr_linenumber" name="103" href="#103">103</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getFilter__IsNotDefault())
 <a class="jxr_linenumber" name="104" href="#104">104</a>     {
-<a class="jxr_linenumber" name="105" href="#105">105</a>       p_implData.setFrags(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="105" href="#105">105</a>       p_implData.setFilter(<span class="jxr_string">"general"</span>);
 <a class="jxr_linenumber" name="106" href="#106">106</a>     }
-<a class="jxr_linenumber" name="107" href="#107">107</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getMetaLocation__IsNotDefault())
+<a class="jxr_linenumber" name="107" href="#107">107</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getDeadServers__IsNotDefault())
 <a class="jxr_linenumber" name="108" href="#108">108</a>     {
-<a class="jxr_linenumber" name="109" href="#109">109</a>       p_implData.setMetaLocation(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="109" href="#109">109</a>       p_implData.setDeadServers(<strong class="jxr_keyword">null</strong>);
 <a class="jxr_linenumber" name="110" href="#110">110</a>     }
 <a class="jxr_linenumber" name="111" href="#111">111</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getCatalogJanitorEnabled__IsNotDefault())
 <a class="jxr_linenumber" name="112" href="#112">112</a>     {
 <a class="jxr_linenumber" name="113" href="#113">113</a>       p_implData.setCatalogJanitorEnabled(<strong class="jxr_keyword">true</strong>);
 <a class="jxr_linenumber" name="114" href="#114">114</a>     }
-<a class="jxr_linenumber" name="115" href="#115">115</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getDeadServers__IsNotDefault())
+<a class="jxr_linenumber" name="115" href="#115">115</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getFormat__IsNotDefault())
 <a class="jxr_linenumber" name="116" href="#116">116</a>     {
-<a class="jxr_linenumber" name="117" href="#117">117</a>       p_implData.setDeadServers(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="117" href="#117">117</a>       p_implData.setFormat(<span class="jxr_string">"html"</span>);
 <a class="jxr_linenumber" name="118" href="#118">118</a>     }
-<a class="jxr_linenumber" name="119" href="#119">119</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getAssignmentManager__IsNotDefault())
+<a class="jxr_linenumber" name="119" href="#119">119</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getServerManager__IsNotDefault())
 <a class="jxr_linenumber" name="120" href="#120">120</a>     {
-<a class="jxr_linenumber" name="121" href="#121">121</a>       p_implData.setAssignmentManager(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="121" href="#121">121</a>       p_implData.setServerManager(<strong class="jxr_keyword">null</strong>);
 <a class="jxr_linenumber" name="122" href="#122">122</a>     }
-<a class="jxr_linenumber" name="123" href="#123">123</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getServers__IsNotDefault())
+<a class="jxr_linenumber" name="123" href="#123">123</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getFrags__IsNotDefault())
 <a class="jxr_linenumber" name="124" href="#124">124</a>     {
-<a class="jxr_linenumber" name="125" href="#125">125</a>       p_implData.setServers(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="125" href="#125">125</a>       p_implData.setFrags(<strong class="jxr_keyword">null</strong>);
 <a class="jxr_linenumber" name="126" href="#126">126</a>     }
-<a class="jxr_linenumber" name="127" href="#127">127</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getFormat__IsNotDefault())
+<a class="jxr_linenumber" name="127" href="#127">127</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getMetaLocation__IsNotDefault())
 <a class="jxr_linenumber" name="128" href="#128">128</a>     {
-<a class="jxr_linenumber" name="129" href="#129">129</a>       p_implData.setFormat(<span class="jxr_string">"html"</span>);
+<a class="jxr_linenumber" name="129" href="#129">129</a>       p_implData.setMetaLocation(<strong class="jxr_keyword">null</strong>);
 <a class="jxr_linenumber" name="130" href="#130">130</a>     }
-<a class="jxr_linenumber" name="131" href="#131">131</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getFilter__IsNotDefault())
+<a class="jxr_linenumber" name="131" href="#131">131</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getAssignmentManager__IsNotDefault())
 <a class="jxr_linenumber" name="132" href="#132">132</a>     {
-<a class="jxr_linenumber" name="133" href="#133">133</a>       p_implData.setFilter(<span class="jxr_string">"general"</span>);
+<a class="jxr_linenumber" name="133" href="#133">133</a>       p_implData.setAssignmentManager(<strong class="jxr_keyword">null</strong>);
 <a class="jxr_linenumber" name="134" href="#134">134</a>     }
-<a class="jxr_linenumber" name="135" href="#135">135</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getServerManager__IsNotDefault())
+<a class="jxr_linenumber" name="135" href="#135">135</a>     <strong class="jxr_keyword">if</strong>(! p_implData.getServers__IsNotDefault())
 <a class="jxr_linenumber" name="136" href="#136">136</a>     {
-<a class="jxr_linenumber" name="137" href="#137">137</a>       p_implData.setServerManager(<strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="137" href="#137">137</a>       p_implData.setServers(<strong class="jxr_keyword">null</strong>);
 <a class="jxr_linenumber" name="138" href="#138">138</a>     }
 <a class="jxr_linenumber" name="139" href="#139">139</a>     <strong class="jxr_keyword">return</strong> p_implData;
 <a class="jxr_linenumber" name="140" href="#140">140</a>   }
@@ -152,15 +152,15 @@
 <a class="jxr_linenumber" name="142" href="#142">142</a>   {
 <a class="jxr_linenumber" name="143" href="#143">143</a>     <strong class="jxr_keyword">super</strong>(p_templateManager, __jamon_setOptionalArguments(p_implData));
 <a class="jxr_linenumber" name="144" href="#144">144</a>     master = p_implData.getMaster();
-<a class="jxr_linenumber" name="145" href="#145">145</a>     frags = p_implData.getFrags();
-<a class="jxr_linenumber" name="146" href="#146">146</a>     metaLocation = p_implData.getMetaLocation();
+<a class="jxr_linenumber" name="145" href="#145">145</a>     filter = p_implData.getFilter();
+<a class="jxr_linenumber" name="146" href="#146">146</a>     deadServers = p_implData.getDeadServers();
 <a class="jxr_linenumber" name="147" href="#147">147</a>     catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();
-<a class="jxr_linenumber" name="148" href="#148">148</a>     deadServers = p_implData.getDeadServers();
-<a class="jxr_linenumber" name="149" href="#149">149</a>     assignmentManager = p_implData.getAssignmentManager();
-<a class="jxr_linenumber" name="150" href="#150">150</a>     servers = p_implData.getServers();
-<a class="jxr_linenumber" name="151" href="#151">151</a>     format = p_implData.getFormat();
-<a class="jxr_linenumber" name="152" href="#152">152</a>     filter = p_implData.getFilter();
-<a class="jxr_linenumber" name="153" href="#153">153</a>     serverManager = p_implData.getServerManager();
+<a class="jxr_linenumber" name="148" href="#148">148</a>     format = p_implData.getFormat();
+<a class="jxr_linenumber" name="149" href="#149">149</a>     serverManager = p_implData.getServerManager();
+<a class="jxr_linenumber" name="150" href="#150">150</a>     frags = p_implData.getFrags();
+<a class="jxr_linenumber" name="151" href="#151">151</a>     metaLocation = p_implData.getMetaLocation();
+<a class="jxr_linenumber" name="152" href="#152">152</a>     assignmentManager = p_implData.getAssignmentManager();
+<a class="jxr_linenumber" name="153" href="#153">153</a>     servers = p_implData.getServers();
 <a class="jxr_linenumber" name="154" href="#154">154</a>   }
 <a class="jxr_linenumber" name="155" href="#155">155</a>
 <a class="jxr_linenumber" name="156" href="#156">156</a>   @Override <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> renderNoFlush(<strong class="jxr_keyword">final</strong> java.io.Writer jamonWriter)

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/xref/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
index a291078..e447277 100644
--- a/xref/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
+++ b/xref/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
@@ -36,9 +36,9 @@
 <a class="jxr_linenumber" name="26" href="#26">26</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"regionServer"</span>, type = <span class="jxr_string">"HRegionServer"</span>)},
 <a class="jxr_linenumber" name="27" href="#27">27</a>    optionalArguments = {
 <a class="jxr_linenumber" name="28" href="#28">28</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"bcv"</span>, type = <span class="jxr_string">"String"</span>),
-<a class="jxr_linenumber" name="29" href="#29">29</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"bcn"</span>, type = <span class="jxr_string">"String"</span>),
-<a class="jxr_linenumber" name="30" href="#30">30</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"format"</span>, type = <span class="jxr_string">"String"</span>),
-<a class="jxr_linenumber" name="31" href="#31">31</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"filter"</span>, type = <span class="jxr_string">"String"</span>)})
+<a class="jxr_linenumber" name="29" href="#29">29</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"filter"</span>, type = <span class="jxr_string">"String"</span>),
+<a class="jxr_linenumber" name="30" href="#30">30</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"bcn"</span>, type = <span class="jxr_string">"String"</span>),
+<a class="jxr_linenumber" name="31" href="#31">31</a>      @org.jamon.annotations.Argument(name = <span class="jxr_string">"format"</span>, type = <span class="jxr_string">"String"</span>)})
 <a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html">RSStatusTmpl</a>
 <a class="jxr_linenumber" name="33" href="#33">33</a>    <strong class="jxr_keyword">extends</strong> org.jamon.AbstractTemplateProxy
 <a class="jxr_linenumber" name="34" href="#34">34</a>  {
@@ -96,57 +96,57 @@
 <a class="jxr_linenumber" name="86" href="#86">86</a>        <strong class="jxr_keyword">return</strong> m_bcv__IsNotDefault;
 <a class="jxr_linenumber" name="87" href="#87">87</a>      }
 <a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_bcv__IsNotDefault;
-<a class="jxr_linenumber" name="89" href="#89">89</a>      <em class="jxr_comment">// 23, 1</em>
-<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setBcn(String bcn)
+<a class="jxr_linenumber" name="89" href="#89">89</a>      <em class="jxr_comment">// 21, 1</em>
+<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFilter(String filter)
 <a class="jxr_linenumber" name="91" href="#91">91</a>      {
-<a class="jxr_linenumber" name="92" href="#92">92</a>        <em class="jxr_comment">// 23, 1</em>
-<a class="jxr_linenumber" name="93" href="#93">93</a>        m_bcn = bcn;
-<a class="jxr_linenumber" name="94" href="#94">94</a>        m_bcn__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="92" href="#92">92</a>        <em class="jxr_comment">// 21, 1</em>
+<a class="jxr_linenumber" name="93" href="#93">93</a>        m_filter = filter;
+<a class="jxr_linenumber" name="94" href="#94">94</a>        m_filter__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="95" href="#95">95</a>      }
-<a class="jxr_linenumber" name="96" href="#96">96</a>      <strong class="jxr_keyword">public</strong> String getBcn()
+<a class="jxr_linenumber" name="96" href="#96">96</a>      <strong class="jxr_keyword">public</strong> String getFilter()
 <a class="jxr_linenumber" name="97" href="#97">97</a>      {
-<a class="jxr_linenumber" name="98" href="#98">98</a>        <strong class="jxr_keyword">return</strong> m_bcn;
+<a class="jxr_linenumber" name="98" href="#98">98</a>        <strong class="jxr_keyword">return</strong> m_filter;
 <a class="jxr_linenumber" name="99" href="#99">99</a>      }
-<a class="jxr_linenumber" name="100" href="#100">100</a>     <strong class="jxr_keyword">private</strong> String m_bcn;
-<a class="jxr_linenumber" name="101" href="#101">101</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getBcn__IsNotDefault()
+<a class="jxr_linenumber" name="100" href="#100">100</a>     <strong class="jxr_keyword">private</strong> String m_filter;
+<a class="jxr_linenumber" name="101" href="#101">101</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getFilter__IsNotDefault()
 <a class="jxr_linenumber" name="102" href="#102">102</a>     {
-<a class="jxr_linenumber" name="103" href="#103">103</a>       <strong class="jxr_keyword">return</strong> m_bcn__IsNotDefault;
+<a class="jxr_linenumber" name="103" href="#103">103</a>       <strong class="jxr_keyword">return</strong> m_filter__IsNotDefault;
 <a class="jxr_linenumber" name="104" href="#104">104</a>     }
-<a class="jxr_linenumber" name="105" href="#105">105</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_bcn__IsNotDefault;
-<a class="jxr_linenumber" name="106" href="#106">106</a>     <em class="jxr_comment">// 22, 1</em>
-<a class="jxr_linenumber" name="107" href="#107">107</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFormat(String format)
+<a class="jxr_linenumber" name="105" href="#105">105</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_filter__IsNotDefault;
+<a class="jxr_linenumber" name="106" href="#106">106</a>     <em class="jxr_comment">// 23, 1</em>
+<a class="jxr_linenumber" name="107" href="#107">107</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setBcn(String bcn)
 <a class="jxr_linenumber" name="108" href="#108">108</a>     {
-<a class="jxr_linenumber" name="109" href="#109">109</a>       <em class="jxr_comment">// 22, 1</em>
-<a class="jxr_linenumber" name="110" href="#110">110</a>       m_format = format;
-<a class="jxr_linenumber" name="111" href="#111">111</a>       m_format__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="109" href="#109">109</a>       <em class="jxr_comment">// 23, 1</em>
+<a class="jxr_linenumber" name="110" href="#110">110</a>       m_bcn = bcn;
+<a class="jxr_linenumber" name="111" href="#111">111</a>       m_bcn__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="112" href="#112">112</a>     }
-<a class="jxr_linenumber" name="113" href="#113">113</a>     <strong class="jxr_keyword">public</strong> String getFormat()
+<a class="jxr_linenumber" name="113" href="#113">113</a>     <strong class="jxr_keyword">public</strong> String getBcn()
 <a class="jxr_linenumber" name="114" href="#114">114</a>     {
-<a class="jxr_linenumber" name="115" href="#115">115</a>       <strong class="jxr_keyword">return</strong> m_format;
+<a class="jxr_linenumber" name="115" href="#115">115</a>       <strong class="jxr_keyword">return</strong> m_bcn;
 <a class="jxr_linenumber" name="116" href="#116">116</a>     }
-<a class="jxr_linenumber" name="117" href="#117">117</a>     <strong class="jxr_keyword">private</strong> String m_format;
-<a class="jxr_linenumber" name="118" href="#118">118</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getFormat__IsNotDefault()
+<a class="jxr_linenumber" name="117" href="#117">117</a>     <strong class="jxr_keyword">private</strong> String m_bcn;
+<a class="jxr_linenumber" name="118" href="#118">118</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getBcn__IsNotDefault()
 <a class="jxr_linenumber" name="119" href="#119">119</a>     {
-<a class="jxr_linenumber" name="120" href="#120">120</a>       <strong class="jxr_keyword">return</strong> m_format__IsNotDefault;
+<a class="jxr_linenumber" name="120" href="#120">120</a>       <strong class="jxr_keyword">return</strong> m_bcn__IsNotDefault;
 <a class="jxr_linenumber" name="121" href="#121">121</a>     }
-<a class="jxr_linenumber" name="122" href="#122">122</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_format__IsNotDefault;
-<a class="jxr_linenumber" name="123" href="#123">123</a>     <em class="jxr_comment">// 21, 1</em>
-<a class="jxr_linenumber" name="124" href="#124">124</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFilter(String filter)
+<a class="jxr_linenumber" name="122" href="#122">122</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_bcn__IsNotDefault;
+<a class="jxr_linenumber" name="123" href="#123">123</a>     <em class="jxr_comment">// 22, 1</em>
+<a class="jxr_linenumber" name="124" href="#124">124</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFormat(String format)
 <a class="jxr_linenumber" name="125" href="#125">125</a>     {
-<a class="jxr_linenumber" name="126" href="#126">126</a>       <em class="jxr_comment">// 21, 1</em>
-<a class="jxr_linenumber" name="127" href="#127">127</a>       m_filter = filter;
-<a class="jxr_linenumber" name="128" href="#128">128</a>       m_filter__IsNotDefault = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="126" href="#126">126</a>       <em class="jxr_comment">// 22, 1</em>
+<a class="jxr_linenumber" name="127" href="#127">127</a>       m_format = format;
+<a class="jxr_linenumber" name="128" href="#128">128</a>       m_format__IsNotDefault = <strong class="jxr_keyword">true</strong>;
 <a class="jxr_linenumber" name="129" href="#129">129</a>     }
-<a class="jxr_linenumber" name="130" href="#130">130</a>     <strong class="jxr_keyword">public</strong> String getFilter()
+<a class="jxr_linenumber" name="130" href="#130">130</a>     <strong class="jxr_keyword">public</strong> String getFormat()
 <a class="jxr_linenumber" name="131" href="#131">131</a>     {
-<a class="jxr_linenumber" name="132" href="#132">132</a>       <strong class="jxr_keyword">return</strong> m_filter;
+<a class="jxr_linenumber" name="132" href="#132">132</a>       <strong class="jxr_keyword">return</strong> m_format;
 <a class="jxr_linenumber" name="133" href="#133">133</a>     }
-<a class="jxr_linenumber" name="134" href="#134">134</a>     <strong class="jxr_keyword">private</strong> String m_filter;
-<a class="jxr_linenumber" name="135" href="#135">135</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getFilter__IsNotDefault()
+<a class="jxr_linenumber" name="134" href="#134">134</a>     <strong class="jxr_keyword">private</strong> String m_format;
+<a class="jxr_linenumber" name="135" href="#135">135</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getFormat__IsNotDefault()
 <a class="jxr_linenumber" name="136" href="#136">136</a>     {
-<a class="jxr_linenumber" name="137" href="#137">137</a>       <strong class="jxr_keyword">return</strong> m_filter__IsNotDefault;
+<a class="jxr_linenumber" name="137" href="#137">137</a>       <strong class="jxr_keyword">return</strong> m_format__IsNotDefault;
 <a class="jxr_linenumber" name="138" href="#138">138</a>     }
-<a class="jxr_linenumber" name="139" href="#139">139</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_filter__IsNotDefault;
+<a class="jxr_linenumber" name="139" href="#139">139</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_format__IsNotDefault;
 <a class="jxr_linenumber" name="140" href="#140">140</a>   }
 <a class="jxr_linenumber" name="141" href="#141">141</a>   @Override
 <a class="jxr_linenumber" name="142" href="#142">142</a>   <strong class="jxr_keyword">protected</strong> org.jamon.AbstractTemplateProxy.ImplData makeImplData()
@@ -165,24 +165,24 @@
 <a class="jxr_linenumber" name="155" href="#155">155</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="156" href="#156">156</a>   }
 <a class="jxr_linenumber" name="157" href="#157">157</a>   
-<a class="jxr_linenumber" name="158" href="#158">158</a>   <strong class="jxr_keyword">protected</strong> String bcn;
-<a class="jxr_linenumber" name="159" href="#159">159</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)
+<a class="jxr_linenumber" name="158" href="#158">158</a>   <strong class="jxr_keyword">protected</strong> String filter;
+<a class="jxr_linenumber" name="159" href="#159">159</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)
 <a class="jxr_linenumber" name="160" href="#160">160</a>   {
-<a class="jxr_linenumber" name="161" href="#161">161</a>     (getImplData()).setBcn(p_bcn);
+<a class="jxr_linenumber" name="161" href="#161">161</a>     (getImplData()).setFilter(p_filter);
 <a class="jxr_linenumber" name="162" href="#162">162</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="163" href="#163">163</a>   }
 <a class="jxr_linenumber" name="164" href="#164">164</a>   
-<a class="jxr_linenumber" name="165" href="#165">165</a>   <strong class="jxr_keyword">protected</strong> String format;
-<a class="jxr_linenumber" name="166" href="#166">166</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)
+<a class="jxr_linenumber" name="165" href="#165">165</a>   <strong class="jxr_keyword">protected</strong> String bcn;
+<a class="jxr_linenumber" name="166" href="#166">166</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)
 <a class="jxr_linenumber" name="167" href="#167">167</a>   {
-<a class="jxr_linenumber" name="168" href="#168">168</a>     (getImplData()).setFormat(p_format);
+<a class="jxr_linenumber" name="168" href="#168">168</a>     (getImplData()).setBcn(p_bcn);
 <a class="jxr_linenumber" name="169" href="#169">169</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="170" href="#170">170</a>   }
 <a class="jxr_linenumber" name="171" href="#171">171</a>   
-<a class="jxr_linenumber" name="172" href="#172">172</a>   <strong class="jxr_keyword">protected</strong> String filter;
-<a class="jxr_linenumber" name="173" href="#173">173</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)
+<a class="jxr_linenumber" name="172" href="#172">172</a>   <strong class="jxr_keyword">protected</strong> String format;
+<a class="jxr_linenumber" name="173" href="#173">173</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFormat(String p_format)
 <a class="jxr_linenumber" name="174" href="#174">174</a>   {
-<a class="jxr_linenumber" name="175" href="#175">175</a>     (getImplData()).setFilter(p_filter);
+<a class="jxr_linenumber" name="175" href="#175">175</a>     (getImplData()).setFormat(p_format);
 <a class="jxr_linenumber" name="176" href="#176">176</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
 <a class="jxr_linenumber" name="177" href="#177">177</a>   }
 <a class="jxr_linenumber" name="178" href="#178">178</a>   

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/xref/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/xref/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html b/xref/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
index 37f740a..4d92051 100644
--- a/xref/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
+++ b/xref/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
@@ -37,26 +37,26 @@
 <a class="jxr_linenumber" name="27" href="#27">27</a>  {
 <a class="jxr_linenumber" name="28" href="#28">28</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html">HRegionServer</a> regionServer;
 <a class="jxr_linenumber" name="29" href="#29">29</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String bcv;
-<a class="jxr_linenumber" name="30" href="#30">30</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String bcn;
-<a class="jxr_linenumber" name="31" href="#31">31</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String format;
-<a class="jxr_linenumber" name="32" href="#32">32</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String filter;
+<a class="jxr_linenumber" name="30" href="#30">30</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String filter;
+<a class="jxr_linenumber" name="31" href="#31">31</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String bcn;
+<a class="jxr_linenumber" name="32" href="#32">32</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String format;
 <a class="jxr_linenumber" name="33" href="#33">33</a>    <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData p_implData)
 <a class="jxr_linenumber" name="34" href="#34">34</a>    {
 <a class="jxr_linenumber" name="35" href="#35">35</a>      <strong class="jxr_keyword">if</strong>(! p_implData.getBcv__IsNotDefault())
 <a class="jxr_linenumber" name="36" href="#36">36</a>      {
 <a class="jxr_linenumber" name="37" href="#37">37</a>        p_implData.setBcv(<span class="jxr_string">""</span>);
 <a class="jxr_linenumber" name="38" href="#38">38</a>      }
-<a class="jxr_linenumber" name="39" href="#39">39</a>      <strong class="jxr_keyword">if</strong>(! p_implData.getBcn__IsNotDefault())
+<a class="jxr_linenumber" name="39" href="#39">39</a>      <strong class="jxr_keyword">if</strong>(! p_implData.getFilter__IsNotDefault())
 <a class="jxr_linenumber" name="40" href="#40">40</a>      {
-<a class="jxr_linenumber" name="41" href="#41">41</a>        p_implData.setBcn(<span class="jxr_string">""</span>);
+<a class="jxr_linenumber" name="41" href="#41">41</a>        p_implData.setFilter(<span class="jxr_string">"general"</span>);
 <a class="jxr_linenumber" name="42" href="#42">42</a>      }
-<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">if</strong>(! p_implData.getFormat__IsNotDefault())
+<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">if</strong>(! p_implData.getBcn__IsNotDefault())
 <a class="jxr_linenumber" name="44" href="#44">44</a>      {
-<a class="jxr_linenumber" name="45" href="#45">45</a>        p_implData.setFormat(<span class="jxr_string">"html"</span>);
+<a class="jxr_linenumber" name="45" href="#45">45</a>        p_implData.setBcn(<span class="jxr_string">""</span>);
 <a class="jxr_linenumber" name="46" href="#46">46</a>      }
-<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">if</strong>(! p_implData.getFilter__IsNotDefault())
+<a class="jxr_linenumber" name="47" href="#47">47</a>      <strong class="jxr_keyword">if</strong>(! p_implData.getFormat__IsNotDefault())
 <a class="jxr_linenumber" name="48" href="#48">48</a>      {
-<a class="jxr_linenumber" name="49" href="#49">49</a>        p_implData.setFilter(<span class="jxr_string">"general"</span>);
+<a class="jxr_linenumber" name="49" href="#49">49</a>        p_implData.setFormat(<span class="jxr_string">"html"</span>);
 <a class="jxr_linenumber" name="50" href="#50">50</a>      }
 <a class="jxr_linenumber" name="51" href="#51">51</a>      <strong class="jxr_keyword">return</strong> p_implData;
 <a class="jxr_linenumber" name="52" href="#52">52</a>    }
@@ -65,9 +65,9 @@
 <a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">super</strong>(p_templateManager, __jamon_setOptionalArguments(p_implData));
 <a class="jxr_linenumber" name="56" href="#56">56</a>      regionServer = p_implData.getRegionServer();
 <a class="jxr_linenumber" name="57" href="#57">57</a>      bcv = p_implData.getBcv();
-<a class="jxr_linenumber" name="58" href="#58">58</a>      bcn = p_implData.getBcn();
-<a class="jxr_linenumber" name="59" href="#59">59</a>      format = p_implData.getFormat();
-<a class="jxr_linenumber" name="60" href="#60">60</a>      filter = p_implData.getFilter();
+<a class="jxr_linenumber" name="58" href="#58">58</a>      filter = p_implData.getFilter();
+<a class="jxr_linenumber" name="59" href="#59">59</a>      bcn = p_implData.getBcn();
+<a class="jxr_linenumber" name="60" href="#60">60</a>      format = p_implData.getFormat();
 <a class="jxr_linenumber" name="61" href="#61">61</a>    }
 <a class="jxr_linenumber" name="62" href="#62">62</a>    
 <a class="jxr_linenumber" name="63" href="#63">63</a>    @Override <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> renderNoFlush(<strong class="jxr_keyword">final</strong> java.io.Writer jamonWriter)


[24/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html
index 6d25806..55fa666 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.LoadQueueItem.html
@@ -370,12 +370,12 @@
 <span class="sourceLineNo">362</span>   * @param regionLocator region locator<a name="line.362"></a>
 <span class="sourceLineNo">363</span>   * @param silence true to ignore unmatched column families<a name="line.363"></a>
 <span class="sourceLineNo">364</span>   * @param copyFile always copy hfiles if true<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * @return List of filenames which were not found<a name="line.365"></a>
+<span class="sourceLineNo">365</span>   * @return Map of LoadQueueItem to region<a name="line.365"></a>
 <span class="sourceLineNo">366</span>   * @throws TableNotFoundException if table does not yet exist<a name="line.366"></a>
 <span class="sourceLineNo">367</span>   */<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  public List&lt;String&gt; doBulkLoad(Map&lt;byte[], List&lt;Path&gt;&gt; map, final Admin admin, Table table,<a name="line.368"></a>
-<span class="sourceLineNo">369</span>          RegionLocator regionLocator, boolean silence, boolean copyFile)<a name="line.369"></a>
-<span class="sourceLineNo">370</span>              throws TableNotFoundException, IOException {<a name="line.370"></a>
+<span class="sourceLineNo">368</span>  public Map&lt;LoadQueueItem, ByteBuffer&gt; doBulkLoad(Map&lt;byte[], List&lt;Path&gt;&gt; map, final Admin admin,<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      Table table, RegionLocator regionLocator, boolean silence, boolean copyFile)<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          throws TableNotFoundException, IOException {<a name="line.370"></a>
 <span class="sourceLineNo">371</span>    if (!admin.isTableAvailable(regionLocator.getName())) {<a name="line.371"></a>
 <span class="sourceLineNo">372</span>      throw new TableNotFoundException("Table " + table.getName() + " is not currently available.");<a name="line.372"></a>
 <span class="sourceLineNo">373</span>    }<a name="line.373"></a>
@@ -457,8 +457,8 @@
 <span class="sourceLineNo">449</span>    }<a name="line.449"></a>
 <span class="sourceLineNo">450</span>  }<a name="line.450"></a>
 <span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  List&lt;String&gt; performBulkLoad(final Admin admin, Table table, RegionLocator regionLocator,<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      Deque&lt;LoadQueueItem&gt; queue, ExecutorService pool,<a name="line.453"></a>
+<span class="sourceLineNo">452</span>  Map&lt;LoadQueueItem, ByteBuffer&gt; performBulkLoad(final Admin admin, Table table,<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      RegionLocator regionLocator, Deque&lt;LoadQueueItem&gt; queue, ExecutorService pool,<a name="line.453"></a>
 <span class="sourceLineNo">454</span>      SecureBulkLoadClient secureClient, boolean copyFile) throws IOException {<a name="line.454"></a>
 <span class="sourceLineNo">455</span>    int count = 0;<a name="line.455"></a>
 <span class="sourceLineNo">456</span><a name="line.456"></a>
@@ -472,802 +472,815 @@
 <span class="sourceLineNo">464</span>    // fs is the source filesystem<a name="line.464"></a>
 <span class="sourceLineNo">465</span>    fsDelegationToken.acquireDelegationToken(fs);<a name="line.465"></a>
 <span class="sourceLineNo">466</span>    bulkToken = secureClient.prepareBulkLoad(admin.getConnection());<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; pair = null;<a name="line.467"></a>
+<span class="sourceLineNo">467</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; pair = null;<a name="line.467"></a>
 <span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // Assumes that region splits can happen while this occurs.<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    while (!queue.isEmpty()) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      // need to reload split keys each iteration.<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys = regionLocator.getStartEndKeys();<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (count != 0) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        LOG.info("Split occured while grouping HFiles, retry attempt " +<a name="line.474"></a>
-<span class="sourceLineNo">475</span>            + count + " with " + queue.size() + " files remaining to group or split");<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>      int maxRetries = getConf().getInt(HConstants.BULKLOAD_MAX_RETRIES_NUMBER, 10);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      maxRetries = Math.max(maxRetries, startEndKeys.getFirst().length + 1);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      if (maxRetries != 0 &amp;&amp; count &gt;= maxRetries) {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        throw new IOException("Retry attempted " + count +<a name="line.481"></a>
-<span class="sourceLineNo">482</span>            " times without completing, bailing out");<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      }<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      count++;<a name="line.484"></a>
-<span class="sourceLineNo">485</span><a name="line.485"></a>
-<span class="sourceLineNo">486</span>      // Using ByteBuffer for byte[] equality semantics<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      pair = groupOrSplitPhase(table, pool, queue, startEndKeys);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = pair.getFirst();<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span>      if (!checkHFilesCountPerRegionPerFamily(regionGroups)) {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // Error is logged inside checkHFilesCountPerRegionPerFamily.<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        throw new IOException("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            + " hfiles to one family of one region");<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>      bulkLoadPhase(table, admin.getConnection(), pool, queue, regionGroups, copyFile);<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>      // NOTE: The next iteration's split / group could happen in parallel to<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      // atomic bulkloads assuming that there are splits and no merges, and<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      // that we can atomically pull out the groups we want to retry.<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>    if (!queue.isEmpty()) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      throw new RuntimeException("Bulk load aborted with some files not yet loaded."<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        + "Please check log for more details.");<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    if (pair == null) return null;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    return pair.getSecond();<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  }<a name="line.509"></a>
-<span class="sourceLineNo">510</span><a name="line.510"></a>
-<span class="sourceLineNo">511</span>  /**<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.513"></a>
-<span class="sourceLineNo">514</span>   * families in it.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   * @param table table to which hfiles should be loaded<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * @param queue queue which needs to be loaded into the table<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @throws IOException If any I/O or network error occurred<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   */<a name="line.520"></a>
-<span class="sourceLineNo">521</span>  public void prepareHFileQueue(Path hfilesDir, Table table, Deque&lt;LoadQueueItem&gt; queue,<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      boolean validateHFile) throws IOException {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    prepareHFileQueue(hfilesDir, table, queue, validateHFile, false);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>  /**<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.527"></a>
-<span class="sourceLineNo">528</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.528"></a>
-<span class="sourceLineNo">529</span>   * families in it.<a name="line.529"></a>
-<span class="sourceLineNo">530</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.530"></a>
-<span class="sourceLineNo">531</span>   * @param table table to which hfiles should be loaded<a name="line.531"></a>
-<span class="sourceLineNo">532</span>   * @param queue queue which needs to be loaded into the table<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @param silence  true to ignore unmatched column families<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * @throws IOException If any I/O or network error occurred<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   */<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  public void prepareHFileQueue(Path hfilesDir, Table table,<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      Deque&lt;LoadQueueItem&gt; queue, boolean validateHFile, boolean silence) throws IOException {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    discoverLoadQueue(queue, hfilesDir, validateHFile);<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>  /**<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.545"></a>
-<span class="sourceLineNo">546</span>   * families in it.<a name="line.546"></a>
-<span class="sourceLineNo">547</span>   * @param map map of family to List of hfiles<a name="line.547"></a>
-<span class="sourceLineNo">548</span>   * @param table table to which hfiles should be loaded<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * @param queue queue which needs to be loaded into the table<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * @param silence  true to ignore unmatched column families<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @throws IOException If any I/O or network error occurred<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public void prepareHFileQueue(Map&lt;byte[], List&lt;Path&gt;&gt; map, Table table,<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      Deque&lt;LoadQueueItem&gt; queue, boolean silence) throws IOException {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    populateLoadQueue(queue, map);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.556"></a>
-<span class="sourceLineNo">557</span>  }<a name="line.557"></a>
-<span class="sourceLineNo">558</span><a name="line.558"></a>
-<span class="sourceLineNo">559</span>  // Initialize a thread pool<a name="line.559"></a>
-<span class="sourceLineNo">560</span>  private ExecutorService createExecutorService() {<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    ThreadFactoryBuilder builder = new ThreadFactoryBuilder();<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    builder.setNameFormat("LoadIncrementalHFiles-%1$d");<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    ExecutorService pool = new ThreadPoolExecutor(nrThreads, nrThreads, 60, TimeUnit.SECONDS,<a name="line.563"></a>
-<span class="sourceLineNo">564</span>        new LinkedBlockingQueue&lt;Runnable&gt;(), builder.build());<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    ((ThreadPoolExecutor) pool).allowCoreThreadTimeOut(true);<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    return pool;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>  /**<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   * Checks whether there is any invalid family name in HFiles to be bulk loaded.<a name="line.570"></a>
-<span class="sourceLineNo">571</span>   */<a name="line.571"></a>
-<span class="sourceLineNo">572</span>  private void validateFamiliesInHFiles(Table table, Deque&lt;LoadQueueItem&gt; queue, boolean silence)<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      throws IOException {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    Collection&lt;HColumnDescriptor&gt; families = table.getTableDescriptor().getFamilies();<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    List&lt;String&gt; familyNames = new ArrayList&lt;&gt;(families.size());<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    for (HColumnDescriptor family : families) {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      familyNames.add(family.getNameAsString());<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    }<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    Iterator&lt;LoadQueueItem&gt; queueIter = queue.iterator();<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    while (queueIter.hasNext()) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      LoadQueueItem lqi = queueIter.next();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      String familyNameInHFile = Bytes.toString(lqi.family);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      if (!familyNames.contains(familyNameInHFile)) {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        unmatchedFamilies.add(familyNameInHFile);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      }<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    if (unmatchedFamilies.size() &gt; 0) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      String msg =<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          "Unmatched family names found: unmatched family names in HFiles to be bulkloaded: "<a name="line.589"></a>
-<span class="sourceLineNo">590</span>              + unmatchedFamilies + "; valid family names of table " + table.getName() + " are: "<a name="line.590"></a>
-<span class="sourceLineNo">591</span>              + familyNames;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      LOG.error(msg);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      if (!silence) throw new IOException(msg);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>  /**<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * &lt;ol&gt;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * &lt;/li&gt;<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   * &lt;/ol&gt;<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   * @param table Table to which these hfiles should be loaded to<a name="line.604"></a>
-<span class="sourceLineNo">605</span>   * @param conn Connection to use<a name="line.605"></a>
-<span class="sourceLineNo">606</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.606"></a>
-<span class="sourceLineNo">607</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    loadHFileQueue(table, conn, queue, startEndKeys, false);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>  }<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>  /**<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   * &lt;ol&gt;<a name="line.616"></a>
-<span class="sourceLineNo">617</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.617"></a>
-<span class="sourceLineNo">618</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.618"></a>
-<span class="sourceLineNo">619</span>   * &lt;/li&gt;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>   * &lt;/ol&gt;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>   * @param table Table to which these hfiles should be loaded to<a name="line.621"></a>
-<span class="sourceLineNo">622</span>   * @param conn Connection to use<a name="line.622"></a>
-<span class="sourceLineNo">623</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.624"></a>
-<span class="sourceLineNo">625</span>   */<a name="line.625"></a>
-<span class="sourceLineNo">626</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys, boolean copyFile) throws IOException {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    ExecutorService pool = null;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    try {<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      pool = createExecutorService();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups =<a name="line.631"></a>
-<span class="sourceLineNo">632</span>          groupOrSplitPhase(table, pool, queue, startEndKeys).getFirst();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      bulkLoadPhase(table, conn, pool, queue, regionGroups, copyFile);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    } finally {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      if (pool != null) {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>        pool.shutdown();<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      }<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    }<a name="line.638"></a>
-<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
-<span class="sourceLineNo">640</span><a name="line.640"></a>
-<span class="sourceLineNo">641</span>  /**<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * This takes the LQI's grouped by likely regions and attempts to bulk load<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * them.  Any failures are re-queued for another pass with the<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * groupOrSplitPhase.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   */<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  protected void bulkLoadPhase(final Table table, final Connection conn,<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, boolean copyFile) throws IOException {<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    // atomically bulk load the groups.<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    Set&lt;Future&lt;List&lt;LoadQueueItem&gt;&gt;&gt; loadingFutures = new HashSet&lt;&gt;();<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    for (Entry&lt;ByteBuffer, ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()){<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      final byte[] first = e.getKey().array();<a name="line.652"></a>
-<span class="sourceLineNo">653</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.653"></a>
-<span class="sourceLineNo">654</span><a name="line.654"></a>
-<span class="sourceLineNo">655</span>      final Callable&lt;List&lt;LoadQueueItem&gt;&gt; call = new Callable&lt;List&lt;LoadQueueItem&gt;&gt;() {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>        @Override<a name="line.656"></a>
-<span class="sourceLineNo">657</span>        public List&lt;LoadQueueItem&gt; call() throws Exception {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>          List&lt;LoadQueueItem&gt; toRetry =<a name="line.658"></a>
-<span class="sourceLineNo">659</span>              tryAtomicRegionLoad(conn, table.getName(), first, lqis, copyFile);<a name="line.659"></a>
-<span class="sourceLineNo">660</span>          return toRetry;<a name="line.660"></a>
-<span class="sourceLineNo">661</span>        }<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      };<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      loadingFutures.add(pool.submit(call));<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span><a name="line.665"></a>
-<span class="sourceLineNo">666</span>    // get all the results.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    for (Future&lt;List&lt;LoadQueueItem&gt;&gt; future : loadingFutures) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      try {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        List&lt;LoadQueueItem&gt; toRetry = future.get();<a name="line.669"></a>
-<span class="sourceLineNo">670</span><a name="line.670"></a>
-<span class="sourceLineNo">671</span>        // LQIs that are requeued to be regrouped.<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        queue.addAll(toRetry);<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>      } catch (ExecutionException e1) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        Throwable t = e1.getCause();<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        if (t instanceof IOException) {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          // At this point something unrecoverable has happened.<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          // TODO Implement bulk load recovery<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          throw new IOException("BulkLoad encountered an unrecoverable problem", t);<a name="line.679"></a>
-<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        LOG.error("Unexpected execution exception during bulk load", e1);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        throw new IllegalStateException(t);<a name="line.682"></a>
-<span class="sourceLineNo">683</span>      } catch (InterruptedException e1) {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>        LOG.error("Unexpected interrupted exception during bulk load", e1);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>      }<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    }<a name="line.687"></a>
-<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
-<span class="sourceLineNo">689</span><a name="line.689"></a>
-<span class="sourceLineNo">690</span>  private boolean checkHFilesCountPerRegionPerFamily(<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    for (Entry&lt;ByteBuffer,<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()) {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      HashMap&lt;byte[], MutableInt&gt; filesMap = new HashMap&lt;&gt;();<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      for (LoadQueueItem lqi: lqis) {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        MutableInt count = filesMap.get(lqi.family);<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        if (count == null) {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>          count = new MutableInt();<a name="line.699"></a>
-<span class="sourceLineNo">700</span>          filesMap.put(lqi.family, count);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        count.increment();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>        if (count.intValue() &gt; maxFilesPerRegionPerFamily) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>          LOG.error("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.704"></a>
-<span class="sourceLineNo">705</span>            + " hfiles to family " + Bytes.toStringBinary(lqi.family)<a name="line.705"></a>
-<span class="sourceLineNo">706</span>            + " of region with start key "<a name="line.706"></a>
-<span class="sourceLineNo">707</span>            + Bytes.toStringBinary(e.getKey()));<a name="line.707"></a>
-<span class="sourceLineNo">708</span>          return false;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        }<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    return true;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  }<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>  /**<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * @param table the table to load into<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * @param pool the ExecutorService<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   * @param queue the queue for LoadQueueItem<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   * @param startEndKeys start and end keys<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * @return A map that groups LQI by likely bulk load region targets and List of missing hfiles.<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   */<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  private Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; groupOrSplitPhase(<a name="line.722"></a>
-<span class="sourceLineNo">723</span>      final Table table, ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    // &lt;region start key, LQI&gt; need synchronized only within this scope of this<a name="line.725"></a>
-<span class="sourceLineNo">726</span>    // phase because of the puts that happen in futures.<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    Multimap&lt;ByteBuffer, LoadQueueItem&gt; rgs = HashMultimap.create();<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = Multimaps.synchronizedMultimap(rgs);<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    List&lt;String&gt; missingHFiles = new ArrayList&lt;&gt;();<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; pair = new Pair&lt;&gt;(regionGroups,<a name="line.730"></a>
-<span class="sourceLineNo">731</span>        missingHFiles);<a name="line.731"></a>
-<span class="sourceLineNo">732</span><a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // drain LQIs and figure out bulk load groups<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    Set&lt;Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;&gt; splittingFutures = new HashSet&lt;&gt;();<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    while (!queue.isEmpty()) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      final LoadQueueItem item = queue.remove();<a name="line.736"></a>
-<span class="sourceLineNo">737</span><a name="line.737"></a>
-<span class="sourceLineNo">738</span>      final Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; call =<a name="line.738"></a>
-<span class="sourceLineNo">739</span>          new Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;() {<a name="line.739"></a>
-<span class="sourceLineNo">740</span>        @Override<a name="line.740"></a>
-<span class="sourceLineNo">741</span>        public Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; call() throws Exception {<a name="line.741"></a>
-<span class="sourceLineNo">742</span>          Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = groupOrSplit(regionGroups, item, table,<a name="line.742"></a>
-<span class="sourceLineNo">743</span>              startEndKeys);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>          return splits;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>        }<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      };<a name="line.746"></a>
-<span class="sourceLineNo">747</span>      splittingFutures.add(pool.submit(call));<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    }<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    // get all the results.  All grouping and splitting must finish before<a name="line.749"></a>
-<span class="sourceLineNo">750</span>    // we can attempt the atomic loads.<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    for (Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; lqis : splittingFutures) {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>      try {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>        Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = lqis.get();<a name="line.753"></a>
-<span class="sourceLineNo">754</span>        if (splits != null) {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>          if (splits.getFirst() != null) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>            queue.addAll(splits.getFirst());<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          } else {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>            missingHFiles.add(splits.getSecond());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
-<span class="sourceLineNo">761</span>      } catch (ExecutionException e1) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>        Throwable t = e1.getCause();<a name="line.762"></a>
-<span class="sourceLineNo">763</span>        if (t instanceof IOException) {<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          LOG.error("IOException during splitting", e1);<a name="line.764"></a>
-<span class="sourceLineNo">765</span>          throw (IOException)t; // would have been thrown if not parallelized,<a name="line.765"></a>
-<span class="sourceLineNo">766</span>        }<a name="line.766"></a>
-<span class="sourceLineNo">767</span>        LOG.error("Unexpected execution exception during splitting", e1);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>        throw new IllegalStateException(t);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      } catch (InterruptedException e1) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>        LOG.error("Unexpected interrupted exception during splitting", e1);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    }<a name="line.773"></a>
-<span class="sourceLineNo">774</span>    return pair;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>  }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>  // unique file name for the table<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  private String getUniqueName() {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    return UUID.randomUUID().toString().replaceAll("-", "");<a name="line.779"></a>
-<span class="sourceLineNo">780</span>  }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>  protected List&lt;LoadQueueItem&gt; splitStoreFile(final LoadQueueItem item,<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      final Table table, byte[] startKey,<a name="line.783"></a>
-<span class="sourceLineNo">784</span>      byte[] splitKey) throws IOException {<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    final Path hfilePath = item.hfilePath;<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>    Path tmpDir = item.hfilePath.getParent();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    if (!tmpDir.getName().equals(TMP_DIR)) {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      tmpDir = new Path(tmpDir, TMP_DIR);<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    }<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>    LOG.info("HFile at " + hfilePath + " no longer fits inside a single " +<a name="line.792"></a>
-<span class="sourceLineNo">793</span>      "region. Splitting...");<a name="line.793"></a>
-<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>    String uniqueName = getUniqueName();<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    HColumnDescriptor familyDesc = table.getTableDescriptor().getFamily(item.family);<a name="line.796"></a>
-<span class="sourceLineNo">797</span><a name="line.797"></a>
-<span class="sourceLineNo">798</span>    Path botOut = new Path(tmpDir, uniqueName + ".bottom");<a name="line.798"></a>
-<span class="sourceLineNo">799</span>    Path topOut = new Path(tmpDir, uniqueName + ".top");<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    splitStoreFile(getConf(), hfilePath, familyDesc, splitKey, botOut, topOut);<a name="line.800"></a>
-<span class="sourceLineNo">801</span><a name="line.801"></a>
-<span class="sourceLineNo">802</span>    FileSystem fs = tmpDir.getFileSystem(getConf());<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    fs.setPermission(tmpDir, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    fs.setPermission(botOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    fs.setPermission(topOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.805"></a>
+<span class="sourceLineNo">469</span>    Map&lt;LoadQueueItem, ByteBuffer&gt; item2RegionMap = new HashMap&lt;&gt;();<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    // Assumes that region splits can happen while this occurs.<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    while (!queue.isEmpty()) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      // need to reload split keys each iteration.<a name="line.472"></a>
+<span class="sourceLineNo">473</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys = regionLocator.getStartEndKeys();<a name="line.473"></a>
+<span class="sourceLineNo">474</span>      if (count != 0) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        LOG.info("Split occured while grouping HFiles, retry attempt " +<a name="line.475"></a>
+<span class="sourceLineNo">476</span>            + count + " with " + queue.size() + " files remaining to group or split");<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      }<a name="line.477"></a>
+<span class="sourceLineNo">478</span><a name="line.478"></a>
+<span class="sourceLineNo">479</span>      int maxRetries = getConf().getInt(HConstants.BULKLOAD_MAX_RETRIES_NUMBER, 10);<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      maxRetries = Math.max(maxRetries, startEndKeys.getFirst().length + 1);<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      if (maxRetries != 0 &amp;&amp; count &gt;= maxRetries) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        throw new IOException("Retry attempted " + count +<a name="line.482"></a>
+<span class="sourceLineNo">483</span>            " times without completing, bailing out");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      count++;<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>      // Using ByteBuffer for byte[] equality semantics<a name="line.487"></a>
+<span class="sourceLineNo">488</span>      pair = groupOrSplitPhase(table, pool, queue, startEndKeys);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = pair.getFirst();<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>      if (!checkHFilesCountPerRegionPerFamily(regionGroups)) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        // Error is logged inside checkHFilesCountPerRegionPerFamily.<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        throw new IOException("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.493"></a>
+<span class="sourceLineNo">494</span>            + " hfiles to one family of one region");<a name="line.494"></a>
+<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
+<span class="sourceLineNo">496</span><a name="line.496"></a>
+<span class="sourceLineNo">497</span>      bulkLoadPhase(table, admin.getConnection(), pool, queue, regionGroups, copyFile,<a name="line.497"></a>
+<span class="sourceLineNo">498</span>          item2RegionMap);<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>      // NOTE: The next iteration's split / group could happen in parallel to<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      // atomic bulkloads assuming that there are splits and no merges, and<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      // that we can atomically pull out the groups we want to retry.<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    }<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span>    if (!queue.isEmpty()) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      throw new RuntimeException("Bulk load aborted with some files not yet loaded."<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        + "Please check log for more details.");<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    return item2RegionMap;<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>  /**<a name="line.512"></a>
+<span class="sourceLineNo">513</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.513"></a>
+<span class="sourceLineNo">514</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.514"></a>
+<span class="sourceLineNo">515</span>   * families in it.<a name="line.515"></a>
+<span class="sourceLineNo">516</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.516"></a>
+<span class="sourceLineNo">517</span>   * @param table table to which hfiles should be loaded<a name="line.517"></a>
+<span class="sourceLineNo">518</span>   * @param queue queue which needs to be loaded into the table<a name="line.518"></a>
+<span class="sourceLineNo">519</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.519"></a>
+<span class="sourceLineNo">520</span>   * @throws IOException If any I/O or network error occurred<a name="line.520"></a>
+<span class="sourceLineNo">521</span>   */<a name="line.521"></a>
+<span class="sourceLineNo">522</span>  public void prepareHFileQueue(Path hfilesDir, Table table, Deque&lt;LoadQueueItem&gt; queue,<a name="line.522"></a>
+<span class="sourceLineNo">523</span>      boolean validateHFile) throws IOException {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>    prepareHFileQueue(hfilesDir, table, queue, validateHFile, false);<a name="line.524"></a>
+<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>  /**<a name="line.527"></a>
+<span class="sourceLineNo">528</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.528"></a>
+<span class="sourceLineNo">529</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.529"></a>
+<span class="sourceLineNo">530</span>   * families in it.<a name="line.530"></a>
+<span class="sourceLineNo">531</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.531"></a>
+<span class="sourceLineNo">532</span>   * @param table table to which hfiles should be loaded<a name="line.532"></a>
+<span class="sourceLineNo">533</span>   * @param queue queue which needs to be loaded into the table<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.534"></a>
+<span class="sourceLineNo">535</span>   * @param silence  true to ignore unmatched column families<a name="line.535"></a>
+<span class="sourceLineNo">536</span>   * @throws IOException If any I/O or network error occurred<a name="line.536"></a>
+<span class="sourceLineNo">537</span>   */<a name="line.537"></a>
+<span class="sourceLineNo">538</span>  public void prepareHFileQueue(Path hfilesDir, Table table,<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      Deque&lt;LoadQueueItem&gt; queue, boolean validateHFile, boolean silence) throws IOException {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    discoverLoadQueue(queue, hfilesDir, validateHFile);<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  /**<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.546"></a>
+<span class="sourceLineNo">547</span>   * families in it.<a name="line.547"></a>
+<span class="sourceLineNo">548</span>   * @param map map of family to List of hfiles<a name="line.548"></a>
+<span class="sourceLineNo">549</span>   * @param table table to which hfiles should be loaded<a name="line.549"></a>
+<span class="sourceLineNo">550</span>   * @param queue queue which needs to be loaded into the table<a name="line.550"></a>
+<span class="sourceLineNo">551</span>   * @param silence  true to ignore unmatched column families<a name="line.551"></a>
+<span class="sourceLineNo">552</span>   * @throws IOException If any I/O or network error occurred<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   */<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  public void prepareHFileQueue(Map&lt;byte[], List&lt;Path&gt;&gt; map, Table table,<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      Deque&lt;LoadQueueItem&gt; queue, boolean silence) throws IOException {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    populateLoadQueue(queue, map);<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>  }<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>  // Initialize a thread pool<a name="line.560"></a>
+<span class="sourceLineNo">561</span>  private ExecutorService createExecutorService() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    ThreadFactoryBuilder builder = new ThreadFactoryBuilder();<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    builder.setNameFormat("LoadIncrementalHFiles-%1$d");<a name="line.563"></a>
+<span class="sourceLineNo">564</span>    ExecutorService pool = new ThreadPoolExecutor(nrThreads, nrThreads, 60, TimeUnit.SECONDS,<a name="line.564"></a>
+<span class="sourceLineNo">565</span>        new LinkedBlockingQueue&lt;Runnable&gt;(), builder.build());<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    ((ThreadPoolExecutor) pool).allowCoreThreadTimeOut(true);<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    return pool;<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  }<a name="line.568"></a>
+<span class="sourceLineNo">569</span><a name="line.569"></a>
+<span class="sourceLineNo">570</span>  /**<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   * Checks whether there is any invalid family name in HFiles to be bulk loaded.<a name="line.571"></a>
+<span class="sourceLineNo">572</span>   */<a name="line.572"></a>
+<span class="sourceLineNo">573</span>  private void validateFamiliesInHFiles(Table table, Deque&lt;LoadQueueItem&gt; queue, boolean silence)<a name="line.573"></a>
+<span class="sourceLineNo">574</span>      throws IOException {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    Collection&lt;HColumnDescriptor&gt; families = table.getTableDescriptor().getFamilies();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    List&lt;String&gt; familyNames = new ArrayList&lt;&gt;(families.size());<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    for (HColumnDescriptor family : families) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      familyNames.add(family.getNameAsString());<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    Iterator&lt;LoadQueueItem&gt; queueIter = queue.iterator();<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    while (queueIter.hasNext()) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      LoadQueueItem lqi = queueIter.next();<a name="line.582"></a>
+<span class="sourceLineNo">583</span>      String familyNameInHFile = Bytes.toString(lqi.family);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>      if (!familyNames.contains(familyNameInHFile)) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        unmatchedFamilies.add(familyNameInHFile);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      }<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    }<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    if (unmatchedFamilies.size() &gt; 0) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      String msg =<a name="line.589"></a>
+<span class="sourceLineNo">590</span>          "Unmatched family names found: unmatched family names in HFiles to be bulkloaded: "<a name="line.590"></a>
+<span class="sourceLineNo">591</span>              + unmatchedFamilies + "; valid family names of table " + table.getName() + " are: "<a name="line.591"></a>
+<span class="sourceLineNo">592</span>              + familyNames;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>      LOG.error(msg);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      if (!silence) throw new IOException(msg);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    }<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  }<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>  /**<a name="line.598"></a>
+<span class="sourceLineNo">599</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.599"></a>
+<span class="sourceLineNo">600</span>   * &lt;ol&gt;<a name="line.600"></a>
+<span class="sourceLineNo">601</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.602"></a>
+<span class="sourceLineNo">603</span>   * &lt;/li&gt;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>   * &lt;/ol&gt;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>   * @param table Table to which these hfiles should be loaded to<a name="line.605"></a>
+<span class="sourceLineNo">606</span>   * @param conn Connection to use<a name="line.606"></a>
+<span class="sourceLineNo">607</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.607"></a>
+<span class="sourceLineNo">608</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.608"></a>
+<span class="sourceLineNo">609</span>   */<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.610"></a>
+<span class="sourceLineNo">611</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    loadHFileQueue(table, conn, queue, startEndKeys, false);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>  }<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>  /**<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.616"></a>
+<span class="sourceLineNo">617</span>   * &lt;ol&gt;<a name="line.617"></a>
+<span class="sourceLineNo">618</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.619"></a>
+<span class="sourceLineNo">620</span>   * &lt;/li&gt;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>   * &lt;/ol&gt;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * @param table Table to which these hfiles should be loaded to<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * @param conn Connection to use<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.625"></a>
+<span class="sourceLineNo">626</span>   */<a name="line.626"></a>
+<span class="sourceLineNo">627</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys, boolean copyFile) throws IOException {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    ExecutorService pool = null;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>    try {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      pool = createExecutorService();<a name="line.631"></a>
+<span class="sourceLineNo">632</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups =<a name="line.632"></a>
+<span class="sourceLineNo">633</span>          groupOrSplitPhase(table, pool, queue, startEndKeys).getFirst();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      bulkLoadPhase(table, conn, pool, queue, regionGroups, copyFile, null);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    } finally {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      if (pool != null) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        pool.shutdown();<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
+<span class="sourceLineNo">640</span>  }<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
+<span class="sourceLineNo">643</span>   * This takes the LQI's grouped by likely regions and attempts to bulk load<a name="line.643"></a>
+<span class="sourceLineNo">644</span>   * them.  Any failures are re-queued for another pass with the<a name="line.644"></a>
+<span class="sourceLineNo">645</span>   * groupOrSplitPhase.<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   */<a name="line.646"></a>
+<span class="sourceLineNo">647</span>  protected void bulkLoadPhase(final Table table, final Connection conn,<a name="line.647"></a>
+<span class="sourceLineNo">648</span>      ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.648"></a>
+<span class="sourceLineNo">649</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, boolean copyFile,<a name="line.649"></a>
+<span class="sourceLineNo">650</span>      Map&lt;LoadQueueItem, ByteBuffer&gt; item2RegionMap) throws IOException {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>    // atomically bulk load the groups.<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    Set&lt;Future&lt;List&lt;LoadQueueItem&gt;&gt;&gt; loadingFutures = new HashSet&lt;&gt;();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    for (Entry&lt;ByteBuffer, ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()){<a name="line.653"></a>
+<span class="sourceLineNo">654</span>      final byte[] first = e.getKey().array();<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span>      final Callable&lt;List&lt;LoadQueueItem&gt;&gt; call = new Callable&lt;List&lt;LoadQueueItem&gt;&gt;() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>        @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>        public List&lt;LoadQueueItem&gt; call() throws Exception {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>          List&lt;LoadQueueItem&gt; toRetry =<a name="line.660"></a>
+<span class="sourceLineNo">661</span>              tryAtomicRegionLoad(conn, table.getName(), first, lqis, copyFile);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>          return toRetry;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      };<a name="line.664"></a>
+<span class="sourceLineNo">665</span>      if (item2RegionMap != null) {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>        for (LoadQueueItem lqi : lqis) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>          item2RegionMap.put(lqi, e.getKey());<a name="line.667"></a>
+<span class="sourceLineNo">668</span>        }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      }<a name="line.669"></a>
+<span class="sourceLineNo">670</span>      loadingFutures.add(pool.submit(call));<a name="line.670"></a>
+<span class="sourceLineNo">671</span>    }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>    // get all the results.<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    for (Future&lt;List&lt;LoadQueueItem&gt;&gt; future : loadingFutures) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      try {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        List&lt;LoadQueueItem&gt; toRetry = future.get();<a name="line.676"></a>
+<span class="sourceLineNo">677</span><a name="line.677"></a>
+<span class="sourceLineNo">678</span>        if (item2RegionMap != null) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>          for (LoadQueueItem lqi : toRetry) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>            item2RegionMap.remove(lqi);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>          }<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        // LQIs that are requeued to be regrouped.<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        queue.addAll(toRetry);<a name="line.684"></a>
+<span class="sourceLineNo">685</span><a name="line.685"></a>
+<span class="sourceLineNo">686</span>      } catch (ExecutionException e1) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        Throwable t = e1.getCause();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>        if (t instanceof IOException) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>          // At this point something unrecoverable has happened.<a name="line.689"></a>
+<span class="sourceLineNo">690</span>          // TODO Implement bulk load recovery<a name="line.690"></a>
+<span class="sourceLineNo">691</span>          throw new IOException("BulkLoad encountered an unrecoverable problem", t);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        LOG.error("Unexpected execution exception during bulk load", e1);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        throw new IllegalStateException(t);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>      } catch (InterruptedException e1) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        LOG.error("Unexpected interrupted exception during bulk load", e1);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    }<a name="line.699"></a>
+<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>  private boolean checkHFilesCountPerRegionPerFamily(<a name="line.702"></a>
+<span class="sourceLineNo">703</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    for (Entry&lt;ByteBuffer,<a name="line.704"></a>
+<span class="sourceLineNo">705</span>      ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      HashMap&lt;byte[], MutableInt&gt; filesMap = new HashMap&lt;&gt;();<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      for (LoadQueueItem lqi: lqis) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>        MutableInt count = filesMap.get(lqi.family);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        if (count == null) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>          count = new MutableInt();<a name="line.711"></a>
+<span class="sourceLineNo">712</span>          filesMap.put(lqi.family, count);<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        }<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        count.increment();<a name="line.714"></a>
+<span class="sourceLineNo">715</span>        if (count.intValue() &gt; maxFilesPerRegionPerFamily) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>          LOG.error("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.716"></a>
+<span class="sourceLineNo">717</span>            + " hfiles to family " + Bytes.toStringBinary(lqi.family)<a name="line.717"></a>
+<span class="sourceLineNo">718</span>            + " of region with start key "<a name="line.718"></a>
+<span class="sourceLineNo">719</span>            + Bytes.toStringBinary(e.getKey()));<a name="line.719"></a>
+<span class="sourceLineNo">720</span>          return false;<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>    }<a name="line.723"></a>
+<span class="sourceLineNo">724</span>    return true;<a name="line.724"></a>
+<span class="sourceLineNo">725</span>  }<a name="line.725"></a>
+<span class="sourceLineNo">726</span><a name="line.726"></a>
+<span class="sourceLineNo">727</span>  /**<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * @param table the table to load into<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   * @param pool the ExecutorService<a name="line.729"></a>
+<span class="sourceLineNo">730</span>   * @param queue the queue for LoadQueueItem<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   * @param startEndKeys start and end keys<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   * @return A map that groups LQI by likely bulk load region targets and Set of missing hfiles.<a name="line.732"></a>
+<span class="sourceLineNo">733</span>   */<a name="line.733"></a>
+<span class="sourceLineNo">734</span>  private Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; groupOrSplitPhase(<a name="line.734"></a>
+<span class="sourceLineNo">735</span>      final Table table, ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.735"></a>
+<span class="sourceLineNo">736</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    // &lt;region start key, LQI&gt; need synchronized only within this scope of this<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    // phase because of the puts that happen in futures.<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    Multimap&lt;ByteBuffer, LoadQueueItem&gt; rgs = HashMultimap.create();<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = Multimaps.synchronizedMultimap(rgs);<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    Set&lt;String&gt; missingHFiles = new HashSet&lt;&gt;();<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; pair = new Pair&lt;&gt;(regionGroups,<a name="line.742"></a>
+<span class="sourceLineNo">743</span>        missingHFiles);<a name="line.743"></a>
+<span class="sourceLineNo">744</span><a name="line.744"></a>
+<span class="sourceLineNo">745</span>    // drain LQIs and figure out bulk load groups<a name="line.745"></a>
+<span class="sourceLineNo">746</span>    Set&lt;Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;&gt; splittingFutures = new HashSet&lt;&gt;();<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    while (!queue.isEmpty()) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      final LoadQueueItem item = queue.remove();<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>      final Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; call =<a name="line.750"></a>
+<span class="sourceLineNo">751</span>          new Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;() {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        @Override<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; call() throws Exception {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>          Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = groupOrSplit(regionGroups, item, table,<a name="line.754"></a>
+<span class="sourceLineNo">755</span>              startEndKeys);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>          return splits;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        }<a name="line.757"></a>
+<span class="sourceLineNo">758</span>      };<a name="line.758"></a>
+<span class="sourceLineNo">759</span>      splittingFutures.add(pool.submit(call));<a name="line.759"></a>
+<span class="sourceLineNo">760</span>    }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    // get all the results.  All grouping and splitting must finish before<a name="line.761"></a>
+<span class="sourceLineNo">762</span>    // we can attempt the atomic loads.<a name="line.762"></a>
+<span class="sourceLineNo">763</span>    for (Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; lqis : splittingFutures) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>      try {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>        Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = lqis.get();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>        if (splits != null) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>          if (splits.getFirst() != null) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>            queue.addAll(splits.getFirst());<a name="line.768"></a>
+<span class="sourceLineNo">769</span>          } else {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>            missingHFiles.add(splits.getSecond());<a name="line.770"></a>
+<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>        }<a name="line.772"></a>
+<span class="sourceLineNo">773</span>      } catch (ExecutionException e1) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>        Throwable t = e1.getCause();<a name="line.774"></a>
+<span class="sourceLineNo">775</span>        if (t instanceof IOException) {<a name="line.775"></a>
+<span class="sourceLineNo">776</span>          LOG.error("IOException during splitting", e1);<a name="line.776"></a>
+<span class="sourceLineNo">777</span>          throw (IOException)t; // would have been thrown if not parallelized,<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        }<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        LOG.error("Unexpected execution exception during splitting", e1);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        throw new IllegalStateException(t);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>      } catch (InterruptedException e1) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        LOG.error("Unexpected interrupted exception during splitting", e1);<a name="line.782"></a>
+<span class="sourceLineNo">783</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.783"></a>
+<span class="sourceLineNo">784</span>      }<a name="line.784"></a>
+<span class="sourceLineNo">785</span>    }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>    return pair;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>  }<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>  // unique file name for the table<a name="line.789"></a>
+<span class="sourceLineNo">790</span>  private String getUniqueName() {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    return UUID.randomUUID().toString().replaceAll("-", "");<a name="line.791"></a>
+<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>  protected List&lt;LoadQueueItem&gt; splitStoreFile(final LoadQueueItem item,<a name="line.794"></a>
+<span class="sourceLineNo">795</span>      final Table table, byte[] startKey,<a name="line.795"></a>
+<span class="sourceLineNo">796</span>      byte[] splitKey) throws IOException {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>    final Path hfilePath = item.hfilePath;<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>    Path tmpDir = item.hfilePath.getParent();<a name="line.799"></a>
+<span class="sourceLineNo">800</span>    if (!tmpDir.getName().equals(TMP_DIR)) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>      tmpDir = new Path(tmpDir, TMP_DIR);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>    }<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>    LOG.info("HFile at " + hfilePath + " no longer fits inside a single " +<a name="line.804"></a>
+<span class="sourceLineNo">805</span>      "region. Splitting...");<a name="line.805"></a>
 <span class="sourceLineNo">806</span><a name="line.806"></a>
-<span class="sourceLineNo">807</span>    // Add these back at the *front* of the queue, so there's a lower<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    // chance that the region will just split again before we get there.<a name="line.808"></a>
-<span class="sourceLineNo">809</span>    List&lt;LoadQueueItem&gt; lqis = new ArrayList&lt;LoadQueueItem&gt;(2);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>    lqis.add(new LoadQueueItem(item.family, botOut));<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    lqis.add(new LoadQueueItem(item.family, topOut));<a name="line.811"></a>
-<span class="sourceLineNo">812</span><a name="line.812"></a>
-<span class="sourceLineNo">813</span>    // If the current item is already the result of previous splits,<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    // we don't need it anymore. Clean up to save space.<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    // It is not part of the original input files.<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    try {<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      tmpDir = item.hfilePath.getParent();<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      if (tmpDir.getName().equals(TMP_DIR)) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>        fs.delete(item.hfilePath, false);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>      }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    } catch (IOException e) {<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      LOG.warn("Unable to delete temporary split file " + item.hfilePath);<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>    LOG.info("Successfully split into new HFiles " + botOut + " and " + topOut);<a name="line.824"></a>
-<span class="sourceLineNo">825</span>    return lqis;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>  }<a name="line.826"></a>
-<span class="sourceLineNo">827</span><a name="line.827"></a>
-<span class="sourceLineNo">828</span>  /**<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * Attempt to assign the given load queue item into its target region group.<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   * If the hfile boundary no longer fits into a region, physically splits<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   * the hfile such that the new bottom half will fit and returns the list of<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * LQI's corresponding to the resultant hfiles.<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   *<a name="line.833"></a>
-<span class="sourceLineNo">834</span>   * protected for testing<a name="line.834"></a>
-<span class="sourceLineNo">835</span>   * @throws IOException if an IO failure is encountered<a name="line.835"></a>
-<span class="sourceLineNo">836</span>   */<a name="line.836"></a>
-<span class="sourceLineNo">837</span>  protected Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; groupOrSplit(<a name="line.837"></a>
-<span class="sourceLineNo">838</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, final LoadQueueItem item, final Table table,<a name="line.838"></a>
-<span class="sourceLineNo">839</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    final Path hfilePath = item.hfilePath;<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    // fs is the source filesystem<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    if (fs == null) {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      fs = hfilePath.getFileSystem(getConf());<a name="line.843"></a>
-<span class="sourceLineNo">844</span>    }<a name="line.844"></a>
-<span class="sourceLineNo">845</span>    HFile.Reader hfr = null;<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    try {<a name="line.846"></a>
-<span class="sourceLineNo">847</span>      hfr = HFile.createReader(fs, hfilePath,<a name="line.847"></a>
-<span class="sourceLineNo">848</span>          new CacheConfig(getConf()), getConf());<a name="line.848"></a>
-<span class="sourceLineNo">849</span>    } catch (FileNotFoundException fnfe) {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      LOG.debug("encountered", fnfe);<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      return new Pair&lt;&gt;(null, hfilePath.getName());<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    final byte[] first, last;<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    try {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      hfr.loadFileInfo();<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      first = hfr.getFirstRowKey();<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      last = hfr.getLastRowKey();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    }  finally {<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      hfr.close();<a name="line.859"></a>
-<span class="sourceLineNo">860</span>    }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span>    LOG.info("Trying to load hfile=" + hfilePath +<a name="line.862"></a>
-<span class="sourceLineNo">863</span>        " first=" + Bytes.toStringBinary(first) +<a name="line.863"></a>
-<span class="sourceLineNo">864</span>        " last="  + Bytes.toStringBinary(last));<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (first == null || last == null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      assert first == null &amp;&amp; last == null;<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      // TODO what if this is due to a bad HFile?<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      LOG.info("hfile " + hfilePath + " has no entries, skipping");<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return null;<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    if (Bytes.compareTo(first, last) &gt; 0) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      throw new IllegalArgumentException(<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      "Invalid range: " + Bytes.toStringBinary(first) +<a name="line.873"></a>
-<span class="sourceLineNo">874</span>      " &gt; " + Bytes.toStringBinary(last));<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    }<a name="line.875"></a>
-<span class="sourceLineNo">876</span>    int idx = Arrays.binarySearch(startEndKeys.getFirst(), first,<a name="line.876"></a>
-<span class="sourceLineNo">877</span>        Bytes.BYTES_COMPARATOR);<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    if (idx &lt; 0) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>      // not on boundary, returns -(insertion index).  Calculate region it<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      // would be in.<a name="line.880"></a>
-<span class="sourceLineNo">881</span>      idx = -(idx + 1) - 1;<a name="line.881"></a>
+<span class="sourceLineNo">807</span>    String uniqueName = getUniqueName();<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    HColumnDescriptor familyDesc = table.getTableDescriptor().getFamily(item.family);<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>    Path botOut = new Path(tmpDir, uniqueName + ".bottom");<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    Path topOut = new Path(tmpDir, uniqueName + ".top");<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    splitStoreFile(getConf(), hfilePath, familyDesc, splitKey, botOut, topOut);<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>    FileSystem fs = tmpDir.getFileSystem(getConf());<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    fs.setPermission(tmpDir, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    fs.setPermission(botOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.816"></a>
+<span class="sourceLineNo">817</span>    fs.setPermission(topOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.817"></a>
+<span class="sourceLineNo">818</span><a name="line.818"></a>
+<span class="sourceLineNo">819</span>    // Add these back at the *front* of the queue, so there's a lower<a name="line.819"></a>
+<span class="sourceLineNo">820</span>    // chance that the region will just split again before we get there.<a name="line.820"></a>
+<span class="sourceLineNo">821</span>    List&lt;LoadQueueItem&gt; lqis = new ArrayList&lt;LoadQueueItem&gt;(2);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>    lqis.add(new LoadQueueItem(item.family, botOut));<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    lqis.add(new LoadQueueItem(item.family, topOut));<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>    // If the current item is already the result of previous splits,<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    // we don't need it anymore. Clean up to save space.<a name="line.826"></a>
+<span class="sourceLineNo">827</span>    // It is not part of the original input files.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>    try {<a name="line.828"></a>
+<span class="sourceLineNo">829</span>      tmpDir = item.hfilePath.getParent();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>      if (tmpDir.getName().equals(TMP_DIR)) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        fs.delete(item.hfilePath, false);<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    } catch (IOException e) {<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      LOG.warn("Unable to delete temporary split file " + item.hfilePath);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    }<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    LOG.info("Successfully split into new HFiles " + botOut + " and " + topOut);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    return lqis;<a name="line.837"></a>
+<span class="sourceLineNo">838</span>  }<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>  /**<a name="line.840"></a>
+<span class="sourceLineNo">841</span>   * Attempt to assign the given load queue item into its target region group.<a name="line.841"></a>
+<span class="sourceLineNo">842</span>   * If the hfile boundary no longer fits into a region, physically splits<a name="line.842"></a>
+<span class="sourceLineNo">843</span>   * the hfile such that the new bottom half will fit and returns the list of<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * LQI's corresponding to the resultant hfiles.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   *<a name="line.845"></a>
+<span class="sourceLineNo">846</span>   * protected for testing<a name="line.846"></a>
+<span class="sourceLineNo">847</span>   * @throws IOException if an IO failure is encountered<a name="line.847"></a>
+<span class="sourceLineNo">848</span>   */<a name="line.848"></a>
+<span class="sourceLineNo">849</span>  protected Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; groupOrSplit(<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, final LoadQueueItem item, final Table table,<a name="line.850"></a>
+<span class="sourceLineNo">851</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>    final Path hfilePath = item.hfilePath;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>    // fs is the source filesystem<a name="line.853"></a>
+<span class="sourceLineNo">854</span>    if (fs == null) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>      fs = hfilePath.getFileSystem(getConf());<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>    HFile.Reader hfr = null;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>    try {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>      hfr = HFile.createReader(fs, hfilePath,<a name="line.859"></a>
+<span class="sourceLineNo">860</span>          new CacheConfig(getConf()), getConf());<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    } catch (FileNotFoundException fnfe) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      LOG.debug("encountered", fnfe);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>      return new Pair&lt;&gt;(null, hfilePath.getName());<a name="line.863"></a>
+<span class="sourceLineNo">864</span>    }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    final byte[] first, last;<a name="lin

<TRUNCATED>

[14/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/plugin-management.html b/hbase-archetypes/hbase-client-project/plugin-management.html
index 6f84f36..2abc767 100644
--- a/hbase-archetypes/hbase-client-project/plugin-management.html
+++ b/hbase-archetypes/hbase-client-project/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/plugins.html b/hbase-archetypes/hbase-client-project/plugins.html
index 92ae92d..d417298 100644
--- a/hbase-archetypes/hbase-client-project/plugins.html
+++ b/hbase-archetypes/hbase-client-project/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/project-info.html b/hbase-archetypes/hbase-client-project/project-info.html
index 3ee45fa..648a3a0 100644
--- a/hbase-archetypes/hbase-client-project/project-info.html
+++ b/hbase-archetypes/hbase-client-project/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/project-reports.html b/hbase-archetypes/hbase-client-project/project-reports.html
index 7f73c85..7494eac 100644
--- a/hbase-archetypes/hbase-client-project/project-reports.html
+++ b/hbase-archetypes/hbase-client-project/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/project-summary.html b/hbase-archetypes/hbase-client-project/project-summary.html
index 9a60d71..8241305 100644
--- a/hbase-archetypes/hbase-client-project/project-summary.html
+++ b/hbase-archetypes/hbase-client-project/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/source-repository.html b/hbase-archetypes/hbase-client-project/source-repository.html
index ef48b1c..a5a04d9 100644
--- a/hbase-archetypes/hbase-client-project/source-repository.html
+++ b/hbase-archetypes/hbase-client-project/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/team-list.html b/hbase-archetypes/hbase-client-project/team-list.html
index 976975c..fad1dca 100644
--- a/hbase-archetypes/hbase-client-project/team-list.html
+++ b/hbase-archetypes/hbase-client-project/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/checkstyle.html b/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
index fbcc5a7..3c400a5 100644
--- a/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
+++ b/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependencies.html b/hbase-archetypes/hbase-shaded-client-project/dependencies.html
index 27250d6..bd5243b 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependencies.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html b/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
index 5650126..7786dfa 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependency-info.html b/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
index cda439f..a8d5e6d 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependency-management.html b/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
index 34c1e8c..d3bd255 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/distribution-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/distribution-management.html b/hbase-archetypes/hbase-shaded-client-project/distribution-management.html
index e3ba3b7..c0ed50a 100644
--- a/hbase-archetypes/hbase-shaded-client-project/distribution-management.html
+++ b/hbase-archetypes/hbase-shaded-client-project/distribution-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/index.html b/hbase-archetypes/hbase-shaded-client-project/index.html
index ce63c88..c8ca9f0 100644
--- a/hbase-archetypes/hbase-shaded-client-project/index.html
+++ b/hbase-archetypes/hbase-shaded-client-project/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/integration.html b/hbase-archetypes/hbase-shaded-client-project/integration.html
index c6c4982..5fd3607 100644
--- a/hbase-archetypes/hbase-shaded-client-project/integration.html
+++ b/hbase-archetypes/hbase-shaded-client-project/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html b/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
index 8586fd3..4068744 100644
--- a/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
+++ b/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/license.html b/hbase-archetypes/hbase-shaded-client-project/license.html
index 7cdda9c..6ef9c7d 100644
--- a/hbase-archetypes/hbase-shaded-client-project/license.html
+++ b/hbase-archetypes/hbase-shaded-client-project/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/mail-lists.html b/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
index c331d86..9855795 100644
--- a/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
+++ b/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/plugin-management.html b/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
index 3ae2f9a..bfedd57 100644
--- a/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
+++ b/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/plugins.html b/hbase-archetypes/hbase-shaded-client-project/plugins.html
index 280ba3e..17f3363 100644
--- a/hbase-archetypes/hbase-shaded-client-project/plugins.html
+++ b/hbase-archetypes/hbase-shaded-client-project/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/project-info.html b/hbase-archetypes/hbase-shaded-client-project/project-info.html
index dc81fee..7e63560 100644
--- a/hbase-archetypes/hbase-shaded-client-project/project-info.html
+++ b/hbase-archetypes/hbase-shaded-client-project/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/project-reports.html b/hbase-archetypes/hbase-shaded-client-project/project-reports.html
index 6cb906f..350e1e5 100644
--- a/hbase-archetypes/hbase-shaded-client-project/project-reports.html
+++ b/hbase-archetypes/hbase-shaded-client-project/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/project-summary.html b/hbase-archetypes/hbase-shaded-client-project/project-summary.html
index 916e319..4809b19 100644
--- a/hbase-archetypes/hbase-shaded-client-project/project-summary.html
+++ b/hbase-archetypes/hbase-shaded-client-project/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/source-repository.html b/hbase-archetypes/hbase-shaded-client-project/source-repository.html
index d8dbce8..23befb6 100644
--- a/hbase-archetypes/hbase-shaded-client-project/source-repository.html
+++ b/hbase-archetypes/hbase-shaded-client-project/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/hbase-shaded-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/team-list.html b/hbase-archetypes/hbase-shaded-client-project/team-list.html
index a624f87..05a2772 100644
--- a/hbase-archetypes/hbase-shaded-client-project/team-list.html
+++ b/hbase-archetypes/hbase-shaded-client-project/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/index.html b/hbase-archetypes/index.html
index 6b35e08..8283ba9 100644
--- a/hbase-archetypes/index.html
+++ b/hbase-archetypes/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/integration.html b/hbase-archetypes/integration.html
index a3cb597..85a7867 100644
--- a/hbase-archetypes/integration.html
+++ b/hbase-archetypes/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/issue-tracking.html b/hbase-archetypes/issue-tracking.html
index c29bef2..51ad2e3 100644
--- a/hbase-archetypes/issue-tracking.html
+++ b/hbase-archetypes/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/license.html b/hbase-archetypes/license.html
index 2028272..d50fe54 100644
--- a/hbase-archetypes/license.html
+++ b/hbase-archetypes/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/mail-lists.html b/hbase-archetypes/mail-lists.html
index 6559fe9..1e0d98a 100644
--- a/hbase-archetypes/mail-lists.html
+++ b/hbase-archetypes/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/modules.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/modules.html b/hbase-archetypes/modules.html
index 176adbe..93a6310 100644
--- a/hbase-archetypes/modules.html
+++ b/hbase-archetypes/modules.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/plugin-management.html b/hbase-archetypes/plugin-management.html
index 40efb75..5b8242c 100644
--- a/hbase-archetypes/plugin-management.html
+++ b/hbase-archetypes/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/plugins.html b/hbase-archetypes/plugins.html
index 6b9e0f2..0a2291e 100644
--- a/hbase-archetypes/plugins.html
+++ b/hbase-archetypes/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/project-info.html b/hbase-archetypes/project-info.html
index 04da501..b51896f 100644
--- a/hbase-archetypes/project-info.html
+++ b/hbase-archetypes/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/project-summary.html b/hbase-archetypes/project-summary.html
index 40bb463..05f4208 100644
--- a/hbase-archetypes/project-summary.html
+++ b/hbase-archetypes/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/source-repository.html b/hbase-archetypes/source-repository.html
index d8d32a4..b43c4d8 100644
--- a/hbase-archetypes/source-repository.html
+++ b/hbase-archetypes/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-archetypes/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/team-list.html b/hbase-archetypes/team-list.html
index 6a60479..c119c61 100644
--- a/hbase-archetypes/team-list.html
+++ b/hbase-archetypes/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-spark/checkstyle.html b/hbase-spark/checkstyle.html
index b986643..e5e59ce 100644
--- a/hbase-spark/checkstyle.html
+++ b/hbase-spark/checkstyle.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependencies.html b/hbase-spark/dependencies.html
index 0cc36dc..5f42769 100644
--- a/hbase-spark/dependencies.html
+++ b/hbase-spark/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-convergence.html b/hbase-spark/dependency-convergence.html
index deb8019..57d079e 100644
--- a/hbase-spark/dependency-convergence.html
+++ b/hbase-spark/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-info.html b/hbase-spark/dependency-info.html
index 1c584f5..62d1d55 100644
--- a/hbase-spark/dependency-info.html
+++ b/hbase-spark/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-management.html b/hbase-spark/dependency-management.html
index 3a064aa..0ce1738 100644
--- a/hbase-spark/dependency-management.html
+++ b/hbase-spark/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/distribution-management.html
----------------------------------------------------------------------
diff --git a/hbase-spark/distribution-management.html b/hbase-spark/distribution-management.html
index d2743f8..56be2e8 100644
--- a/hbase-spark/distribution-management.html
+++ b/hbase-spark/distribution-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/index.html
----------------------------------------------------------------------
diff --git a/hbase-spark/index.html b/hbase-spark/index.html
index ccbe299..d4cfeb9 100644
--- a/hbase-spark/index.html
+++ b/hbase-spark/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/integration.html
----------------------------------------------------------------------
diff --git a/hbase-spark/integration.html b/hbase-spark/integration.html
index 04e5b62..5f7aa7b 100644
--- a/hbase-spark/integration.html
+++ b/hbase-spark/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-spark/issue-tracking.html b/hbase-spark/issue-tracking.html
index d9a1c6d1..d7cb8ef 100644
--- a/hbase-spark/issue-tracking.html
+++ b/hbase-spark/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/license.html
----------------------------------------------------------------------
diff --git a/hbase-spark/license.html b/hbase-spark/license.html
index 68d47f0..7328209 100644
--- a/hbase-spark/license.html
+++ b/hbase-spark/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-spark/mail-lists.html b/hbase-spark/mail-lists.html
index 9249a95..2eca84c 100644
--- a/hbase-spark/mail-lists.html
+++ b/hbase-spark/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-spark/plugin-management.html b/hbase-spark/plugin-management.html
index c1b9122..3f82f23 100644
--- a/hbase-spark/plugin-management.html
+++ b/hbase-spark/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-spark/plugins.html b/hbase-spark/plugins.html
index f6335e5..6e1a6f8 100644
--- a/hbase-spark/plugins.html
+++ b/hbase-spark/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-info.html b/hbase-spark/project-info.html
index ac7e3e2..49cdff8 100644
--- a/hbase-spark/project-info.html
+++ b/hbase-spark/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/hbase-spark/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-reports.html b/hbase-spark/project-reports.html
index 8e07e35..61c8402 100644
--- a/hbase-spark/project-reports.html
+++ b/hbase-spark/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-11 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2016-11-14 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2016-11-11</span>
+        <span id="publishDate">Last Published: 2016-11-14</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>


[34/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.


Project: http://git-wip-us.apache.org/repos/asf/hbase-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase-site/commit/f17356a7
Tree: http://git-wip-us.apache.org/repos/asf/hbase-site/tree/f17356a7
Diff: http://git-wip-us.apache.org/repos/asf/hbase-site/diff/f17356a7

Branch: refs/heads/asf-site
Commit: f17356a79505371288cd8d82700110743eaa6227
Parents: dbfeb6d
Author: jenkins <bu...@apache.org>
Authored: Mon Nov 14 14:45:49 2016 +0000
Committer: Michael Stack <st...@apache.org>
Committed: Mon Nov 14 21:44:52 2016 -0800

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                |     4 +-
 apache_hbase_reference_guide.pdfmarks           |     4 +-
 apidocs/index-all.html                          |     2 +-
 .../hadoop/hbase/class-use/TableName.html       |     2 +-
 .../hbase/class-use/TableNotFoundException.html |     2 +-
 .../hadoop/hbase/client/class-use/Admin.html    |     2 +-
 .../hbase/client/class-use/Connection.html      |     5 +-
 .../hbase/client/class-use/RegionLocator.html   |     2 +-
 .../hadoop/hbase/client/class-use/Table.html    |     7 +-
 .../hbase/mapreduce/LoadIncrementalHFiles.html  |    66 +-
 .../hbase/mapreduce/LoadIncrementalHFiles.html  |  1603 +--
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       | 12556 ++++++++---------
 checkstyle.rss                                  |   154 +-
 coc.html                                        |     4 +-
 cygwin.html                                     |     4 +-
 dependencies.html                               |     4 +-
 dependency-convergence.html                     |     4 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |     4 +-
 devapidocs/constant-values.html                 |     6 +-
 devapidocs/index-all.html                       |     6 +-
 .../hadoop/hbase/class-use/TableName.html       |     2 +-
 .../hbase/class-use/TableNotFoundException.html |     2 +-
 .../hadoop/hbase/client/class-use/Admin.html    |     4 +-
 .../hbase/client/class-use/Connection.html      |     5 +-
 .../hbase/client/class-use/RegionLocator.html   |     4 +-
 .../client/class-use/SecureBulkLoadClient.html  |     2 +-
 .../hadoop/hbase/client/class-use/Table.html    |    11 +-
 .../hbase/mapreduce/LoadIncrementalHFiles.html  |   116 +-
 .../LoadIncrementalHFiles.LoadQueueItem.html    |    87 +-
 .../replication/ReplicationQueuesZKImpl.html    |    18 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |   240 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |    96 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    48 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |    90 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |    36 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    18 +-
 .../util/RegionSplitter.HexStringSplit.html     |    52 +-
 .../util/RegionSplitter.SplitAlgorithm.html     |    24 +-
 .../hbase/util/RegionSplitter.UniformSplit.html |    34 +-
 .../hadoop/hbase/util/RegionSplitter.html       |    24 +-
 .../hadoop/hbase/util/class-use/Pair.html       |     8 +-
 .../org/apache/hadoop/hbase/Version.html        |     6 +-
 .../LoadIncrementalHFiles.BulkHFileVisitor.html |  1603 +--
 .../LoadIncrementalHFiles.LoadQueueItem.html    |  1603 +--
 .../hbase/mapreduce/LoadIncrementalHFiles.html  |  1603 +--
 .../replication/ReplicationQueuesZKImpl.html    |   282 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |   240 +-
 .../tmpl/master/MasterStatusTmpl.Intf.html      |   240 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |   240 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    64 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |    90 +-
 .../tmpl/regionserver/RSStatusTmpl.Intf.html    |    90 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |    90 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    24 +-
 .../util/RegionSplitter.HexStringSplit.html     |  2167 ++-
 .../util/RegionSplitter.SplitAlgorithm.html     |  2167 ++-
 .../hbase/util/RegionSplitter.UniformSplit.html |  2167 ++-
 .../hadoop/hbase/util/RegionSplitter.html       |  2167 ++-
 distribution-management.html                    |     4 +-
 export_control.html                             |     4 +-
 hbase-annotations/checkstyle.html               |     6 +-
 hbase-annotations/dependencies.html             |     6 +-
 hbase-annotations/dependency-convergence.html   |     6 +-
 hbase-annotations/dependency-info.html          |     6 +-
 hbase-annotations/dependency-management.html    |     6 +-
 hbase-annotations/distribution-management.html  |     6 +-
 hbase-annotations/index.html                    |     6 +-
 hbase-annotations/integration.html              |     6 +-
 hbase-annotations/issue-tracking.html           |     6 +-
 hbase-annotations/license.html                  |     6 +-
 hbase-annotations/mail-lists.html               |     6 +-
 hbase-annotations/plugin-management.html        |     6 +-
 hbase-annotations/plugins.html                  |     6 +-
 hbase-annotations/project-info.html             |     6 +-
 hbase-annotations/project-reports.html          |     6 +-
 hbase-annotations/project-summary.html          |     6 +-
 hbase-annotations/source-repository.html        |     6 +-
 hbase-annotations/team-list.html                |     6 +-
 hbase-archetypes/dependencies.html              |     6 +-
 hbase-archetypes/dependency-convergence.html    |     6 +-
 hbase-archetypes/dependency-info.html           |     6 +-
 hbase-archetypes/dependency-management.html     |     6 +-
 hbase-archetypes/distribution-management.html   |     6 +-
 .../hbase-archetype-builder/dependencies.html   |     6 +-
 .../dependency-convergence.html                 |     6 +-
 .../dependency-info.html                        |     6 +-
 .../dependency-management.html                  |     6 +-
 .../distribution-management.html                |     6 +-
 .../hbase-archetype-builder/index.html          |     6 +-
 .../hbase-archetype-builder/integration.html    |     6 +-
 .../hbase-archetype-builder/issue-tracking.html |     6 +-
 .../hbase-archetype-builder/license.html        |     6 +-
 .../hbase-archetype-builder/mail-lists.html     |     6 +-
 .../plugin-management.html                      |     6 +-
 .../hbase-archetype-builder/plugins.html        |     6 +-
 .../hbase-archetype-builder/project-info.html   |     6 +-
 .../project-summary.html                        |     6 +-
 .../source-repository.html                      |     6 +-
 .../hbase-archetype-builder/team-list.html      |     6 +-
 .../hbase-client-project/checkstyle.html        |     6 +-
 .../hbase-client-project/dependencies.html      |     6 +-
 .../dependency-convergence.html                 |     6 +-
 .../hbase-client-project/dependency-info.html   |     6 +-
 .../dependency-management.html                  |     6 +-
 .../distribution-management.html                |     6 +-
 .../hbase-client-project/index.html             |     6 +-
 .../hbase-client-project/integration.html       |     6 +-
 .../hbase-client-project/issue-tracking.html    |     6 +-
 .../hbase-client-project/license.html           |     6 +-
 .../hbase-client-project/mail-lists.html        |     6 +-
 .../hbase-client-project/plugin-management.html |     6 +-
 .../hbase-client-project/plugins.html           |     6 +-
 .../hbase-client-project/project-info.html      |     6 +-
 .../hbase-client-project/project-reports.html   |     6 +-
 .../hbase-client-project/project-summary.html   |     6 +-
 .../hbase-client-project/source-repository.html |     6 +-
 .../hbase-client-project/team-list.html         |     6 +-
 .../hbase-shaded-client-project/checkstyle.html |     6 +-
 .../dependencies.html                           |     6 +-
 .../dependency-convergence.html                 |     6 +-
 .../dependency-info.html                        |     6 +-
 .../dependency-management.html                  |     6 +-
 .../distribution-management.html                |     6 +-
 .../hbase-shaded-client-project/index.html      |     6 +-
 .../integration.html                            |     6 +-
 .../issue-tracking.html                         |     6 +-
 .../hbase-shaded-client-project/license.html    |     6 +-
 .../hbase-shaded-client-project/mail-lists.html |     6 +-
 .../plugin-management.html                      |     6 +-
 .../hbase-shaded-client-project/plugins.html    |     6 +-
 .../project-info.html                           |     6 +-
 .../project-reports.html                        |     6 +-
 .../project-summary.html                        |     6 +-
 .../source-repository.html                      |     6 +-
 .../hbase-shaded-client-project/team-list.html  |     6 +-
 hbase-archetypes/index.html                     |     6 +-
 hbase-archetypes/integration.html               |     6 +-
 hbase-archetypes/issue-tracking.html            |     6 +-
 hbase-archetypes/license.html                   |     6 +-
 hbase-archetypes/mail-lists.html                |     6 +-
 hbase-archetypes/modules.html                   |     6 +-
 hbase-archetypes/plugin-management.html         |     6 +-
 hbase-archetypes/plugins.html                   |     6 +-
 hbase-archetypes/project-info.html              |     6 +-
 hbase-archetypes/project-summary.html           |     6 +-
 hbase-archetypes/source-repository.html         |     6 +-
 hbase-archetypes/team-list.html                 |     6 +-
 hbase-spark/checkstyle.html                     |     6 +-
 hbase-spark/dependencies.html                   |     6 +-
 hbase-spark/dependency-convergence.html         |     6 +-
 hbase-spark/dependency-info.html                |     6 +-
 hbase-spark/dependency-management.html          |     6 +-
 hbase-spark/distribution-management.html        |     6 +-
 hbase-spark/index.html                          |     6 +-
 hbase-spark/integration.html                    |     6 +-
 hbase-spark/issue-tracking.html                 |     6 +-
 hbase-spark/license.html                        |     6 +-
 hbase-spark/mail-lists.html                     |     6 +-
 hbase-spark/plugin-management.html              |     6 +-
 hbase-spark/plugins.html                        |     6 +-
 hbase-spark/project-info.html                   |     6 +-
 hbase-spark/project-reports.html                |     6 +-
 hbase-spark/project-summary.html                |     6 +-
 hbase-spark/scaladocs/index.html                |     2 +-
 hbase-spark/scaladocs/index.js                  |     2 +-
 hbase-spark/scaladocs/index/index-h.html        |     3 +
 hbase-spark/scaladocs/index/index-n.html        |     9 +
 .../hbase/spark/HBaseConnectionCacheStat.html   |   450 +
 .../org/apache/hadoop/hbase/spark/package.html  |    14 +
 hbase-spark/source-repository.html              |     6 +-
 hbase-spark/team-list.html                      |     6 +-
 index.html                                      |     6 +-
 integration.html                                |     4 +-
 issue-tracking.html                             |     4 +-
 license.html                                    |     4 +-
 mail-lists.html                                 |     4 +-
 metrics.html                                    |     4 +-
 modules.html                                    |     4 +-
 old_news.html                                   |     4 +-
 plugin-management.html                          |     4 +-
 plugins.html                                    |     4 +-
 poweredbyhbase.html                             |     4 +-
 project-info.html                               |     4 +-
 project-reports.html                            |     4 +-
 project-summary.html                            |     4 +-
 pseudo-distributed.html                         |     4 +-
 replication.html                                |     4 +-
 resources.html                                  |     4 +-
 source-repository.html                          |     4 +-
 sponsors.html                                   |     4 +-
 supportingprojects.html                         |     4 +-
 team-list.html                                  |     4 +-
 .../mapreduce/TestLoadIncrementalHFiles.html    |   100 +-
 .../TestLoadIncrementalHFilesSplitRecovery.html |    58 +-
 ...onSourceManager.DummyNodeFailoverWorker.html |     2 +-
 ...estReplicationSourceManager.DummyServer.html |    32 +-
 ...er.FailInitializeDummyReplicationSource.html |     6 +-
 .../mapreduce/TestLoadIncrementalHFiles.html    |  1425 +-
 .../TestLoadIncrementalHFilesSplitRecovery.html |  1151 +-
 ...onSourceManager.DummyNodeFailoverWorker.html |   230 +-
 ...estReplicationSourceManager.DummyServer.html |   230 +-
 ...er.FailInitializeDummyReplicationSource.html |   230 +-
 .../TestReplicationSourceManager.html           |   230 +-
 .../mapreduce/TestLoadIncrementalHFiles.html    |  1425 +-
 .../TestLoadIncrementalHFilesSplitRecovery.html |  1151 +-
 .../TestReplicationSourceManager.html           |   230 +-
 xref/org/apache/hadoop/hbase/Version.html       |     6 +-
 .../hbase/mapreduce/LoadIncrementalHFiles.html  |  1603 +--
 .../replication/ReplicationQueuesZKImpl.html    |   282 +-
 .../hbase/tmpl/common/TaskMonitorTmpl.html      |    60 +-
 .../hbase/tmpl/common/TaskMonitorTmplImpl.html  |    16 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |   240 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    64 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |    90 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    24 +-
 .../hadoop/hbase/util/RegionSplitter.html       |  2167 ++-
 219 files changed, 21572 insertions(+), 20901 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index 5856c97..1b5575c 100644
--- a/acid-semantics.html
+++ b/acid-semantics.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="20161111" />
+    <meta name="Date-Revision-yyyymmdd" content="20161114" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -612,7 +612,7 @@ under the License. -->
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2016-11-11</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2016-11-14</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index b82cfb0..f2ad575 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.6, based on Prawn 1.2.1)
 /Producer (Apache HBase Team)
-/CreationDate (D:20161111143735+00'00')
-/ModDate (D:20161111143735+00'00')
+/CreationDate (D:20161114143516+00'00')
+/ModDate (D:20161114143516+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/apache_hbase_reference_guide.pdfmarks
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdfmarks b/apache_hbase_reference_guide.pdfmarks
index af7d744..d393fd4 100644
--- a/apache_hbase_reference_guide.pdfmarks
+++ b/apache_hbase_reference_guide.pdfmarks
@@ -2,8 +2,8 @@
   /Author (Apache HBase Team)
   /Subject ()
   /Keywords ()
-  /ModDate (D:20161111143918)
-  /CreationDate (D:20161111143918)
+  /ModDate (D:20161114143647)
+  /CreationDate (D:20161114143647)
   /Creator (Asciidoctor PDF 1.5.0.alpha.6, based on Prawn 1.2.1)
   /Producer ()
   /DOCINFO pdfmark

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/apidocs/index-all.html
----------------------------------------------------------------------
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index 0e5a9da..2f6bb15 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -750,7 +750,7 @@
 <dd>
 <div class="block">Staging dir used by bulk load</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-">bulkLoadPhase(Table, Connection, ExecutorService, Deque&lt;LoadIncrementalHFiles.LoadQueueItem&gt;, Multimap&lt;ByteBuffer, LoadIncrementalHFiles.LoadQueueItem&gt;, boolean)</a></span> - Method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">bulkLoadPhase(Table, Connection, ExecutorService, Deque&lt;LoadIncrementalHFiles.LoadQueueItem&gt;, Multimap&lt;ByteBuffer, LoadIncrementalHFiles.LoadQueueItem&gt;, boolean, Map&lt;LoadIncrementalHFiles.LoadQueueItem, ByteBuffer&gt;)</a></span> - Method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html" title="class in org.apache.hadoop.hbase.mapreduce">LoadIncrementalHFiles</a></dt>
 <dd>
 <div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
  them.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/apidocs/org/apache/hadoop/hbase/class-use/TableName.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/TableName.html b/apidocs/org/apache/hadoop/hbase/class-use/TableName.html
index 8ad2a02..6bff765 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/TableName.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/TableName.html
@@ -1106,7 +1106,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#run-java.lang.String-java.util.Map-org.apache.hadoop.hbase.TableName-">run</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dirPath,
    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
    <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/apidocs/org/apache/hadoop/hbase/class-use/TableNotFoundException.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/TableNotFoundException.html b/apidocs/org/apache/hadoop/hbase/class-use/TableNotFoundException.html
index 95af3a7..b5184c2 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/TableNotFoundException.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/TableNotFoundException.html
@@ -132,7 +132,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#doBulkLoad-java.util.Map-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-boolean-boolean-">doBulkLoad</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
           <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
           <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/apidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Admin.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
index db081bc..76328a1 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Admin.html
@@ -147,7 +147,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#doBulkLoad-java.util.Map-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-boolean-boolean-">doBulkLoad</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
           <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
           <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/apidocs/org/apache/hadoop/hbase/client/class-use/Connection.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Connection.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Connection.html
index 106f0d4..78bf964 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Connection.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Connection.html
@@ -206,12 +206,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
              <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;queue,
              com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;regionGroups,
-             boolean&nbsp;copyFile)</code>
+             boolean&nbsp;copyFile,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;item2RegionMap)</code>
 <div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
  them.</div>
 </td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/apidocs/org/apache/hadoop/hbase/client/class-use/RegionLocator.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/RegionLocator.html b/apidocs/org/apache/hadoop/hbase/client/class-use/RegionLocator.html
index c5f06a1..cd36c53 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/RegionLocator.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/RegionLocator.html
@@ -165,7 +165,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#doBulkLoad-java.util.Map-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-boolean-boolean-">doBulkLoad</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
           <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
           <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/apidocs/org/apache/hadoop/hbase/client/class-use/Table.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/Table.html b/apidocs/org/apache/hadoop/hbase/client/class-use/Table.html
index ecc24f7..f109f4a 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/Table.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/Table.html
@@ -203,12 +203,13 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">bulkLoadPhase</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
              <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;queue,
              com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;regionGroups,
-             boolean&nbsp;copyFile)</code>
+             boolean&nbsp;copyFile,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;item2RegionMap)</code>
 <div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
  them.</div>
 </td>
@@ -223,7 +224,7 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">LoadIncrementalHFiles.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#doBulkLoad-java.util.Map-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-boolean-boolean-">doBulkLoad</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
           <a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
           <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/apidocs/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html b/apidocs/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
index a220262..c3e8882 100644
--- a/apidocs/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
+++ b/apidocs/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
@@ -196,18 +196,19 @@ implements org.apache.hadoop.util.Tool</pre>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-">bulkLoadPhase</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">bulkLoadPhase</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
              <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;queue,
              com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;regionGroups,
-             boolean&nbsp;copyFile)</code>
+             boolean&nbsp;copyFile,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;item2RegionMap)</code>
 <div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
  them.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#doBulkLoad-java.util.Map-org.apache.hadoop.hbase.client.Admin-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.RegionLocator-boolean-boolean-">doBulkLoad</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
           <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
           <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
@@ -315,7 +316,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#run-java.lang.String:A-">run</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>&nbsp;</td>
 </tr>
 <tr id="i13" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#run-java.lang.String-java.util.Map-org.apache.hadoop.hbase.TableName-">run</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dirPath,
    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
    <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
@@ -507,14 +508,14 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>doBulkLoad</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.368">doBulkLoad</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
-                               <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
-                               <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
-                               <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,
-                               boolean&nbsp;silence,
-                               boolean&nbsp;copyFile)
-                        throws <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a>,
-                               <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.368">doBulkLoad</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
+                                                                                                        <a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;admin,
+                                                                                                        <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+                                                                                                        <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;regionLocator,
+                                                                                                        boolean&nbsp;silence,
+                                                                                                        boolean&nbsp;copyFile)
+                                                                                                 throws <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a>,
+                                                                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Perform a bulk load of the given directory into the given
  pre-existing table.  This method is not threadsafe.</div>
 <dl>
@@ -526,7 +527,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <dd><code>silence</code> - true to ignore unmatched column families</dd>
 <dd><code>copyFile</code> - always copy hfiles if true</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>List of filenames which were not found</dd>
+<dd>Map of LoadQueueItem to region</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a></code> - if table does not yet exist</dd>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
@@ -570,7 +571,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareHFileQueue</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.521">prepareHFileQueue</a>(org.apache.hadoop.fs.Path&nbsp;hfilesDir,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.522">prepareHFileQueue</a>(org.apache.hadoop.fs.Path&nbsp;hfilesDir,
                               <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;queue,
                               boolean&nbsp;validateHFile)
@@ -595,7 +596,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareHFileQueue</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.537">prepareHFileQueue</a>(org.apache.hadoop.fs.Path&nbsp;hfilesDir,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.538">prepareHFileQueue</a>(org.apache.hadoop.fs.Path&nbsp;hfilesDir,
                               <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;queue,
                               boolean&nbsp;validateHFile,
@@ -622,7 +623,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareHFileQueue</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.553">prepareHFileQueue</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.554">prepareHFileQueue</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
                               <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;queue,
                               boolean&nbsp;silence)
@@ -647,7 +648,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>loadHFileQueue</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.609">loadHFileQueue</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.610">loadHFileQueue</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                            <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;queue,
                            <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[][],byte[][]&gt;&nbsp;startEndKeys)
@@ -675,7 +676,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>loadHFileQueue</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.626">loadHFileQueue</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.627">loadHFileQueue</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                            <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;queue,
                            <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[][],byte[][]&gt;&nbsp;startEndKeys,
@@ -698,18 +699,19 @@ implements org.apache.hadoop.util.Tool</pre>
 </dl>
 </li>
 </ul>
-<a name="bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-">
+<a name="bulkLoadPhase-org.apache.hadoop.hbase.client.Table-org.apache.hadoop.hbase.client.Connection-java.util.concurrent.ExecutorService-java.util.Deque-com.google.common.collect.Multimap-boolean-java.util.Map-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>bulkLoadPhase</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.646">bulkLoadPhase</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.647">bulkLoadPhase</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                              <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;queue,
                              com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;regionGroups,
-                             boolean&nbsp;copyFile)
+                             boolean&nbsp;copyFile,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;item2RegionMap)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This takes the LQI's grouped by likely regions and attempts to bulk load
  them.  Any failures are re-queued for another pass with the
@@ -726,7 +728,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>splitStoreFile</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.782">splitStoreFile</a>(org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&nbsp;item,
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.794">splitStoreFile</a>(org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&nbsp;item,
                                                                                                      <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                                                                                                      byte[]&nbsp;startKey,
                                                                                                      byte[]&nbsp;splitKey)
@@ -743,7 +745,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>groupOrSplit</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.837">groupOrSplit</a>(com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;regionGroups,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.849">groupOrSplit</a>(com.google.common.collect.Multimap&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;regionGroups,
                                                                                                                 org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&nbsp;item,
                                                                                                                 <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table,
                                                                                                                 <a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[][],byte[][]&gt;&nbsp;startEndKeys)
@@ -766,7 +768,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>tryAtomicRegionLoad</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.936">tryAtomicRegionLoad</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.948">tryAtomicRegionLoad</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn,
                                                                                                           <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                                                                           byte[]&nbsp;first,
                                                                                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem&gt;&nbsp;lqis,
@@ -795,7 +797,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>inferBoundaries</h4>
-<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1117">inferBoundaries</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;bdryMap)</pre>
+<pre>public static&nbsp;byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1129">inferBoundaries</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html?is-external=true" title="class or interface in java.util">TreeMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;bdryMap)</pre>
 </li>
 </ul>
 <a name="run-java.lang.String-java.util.Map-org.apache.hadoop.hbase.TableName-">
@@ -804,10 +806,10 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1196">run</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dirPath,
-                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
-                        <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
-                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.LoadQueueItem,<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1208">run</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dirPath,
+                                                                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;map,
+                                                                                                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+                                                                                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
@@ -820,7 +822,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1231">run</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1244">run</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -836,7 +838,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1244">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1257">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -850,7 +852,7 @@ implements org.apache.hadoop.util.Tool</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>setBulkToken</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1259">setBulkToken</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;stagingDir)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html#line.1272">setBulkToken</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;stagingDir)</pre>
 <div class="block">Called from replication sink, where it manages bulkToken(staging directory) by itself. This is
  used only when SecureBulkLoadEndpoint is configured in hbase.coprocessor.region.classes
  property. This directory is used as a temporary directory where all files are initially


[23/35] hbase-site git commit: Published site at 9250bf809155ebe93fd6ae8a0485b22c744fdf70.

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/f17356a7/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
index 6d25806..55fa666 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/LoadIncrementalHFiles.html
@@ -370,12 +370,12 @@
 <span class="sourceLineNo">362</span>   * @param regionLocator region locator<a name="line.362"></a>
 <span class="sourceLineNo">363</span>   * @param silence true to ignore unmatched column families<a name="line.363"></a>
 <span class="sourceLineNo">364</span>   * @param copyFile always copy hfiles if true<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * @return List of filenames which were not found<a name="line.365"></a>
+<span class="sourceLineNo">365</span>   * @return Map of LoadQueueItem to region<a name="line.365"></a>
 <span class="sourceLineNo">366</span>   * @throws TableNotFoundException if table does not yet exist<a name="line.366"></a>
 <span class="sourceLineNo">367</span>   */<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  public List&lt;String&gt; doBulkLoad(Map&lt;byte[], List&lt;Path&gt;&gt; map, final Admin admin, Table table,<a name="line.368"></a>
-<span class="sourceLineNo">369</span>          RegionLocator regionLocator, boolean silence, boolean copyFile)<a name="line.369"></a>
-<span class="sourceLineNo">370</span>              throws TableNotFoundException, IOException {<a name="line.370"></a>
+<span class="sourceLineNo">368</span>  public Map&lt;LoadQueueItem, ByteBuffer&gt; doBulkLoad(Map&lt;byte[], List&lt;Path&gt;&gt; map, final Admin admin,<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      Table table, RegionLocator regionLocator, boolean silence, boolean copyFile)<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          throws TableNotFoundException, IOException {<a name="line.370"></a>
 <span class="sourceLineNo">371</span>    if (!admin.isTableAvailable(regionLocator.getName())) {<a name="line.371"></a>
 <span class="sourceLineNo">372</span>      throw new TableNotFoundException("Table " + table.getName() + " is not currently available.");<a name="line.372"></a>
 <span class="sourceLineNo">373</span>    }<a name="line.373"></a>
@@ -457,8 +457,8 @@
 <span class="sourceLineNo">449</span>    }<a name="line.449"></a>
 <span class="sourceLineNo">450</span>  }<a name="line.450"></a>
 <span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  List&lt;String&gt; performBulkLoad(final Admin admin, Table table, RegionLocator regionLocator,<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      Deque&lt;LoadQueueItem&gt; queue, ExecutorService pool,<a name="line.453"></a>
+<span class="sourceLineNo">452</span>  Map&lt;LoadQueueItem, ByteBuffer&gt; performBulkLoad(final Admin admin, Table table,<a name="line.452"></a>
+<span class="sourceLineNo">453</span>      RegionLocator regionLocator, Deque&lt;LoadQueueItem&gt; queue, ExecutorService pool,<a name="line.453"></a>
 <span class="sourceLineNo">454</span>      SecureBulkLoadClient secureClient, boolean copyFile) throws IOException {<a name="line.454"></a>
 <span class="sourceLineNo">455</span>    int count = 0;<a name="line.455"></a>
 <span class="sourceLineNo">456</span><a name="line.456"></a>
@@ -472,802 +472,815 @@
 <span class="sourceLineNo">464</span>    // fs is the source filesystem<a name="line.464"></a>
 <span class="sourceLineNo">465</span>    fsDelegationToken.acquireDelegationToken(fs);<a name="line.465"></a>
 <span class="sourceLineNo">466</span>    bulkToken = secureClient.prepareBulkLoad(admin.getConnection());<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; pair = null;<a name="line.467"></a>
+<span class="sourceLineNo">467</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; pair = null;<a name="line.467"></a>
 <span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // Assumes that region splits can happen while this occurs.<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    while (!queue.isEmpty()) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      // need to reload split keys each iteration.<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys = regionLocator.getStartEndKeys();<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      if (count != 0) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>        LOG.info("Split occured while grouping HFiles, retry attempt " +<a name="line.474"></a>
-<span class="sourceLineNo">475</span>            + count + " with " + queue.size() + " files remaining to group or split");<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span>      int maxRetries = getConf().getInt(HConstants.BULKLOAD_MAX_RETRIES_NUMBER, 10);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      maxRetries = Math.max(maxRetries, startEndKeys.getFirst().length + 1);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      if (maxRetries != 0 &amp;&amp; count &gt;= maxRetries) {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        throw new IOException("Retry attempted " + count +<a name="line.481"></a>
-<span class="sourceLineNo">482</span>            " times without completing, bailing out");<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      }<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      count++;<a name="line.484"></a>
-<span class="sourceLineNo">485</span><a name="line.485"></a>
-<span class="sourceLineNo">486</span>      // Using ByteBuffer for byte[] equality semantics<a name="line.486"></a>
-<span class="sourceLineNo">487</span>      pair = groupOrSplitPhase(table, pool, queue, startEndKeys);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = pair.getFirst();<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span>      if (!checkHFilesCountPerRegionPerFamily(regionGroups)) {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        // Error is logged inside checkHFilesCountPerRegionPerFamily.<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        throw new IOException("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            + " hfiles to one family of one region");<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>      bulkLoadPhase(table, admin.getConnection(), pool, queue, regionGroups, copyFile);<a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span>      // NOTE: The next iteration's split / group could happen in parallel to<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      // atomic bulkloads assuming that there are splits and no merges, and<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      // that we can atomically pull out the groups we want to retry.<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>    if (!queue.isEmpty()) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      throw new RuntimeException("Bulk load aborted with some files not yet loaded."<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        + "Please check log for more details.");<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    if (pair == null) return null;<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    return pair.getSecond();<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  }<a name="line.509"></a>
-<span class="sourceLineNo">510</span><a name="line.510"></a>
-<span class="sourceLineNo">511</span>  /**<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.513"></a>
-<span class="sourceLineNo">514</span>   * families in it.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   * @param table table to which hfiles should be loaded<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * @param queue queue which needs to be loaded into the table<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @throws IOException If any I/O or network error occurred<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   */<a name="line.520"></a>
-<span class="sourceLineNo">521</span>  public void prepareHFileQueue(Path hfilesDir, Table table, Deque&lt;LoadQueueItem&gt; queue,<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      boolean validateHFile) throws IOException {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    prepareHFileQueue(hfilesDir, table, queue, validateHFile, false);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>  /**<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.527"></a>
-<span class="sourceLineNo">528</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.528"></a>
-<span class="sourceLineNo">529</span>   * families in it.<a name="line.529"></a>
-<span class="sourceLineNo">530</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.530"></a>
-<span class="sourceLineNo">531</span>   * @param table table to which hfiles should be loaded<a name="line.531"></a>
-<span class="sourceLineNo">532</span>   * @param queue queue which needs to be loaded into the table<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @param silence  true to ignore unmatched column families<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * @throws IOException If any I/O or network error occurred<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   */<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  public void prepareHFileQueue(Path hfilesDir, Table table,<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      Deque&lt;LoadQueueItem&gt; queue, boolean validateHFile, boolean silence) throws IOException {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    discoverLoadQueue(queue, hfilesDir, validateHFile);<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>  /**<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.545"></a>
-<span class="sourceLineNo">546</span>   * families in it.<a name="line.546"></a>
-<span class="sourceLineNo">547</span>   * @param map map of family to List of hfiles<a name="line.547"></a>
-<span class="sourceLineNo">548</span>   * @param table table to which hfiles should be loaded<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * @param queue queue which needs to be loaded into the table<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * @param silence  true to ignore unmatched column families<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @throws IOException If any I/O or network error occurred<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  public void prepareHFileQueue(Map&lt;byte[], List&lt;Path&gt;&gt; map, Table table,<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      Deque&lt;LoadQueueItem&gt; queue, boolean silence) throws IOException {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    populateLoadQueue(queue, map);<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.556"></a>
-<span class="sourceLineNo">557</span>  }<a name="line.557"></a>
-<span class="sourceLineNo">558</span><a name="line.558"></a>
-<span class="sourceLineNo">559</span>  // Initialize a thread pool<a name="line.559"></a>
-<span class="sourceLineNo">560</span>  private ExecutorService createExecutorService() {<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    ThreadFactoryBuilder builder = new ThreadFactoryBuilder();<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    builder.setNameFormat("LoadIncrementalHFiles-%1$d");<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    ExecutorService pool = new ThreadPoolExecutor(nrThreads, nrThreads, 60, TimeUnit.SECONDS,<a name="line.563"></a>
-<span class="sourceLineNo">564</span>        new LinkedBlockingQueue&lt;Runnable&gt;(), builder.build());<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    ((ThreadPoolExecutor) pool).allowCoreThreadTimeOut(true);<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    return pool;<a name="line.566"></a>
-<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
-<span class="sourceLineNo">568</span><a name="line.568"></a>
-<span class="sourceLineNo">569</span>  /**<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   * Checks whether there is any invalid family name in HFiles to be bulk loaded.<a name="line.570"></a>
-<span class="sourceLineNo">571</span>   */<a name="line.571"></a>
-<span class="sourceLineNo">572</span>  private void validateFamiliesInHFiles(Table table, Deque&lt;LoadQueueItem&gt; queue, boolean silence)<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      throws IOException {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    Collection&lt;HColumnDescriptor&gt; families = table.getTableDescriptor().getFamilies();<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    List&lt;String&gt; familyNames = new ArrayList&lt;&gt;(families.size());<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    for (HColumnDescriptor family : families) {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      familyNames.add(family.getNameAsString());<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    }<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    Iterator&lt;LoadQueueItem&gt; queueIter = queue.iterator();<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    while (queueIter.hasNext()) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      LoadQueueItem lqi = queueIter.next();<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      String familyNameInHFile = Bytes.toString(lqi.family);<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      if (!familyNames.contains(familyNameInHFile)) {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        unmatchedFamilies.add(familyNameInHFile);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      }<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    if (unmatchedFamilies.size() &gt; 0) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      String msg =<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          "Unmatched family names found: unmatched family names in HFiles to be bulkloaded: "<a name="line.589"></a>
-<span class="sourceLineNo">590</span>              + unmatchedFamilies + "; valid family names of table " + table.getName() + " are: "<a name="line.590"></a>
-<span class="sourceLineNo">591</span>              + familyNames;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      LOG.error(msg);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      if (!silence) throw new IOException(msg);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    }<a name="line.594"></a>
-<span class="sourceLineNo">595</span>  }<a name="line.595"></a>
-<span class="sourceLineNo">596</span><a name="line.596"></a>
-<span class="sourceLineNo">597</span>  /**<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * &lt;ol&gt;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * &lt;/li&gt;<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   * &lt;/ol&gt;<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   * @param table Table to which these hfiles should be loaded to<a name="line.604"></a>
-<span class="sourceLineNo">605</span>   * @param conn Connection to use<a name="line.605"></a>
-<span class="sourceLineNo">606</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.606"></a>
-<span class="sourceLineNo">607</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    loadHFileQueue(table, conn, queue, startEndKeys, false);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>  }<a name="line.612"></a>
-<span class="sourceLineNo">613</span><a name="line.613"></a>
-<span class="sourceLineNo">614</span>  /**<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   * &lt;ol&gt;<a name="line.616"></a>
-<span class="sourceLineNo">617</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.617"></a>
-<span class="sourceLineNo">618</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.618"></a>
-<span class="sourceLineNo">619</span>   * &lt;/li&gt;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>   * &lt;/ol&gt;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>   * @param table Table to which these hfiles should be loaded to<a name="line.621"></a>
-<span class="sourceLineNo">622</span>   * @param conn Connection to use<a name="line.622"></a>
-<span class="sourceLineNo">623</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.624"></a>
-<span class="sourceLineNo">625</span>   */<a name="line.625"></a>
-<span class="sourceLineNo">626</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys, boolean copyFile) throws IOException {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    ExecutorService pool = null;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    try {<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      pool = createExecutorService();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups =<a name="line.631"></a>
-<span class="sourceLineNo">632</span>          groupOrSplitPhase(table, pool, queue, startEndKeys).getFirst();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      bulkLoadPhase(table, conn, pool, queue, regionGroups, copyFile);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    } finally {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      if (pool != null) {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>        pool.shutdown();<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      }<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    }<a name="line.638"></a>
-<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
-<span class="sourceLineNo">640</span><a name="line.640"></a>
-<span class="sourceLineNo">641</span>  /**<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * This takes the LQI's grouped by likely regions and attempts to bulk load<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * them.  Any failures are re-queued for another pass with the<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * groupOrSplitPhase.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   */<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  protected void bulkLoadPhase(final Table table, final Connection conn,<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.647"></a>
-<span class="sourceLineNo">648</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, boolean copyFile) throws IOException {<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    // atomically bulk load the groups.<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    Set&lt;Future&lt;List&lt;LoadQueueItem&gt;&gt;&gt; loadingFutures = new HashSet&lt;&gt;();<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    for (Entry&lt;ByteBuffer, ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()){<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      final byte[] first = e.getKey().array();<a name="line.652"></a>
-<span class="sourceLineNo">653</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.653"></a>
-<span class="sourceLineNo">654</span><a name="line.654"></a>
-<span class="sourceLineNo">655</span>      final Callable&lt;List&lt;LoadQueueItem&gt;&gt; call = new Callable&lt;List&lt;LoadQueueItem&gt;&gt;() {<a name="line.655"></a>
-<span class="sourceLineNo">656</span>        @Override<a name="line.656"></a>
-<span class="sourceLineNo">657</span>        public List&lt;LoadQueueItem&gt; call() throws Exception {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>          List&lt;LoadQueueItem&gt; toRetry =<a name="line.658"></a>
-<span class="sourceLineNo">659</span>              tryAtomicRegionLoad(conn, table.getName(), first, lqis, copyFile);<a name="line.659"></a>
-<span class="sourceLineNo">660</span>          return toRetry;<a name="line.660"></a>
-<span class="sourceLineNo">661</span>        }<a name="line.661"></a>
-<span class="sourceLineNo">662</span>      };<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      loadingFutures.add(pool.submit(call));<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span><a name="line.665"></a>
-<span class="sourceLineNo">666</span>    // get all the results.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    for (Future&lt;List&lt;LoadQueueItem&gt;&gt; future : loadingFutures) {<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      try {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>        List&lt;LoadQueueItem&gt; toRetry = future.get();<a name="line.669"></a>
-<span class="sourceLineNo">670</span><a name="line.670"></a>
-<span class="sourceLineNo">671</span>        // LQIs that are requeued to be regrouped.<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        queue.addAll(toRetry);<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>      } catch (ExecutionException e1) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        Throwable t = e1.getCause();<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        if (t instanceof IOException) {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          // At this point something unrecoverable has happened.<a name="line.677"></a>
-<span class="sourceLineNo">678</span>          // TODO Implement bulk load recovery<a name="line.678"></a>
-<span class="sourceLineNo">679</span>          throw new IOException("BulkLoad encountered an unrecoverable problem", t);<a name="line.679"></a>
-<span class="sourceLineNo">680</span>        }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>        LOG.error("Unexpected execution exception during bulk load", e1);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>        throw new IllegalStateException(t);<a name="line.682"></a>
-<span class="sourceLineNo">683</span>      } catch (InterruptedException e1) {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>        LOG.error("Unexpected interrupted exception during bulk load", e1);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.685"></a>
-<span class="sourceLineNo">686</span>      }<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    }<a name="line.687"></a>
-<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
-<span class="sourceLineNo">689</span><a name="line.689"></a>
-<span class="sourceLineNo">690</span>  private boolean checkHFilesCountPerRegionPerFamily(<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    for (Entry&lt;ByteBuffer,<a name="line.692"></a>
-<span class="sourceLineNo">693</span>      ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()) {<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.694"></a>
-<span class="sourceLineNo">695</span>      HashMap&lt;byte[], MutableInt&gt; filesMap = new HashMap&lt;&gt;();<a name="line.695"></a>
-<span class="sourceLineNo">696</span>      for (LoadQueueItem lqi: lqis) {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        MutableInt count = filesMap.get(lqi.family);<a name="line.697"></a>
-<span class="sourceLineNo">698</span>        if (count == null) {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>          count = new MutableInt();<a name="line.699"></a>
-<span class="sourceLineNo">700</span>          filesMap.put(lqi.family, count);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        count.increment();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>        if (count.intValue() &gt; maxFilesPerRegionPerFamily) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>          LOG.error("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.704"></a>
-<span class="sourceLineNo">705</span>            + " hfiles to family " + Bytes.toStringBinary(lqi.family)<a name="line.705"></a>
-<span class="sourceLineNo">706</span>            + " of region with start key "<a name="line.706"></a>
-<span class="sourceLineNo">707</span>            + Bytes.toStringBinary(e.getKey()));<a name="line.707"></a>
-<span class="sourceLineNo">708</span>          return false;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        }<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    return true;<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  }<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>  /**<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * @param table the table to load into<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * @param pool the ExecutorService<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   * @param queue the queue for LoadQueueItem<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   * @param startEndKeys start and end keys<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * @return A map that groups LQI by likely bulk load region targets and List of missing hfiles.<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   */<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  private Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; groupOrSplitPhase(<a name="line.722"></a>
-<span class="sourceLineNo">723</span>      final Table table, ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    // &lt;region start key, LQI&gt; need synchronized only within this scope of this<a name="line.725"></a>
-<span class="sourceLineNo">726</span>    // phase because of the puts that happen in futures.<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    Multimap&lt;ByteBuffer, LoadQueueItem&gt; rgs = HashMultimap.create();<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = Multimaps.synchronizedMultimap(rgs);<a name="line.728"></a>
-<span class="sourceLineNo">729</span>    List&lt;String&gt; missingHFiles = new ArrayList&lt;&gt;();<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, List&lt;String&gt;&gt; pair = new Pair&lt;&gt;(regionGroups,<a name="line.730"></a>
-<span class="sourceLineNo">731</span>        missingHFiles);<a name="line.731"></a>
-<span class="sourceLineNo">732</span><a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // drain LQIs and figure out bulk load groups<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    Set&lt;Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;&gt; splittingFutures = new HashSet&lt;&gt;();<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    while (!queue.isEmpty()) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      final LoadQueueItem item = queue.remove();<a name="line.736"></a>
-<span class="sourceLineNo">737</span><a name="line.737"></a>
-<span class="sourceLineNo">738</span>      final Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; call =<a name="line.738"></a>
-<span class="sourceLineNo">739</span>          new Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;() {<a name="line.739"></a>
-<span class="sourceLineNo">740</span>        @Override<a name="line.740"></a>
-<span class="sourceLineNo">741</span>        public Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; call() throws Exception {<a name="line.741"></a>
-<span class="sourceLineNo">742</span>          Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = groupOrSplit(regionGroups, item, table,<a name="line.742"></a>
-<span class="sourceLineNo">743</span>              startEndKeys);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>          return splits;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>        }<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      };<a name="line.746"></a>
-<span class="sourceLineNo">747</span>      splittingFutures.add(pool.submit(call));<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    }<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    // get all the results.  All grouping and splitting must finish before<a name="line.749"></a>
-<span class="sourceLineNo">750</span>    // we can attempt the atomic loads.<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    for (Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; lqis : splittingFutures) {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>      try {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>        Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = lqis.get();<a name="line.753"></a>
-<span class="sourceLineNo">754</span>        if (splits != null) {<a name="line.754"></a>
-<span class="sourceLineNo">755</span>          if (splits.getFirst() != null) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>            queue.addAll(splits.getFirst());<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          } else {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>            missingHFiles.add(splits.getSecond());<a name="line.758"></a>
-<span class="sourceLineNo">759</span>          }<a name="line.759"></a>
-<span class="sourceLineNo">760</span>        }<a name="line.760"></a>
-<span class="sourceLineNo">761</span>      } catch (ExecutionException e1) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>        Throwable t = e1.getCause();<a name="line.762"></a>
-<span class="sourceLineNo">763</span>        if (t instanceof IOException) {<a name="line.763"></a>
-<span class="sourceLineNo">764</span>          LOG.error("IOException during splitting", e1);<a name="line.764"></a>
-<span class="sourceLineNo">765</span>          throw (IOException)t; // would have been thrown if not parallelized,<a name="line.765"></a>
-<span class="sourceLineNo">766</span>        }<a name="line.766"></a>
-<span class="sourceLineNo">767</span>        LOG.error("Unexpected execution exception during splitting", e1);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>        throw new IllegalStateException(t);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      } catch (InterruptedException e1) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>        LOG.error("Unexpected interrupted exception during splitting", e1);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    }<a name="line.773"></a>
-<span class="sourceLineNo">774</span>    return pair;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>  }<a name="line.775"></a>
-<span class="sourceLineNo">776</span><a name="line.776"></a>
-<span class="sourceLineNo">777</span>  // unique file name for the table<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  private String getUniqueName() {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>    return UUID.randomUUID().toString().replaceAll("-", "");<a name="line.779"></a>
-<span class="sourceLineNo">780</span>  }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>  protected List&lt;LoadQueueItem&gt; splitStoreFile(final LoadQueueItem item,<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      final Table table, byte[] startKey,<a name="line.783"></a>
-<span class="sourceLineNo">784</span>      byte[] splitKey) throws IOException {<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    final Path hfilePath = item.hfilePath;<a name="line.785"></a>
-<span class="sourceLineNo">786</span><a name="line.786"></a>
-<span class="sourceLineNo">787</span>    Path tmpDir = item.hfilePath.getParent();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    if (!tmpDir.getName().equals(TMP_DIR)) {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>      tmpDir = new Path(tmpDir, TMP_DIR);<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    }<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span>    LOG.info("HFile at " + hfilePath + " no longer fits inside a single " +<a name="line.792"></a>
-<span class="sourceLineNo">793</span>      "region. Splitting...");<a name="line.793"></a>
-<span class="sourceLineNo">794</span><a name="line.794"></a>
-<span class="sourceLineNo">795</span>    String uniqueName = getUniqueName();<a name="line.795"></a>
-<span class="sourceLineNo">796</span>    HColumnDescriptor familyDesc = table.getTableDescriptor().getFamily(item.family);<a name="line.796"></a>
-<span class="sourceLineNo">797</span><a name="line.797"></a>
-<span class="sourceLineNo">798</span>    Path botOut = new Path(tmpDir, uniqueName + ".bottom");<a name="line.798"></a>
-<span class="sourceLineNo">799</span>    Path topOut = new Path(tmpDir, uniqueName + ".top");<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    splitStoreFile(getConf(), hfilePath, familyDesc, splitKey, botOut, topOut);<a name="line.800"></a>
-<span class="sourceLineNo">801</span><a name="line.801"></a>
-<span class="sourceLineNo">802</span>    FileSystem fs = tmpDir.getFileSystem(getConf());<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    fs.setPermission(tmpDir, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    fs.setPermission(botOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    fs.setPermission(topOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.805"></a>
+<span class="sourceLineNo">469</span>    Map&lt;LoadQueueItem, ByteBuffer&gt; item2RegionMap = new HashMap&lt;&gt;();<a name="line.469"></a>
+<span class="sourceLineNo">470</span>    // Assumes that region splits can happen while this occurs.<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    while (!queue.isEmpty()) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>      // need to reload split keys each iteration.<a name="line.472"></a>
+<span class="sourceLineNo">473</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys = regionLocator.getStartEndKeys();<a name="line.473"></a>
+<span class="sourceLineNo">474</span>      if (count != 0) {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>        LOG.info("Split occured while grouping HFiles, retry attempt " +<a name="line.475"></a>
+<span class="sourceLineNo">476</span>            + count + " with " + queue.size() + " files remaining to group or split");<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      }<a name="line.477"></a>
+<span class="sourceLineNo">478</span><a name="line.478"></a>
+<span class="sourceLineNo">479</span>      int maxRetries = getConf().getInt(HConstants.BULKLOAD_MAX_RETRIES_NUMBER, 10);<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      maxRetries = Math.max(maxRetries, startEndKeys.getFirst().length + 1);<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      if (maxRetries != 0 &amp;&amp; count &gt;= maxRetries) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span>        throw new IOException("Retry attempted " + count +<a name="line.482"></a>
+<span class="sourceLineNo">483</span>            " times without completing, bailing out");<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      count++;<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>      // Using ByteBuffer for byte[] equality semantics<a name="line.487"></a>
+<span class="sourceLineNo">488</span>      pair = groupOrSplitPhase(table, pool, queue, startEndKeys);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = pair.getFirst();<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>      if (!checkHFilesCountPerRegionPerFamily(regionGroups)) {<a name="line.491"></a>
+<span class="sourceLineNo">492</span>        // Error is logged inside checkHFilesCountPerRegionPerFamily.<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        throw new IOException("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.493"></a>
+<span class="sourceLineNo">494</span>            + " hfiles to one family of one region");<a name="line.494"></a>
+<span class="sourceLineNo">495</span>      }<a name="line.495"></a>
+<span class="sourceLineNo">496</span><a name="line.496"></a>
+<span class="sourceLineNo">497</span>      bulkLoadPhase(table, admin.getConnection(), pool, queue, regionGroups, copyFile,<a name="line.497"></a>
+<span class="sourceLineNo">498</span>          item2RegionMap);<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>      // NOTE: The next iteration's split / group could happen in parallel to<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      // atomic bulkloads assuming that there are splits and no merges, and<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      // that we can atomically pull out the groups we want to retry.<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    }<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span>    if (!queue.isEmpty()) {<a name="line.505"></a>
+<span class="sourceLineNo">506</span>      throw new RuntimeException("Bulk load aborted with some files not yet loaded."<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        + "Please check log for more details.");<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    return item2RegionMap;<a name="line.509"></a>
+<span class="sourceLineNo">510</span>  }<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span>  /**<a name="line.512"></a>
+<span class="sourceLineNo">513</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.513"></a>
+<span class="sourceLineNo">514</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.514"></a>
+<span class="sourceLineNo">515</span>   * families in it.<a name="line.515"></a>
+<span class="sourceLineNo">516</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.516"></a>
+<span class="sourceLineNo">517</span>   * @param table table to which hfiles should be loaded<a name="line.517"></a>
+<span class="sourceLineNo">518</span>   * @param queue queue which needs to be loaded into the table<a name="line.518"></a>
+<span class="sourceLineNo">519</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.519"></a>
+<span class="sourceLineNo">520</span>   * @throws IOException If any I/O or network error occurred<a name="line.520"></a>
+<span class="sourceLineNo">521</span>   */<a name="line.521"></a>
+<span class="sourceLineNo">522</span>  public void prepareHFileQueue(Path hfilesDir, Table table, Deque&lt;LoadQueueItem&gt; queue,<a name="line.522"></a>
+<span class="sourceLineNo">523</span>      boolean validateHFile) throws IOException {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>    prepareHFileQueue(hfilesDir, table, queue, validateHFile, false);<a name="line.524"></a>
+<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
+<span class="sourceLineNo">526</span><a name="line.526"></a>
+<span class="sourceLineNo">527</span>  /**<a name="line.527"></a>
+<span class="sourceLineNo">528</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.528"></a>
+<span class="sourceLineNo">529</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.529"></a>
+<span class="sourceLineNo">530</span>   * families in it.<a name="line.530"></a>
+<span class="sourceLineNo">531</span>   * @param hfilesDir directory containing list of hfiles to be loaded into the table<a name="line.531"></a>
+<span class="sourceLineNo">532</span>   * @param table table to which hfiles should be loaded<a name="line.532"></a>
+<span class="sourceLineNo">533</span>   * @param queue queue which needs to be loaded into the table<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   * @param validateHFile if true hfiles will be validated for its format<a name="line.534"></a>
+<span class="sourceLineNo">535</span>   * @param silence  true to ignore unmatched column families<a name="line.535"></a>
+<span class="sourceLineNo">536</span>   * @throws IOException If any I/O or network error occurred<a name="line.536"></a>
+<span class="sourceLineNo">537</span>   */<a name="line.537"></a>
+<span class="sourceLineNo">538</span>  public void prepareHFileQueue(Path hfilesDir, Table table,<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      Deque&lt;LoadQueueItem&gt; queue, boolean validateHFile, boolean silence) throws IOException {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    discoverLoadQueue(queue, hfilesDir, validateHFile);<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  /**<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * Prepare a collection of {@link LoadQueueItem} from list of source hfiles contained in the<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   * passed directory and validates whether the prepared queue has all the valid table column<a name="line.546"></a>
+<span class="sourceLineNo">547</span>   * families in it.<a name="line.547"></a>
+<span class="sourceLineNo">548</span>   * @param map map of family to List of hfiles<a name="line.548"></a>
+<span class="sourceLineNo">549</span>   * @param table table to which hfiles should be loaded<a name="line.549"></a>
+<span class="sourceLineNo">550</span>   * @param queue queue which needs to be loaded into the table<a name="line.550"></a>
+<span class="sourceLineNo">551</span>   * @param silence  true to ignore unmatched column families<a name="line.551"></a>
+<span class="sourceLineNo">552</span>   * @throws IOException If any I/O or network error occurred<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   */<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  public void prepareHFileQueue(Map&lt;byte[], List&lt;Path&gt;&gt; map, Table table,<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      Deque&lt;LoadQueueItem&gt; queue, boolean silence) throws IOException {<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    populateLoadQueue(queue, map);<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    validateFamiliesInHFiles(table, queue, silence);<a name="line.557"></a>
+<span class="sourceLineNo">558</span>  }<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>  // Initialize a thread pool<a name="line.560"></a>
+<span class="sourceLineNo">561</span>  private ExecutorService createExecutorService() {<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    ThreadFactoryBuilder builder = new ThreadFactoryBuilder();<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    builder.setNameFormat("LoadIncrementalHFiles-%1$d");<a name="line.563"></a>
+<span class="sourceLineNo">564</span>    ExecutorService pool = new ThreadPoolExecutor(nrThreads, nrThreads, 60, TimeUnit.SECONDS,<a name="line.564"></a>
+<span class="sourceLineNo">565</span>        new LinkedBlockingQueue&lt;Runnable&gt;(), builder.build());<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    ((ThreadPoolExecutor) pool).allowCoreThreadTimeOut(true);<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    return pool;<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  }<a name="line.568"></a>
+<span class="sourceLineNo">569</span><a name="line.569"></a>
+<span class="sourceLineNo">570</span>  /**<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   * Checks whether there is any invalid family name in HFiles to be bulk loaded.<a name="line.571"></a>
+<span class="sourceLineNo">572</span>   */<a name="line.572"></a>
+<span class="sourceLineNo">573</span>  private void validateFamiliesInHFiles(Table table, Deque&lt;LoadQueueItem&gt; queue, boolean silence)<a name="line.573"></a>
+<span class="sourceLineNo">574</span>      throws IOException {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    Collection&lt;HColumnDescriptor&gt; families = table.getTableDescriptor().getFamilies();<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    List&lt;String&gt; familyNames = new ArrayList&lt;&gt;(families.size());<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    for (HColumnDescriptor family : families) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      familyNames.add(family.getNameAsString());<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    Iterator&lt;LoadQueueItem&gt; queueIter = queue.iterator();<a name="line.580"></a>
+<span class="sourceLineNo">581</span>    while (queueIter.hasNext()) {<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      LoadQueueItem lqi = queueIter.next();<a name="line.582"></a>
+<span class="sourceLineNo">583</span>      String familyNameInHFile = Bytes.toString(lqi.family);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>      if (!familyNames.contains(familyNameInHFile)) {<a name="line.584"></a>
+<span class="sourceLineNo">585</span>        unmatchedFamilies.add(familyNameInHFile);<a name="line.585"></a>
+<span class="sourceLineNo">586</span>      }<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    }<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    if (unmatchedFamilies.size() &gt; 0) {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      String msg =<a name="line.589"></a>
+<span class="sourceLineNo">590</span>          "Unmatched family names found: unmatched family names in HFiles to be bulkloaded: "<a name="line.590"></a>
+<span class="sourceLineNo">591</span>              + unmatchedFamilies + "; valid family names of table " + table.getName() + " are: "<a name="line.591"></a>
+<span class="sourceLineNo">592</span>              + familyNames;<a name="line.592"></a>
+<span class="sourceLineNo">593</span>      LOG.error(msg);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      if (!silence) throw new IOException(msg);<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    }<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  }<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>  /**<a name="line.598"></a>
+<span class="sourceLineNo">599</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.599"></a>
+<span class="sourceLineNo">600</span>   * &lt;ol&gt;<a name="line.600"></a>
+<span class="sourceLineNo">601</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.601"></a>
+<span class="sourceLineNo">602</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.602"></a>
+<span class="sourceLineNo">603</span>   * &lt;/li&gt;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>   * &lt;/ol&gt;<a name="line.604"></a>
+<span class="sourceLineNo">605</span>   * @param table Table to which these hfiles should be loaded to<a name="line.605"></a>
+<span class="sourceLineNo">606</span>   * @param conn Connection to use<a name="line.606"></a>
+<span class="sourceLineNo">607</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.607"></a>
+<span class="sourceLineNo">608</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.608"></a>
+<span class="sourceLineNo">609</span>   */<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.610"></a>
+<span class="sourceLineNo">611</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    loadHFileQueue(table, conn, queue, startEndKeys, false);<a name="line.612"></a>
+<span class="sourceLineNo">613</span>  }<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>  /**<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   * Used by the replication sink to load the hfiles from the source cluster. It does the following,<a name="line.616"></a>
+<span class="sourceLineNo">617</span>   * &lt;ol&gt;<a name="line.617"></a>
+<span class="sourceLineNo">618</span>   * &lt;li&gt;LoadIncrementalHFiles#groupOrSplitPhase(Table, ExecutorService, Deque, Pair)}&lt;/li&gt;<a name="line.618"></a>
+<span class="sourceLineNo">619</span>   * &lt;li&gt;LoadIncrementalHFiles#bulkLoadPhase(Table, Connection, ExecutorService, Deque, Multimap)<a name="line.619"></a>
+<span class="sourceLineNo">620</span>   * &lt;/li&gt;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>   * &lt;/ol&gt;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * @param table Table to which these hfiles should be loaded to<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * @param conn Connection to use<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * @param queue {@link LoadQueueItem} has hfiles yet to be loaded<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   * @param startEndKeys starting and ending row keys of the region<a name="line.625"></a>
+<span class="sourceLineNo">626</span>   */<a name="line.626"></a>
+<span class="sourceLineNo">627</span>  public void loadHFileQueue(final Table table, final Connection conn, Deque&lt;LoadQueueItem&gt; queue,<a name="line.627"></a>
+<span class="sourceLineNo">628</span>      Pair&lt;byte[][], byte[][]&gt; startEndKeys, boolean copyFile) throws IOException {<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    ExecutorService pool = null;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>    try {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      pool = createExecutorService();<a name="line.631"></a>
+<span class="sourceLineNo">632</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups =<a name="line.632"></a>
+<span class="sourceLineNo">633</span>          groupOrSplitPhase(table, pool, queue, startEndKeys).getFirst();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      bulkLoadPhase(table, conn, pool, queue, regionGroups, copyFile, null);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    } finally {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      if (pool != null) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        pool.shutdown();<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
+<span class="sourceLineNo">640</span>  }<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
+<span class="sourceLineNo">643</span>   * This takes the LQI's grouped by likely regions and attempts to bulk load<a name="line.643"></a>
+<span class="sourceLineNo">644</span>   * them.  Any failures are re-queued for another pass with the<a name="line.644"></a>
+<span class="sourceLineNo">645</span>   * groupOrSplitPhase.<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   */<a name="line.646"></a>
+<span class="sourceLineNo">647</span>  protected void bulkLoadPhase(final Table table, final Connection conn,<a name="line.647"></a>
+<span class="sourceLineNo">648</span>      ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.648"></a>
+<span class="sourceLineNo">649</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, boolean copyFile,<a name="line.649"></a>
+<span class="sourceLineNo">650</span>      Map&lt;LoadQueueItem, ByteBuffer&gt; item2RegionMap) throws IOException {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>    // atomically bulk load the groups.<a name="line.651"></a>
+<span class="sourceLineNo">652</span>    Set&lt;Future&lt;List&lt;LoadQueueItem&gt;&gt;&gt; loadingFutures = new HashSet&lt;&gt;();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    for (Entry&lt;ByteBuffer, ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()){<a name="line.653"></a>
+<span class="sourceLineNo">654</span>      final byte[] first = e.getKey().array();<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.655"></a>
+<span class="sourceLineNo">656</span><a name="line.656"></a>
+<span class="sourceLineNo">657</span>      final Callable&lt;List&lt;LoadQueueItem&gt;&gt; call = new Callable&lt;List&lt;LoadQueueItem&gt;&gt;() {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>        @Override<a name="line.658"></a>
+<span class="sourceLineNo">659</span>        public List&lt;LoadQueueItem&gt; call() throws Exception {<a name="line.659"></a>
+<span class="sourceLineNo">660</span>          List&lt;LoadQueueItem&gt; toRetry =<a name="line.660"></a>
+<span class="sourceLineNo">661</span>              tryAtomicRegionLoad(conn, table.getName(), first, lqis, copyFile);<a name="line.661"></a>
+<span class="sourceLineNo">662</span>          return toRetry;<a name="line.662"></a>
+<span class="sourceLineNo">663</span>        }<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      };<a name="line.664"></a>
+<span class="sourceLineNo">665</span>      if (item2RegionMap != null) {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>        for (LoadQueueItem lqi : lqis) {<a name="line.666"></a>
+<span class="sourceLineNo">667</span>          item2RegionMap.put(lqi, e.getKey());<a name="line.667"></a>
+<span class="sourceLineNo">668</span>        }<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      }<a name="line.669"></a>
+<span class="sourceLineNo">670</span>      loadingFutures.add(pool.submit(call));<a name="line.670"></a>
+<span class="sourceLineNo">671</span>    }<a name="line.671"></a>
+<span class="sourceLineNo">672</span><a name="line.672"></a>
+<span class="sourceLineNo">673</span>    // get all the results.<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    for (Future&lt;List&lt;LoadQueueItem&gt;&gt; future : loadingFutures) {<a name="line.674"></a>
+<span class="sourceLineNo">675</span>      try {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>        List&lt;LoadQueueItem&gt; toRetry = future.get();<a name="line.676"></a>
+<span class="sourceLineNo">677</span><a name="line.677"></a>
+<span class="sourceLineNo">678</span>        if (item2RegionMap != null) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>          for (LoadQueueItem lqi : toRetry) {<a name="line.679"></a>
+<span class="sourceLineNo">680</span>            item2RegionMap.remove(lqi);<a name="line.680"></a>
+<span class="sourceLineNo">681</span>          }<a name="line.681"></a>
+<span class="sourceLineNo">682</span>        }<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        // LQIs that are requeued to be regrouped.<a name="line.683"></a>
+<span class="sourceLineNo">684</span>        queue.addAll(toRetry);<a name="line.684"></a>
+<span class="sourceLineNo">685</span><a name="line.685"></a>
+<span class="sourceLineNo">686</span>      } catch (ExecutionException e1) {<a name="line.686"></a>
+<span class="sourceLineNo">687</span>        Throwable t = e1.getCause();<a name="line.687"></a>
+<span class="sourceLineNo">688</span>        if (t instanceof IOException) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>          // At this point something unrecoverable has happened.<a name="line.689"></a>
+<span class="sourceLineNo">690</span>          // TODO Implement bulk load recovery<a name="line.690"></a>
+<span class="sourceLineNo">691</span>          throw new IOException("BulkLoad encountered an unrecoverable problem", t);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>        }<a name="line.692"></a>
+<span class="sourceLineNo">693</span>        LOG.error("Unexpected execution exception during bulk load", e1);<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        throw new IllegalStateException(t);<a name="line.694"></a>
+<span class="sourceLineNo">695</span>      } catch (InterruptedException e1) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>        LOG.error("Unexpected interrupted exception during bulk load", e1);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    }<a name="line.699"></a>
+<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
+<span class="sourceLineNo">701</span><a name="line.701"></a>
+<span class="sourceLineNo">702</span>  private boolean checkHFilesCountPerRegionPerFamily(<a name="line.702"></a>
+<span class="sourceLineNo">703</span>      final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    for (Entry&lt;ByteBuffer,<a name="line.704"></a>
+<span class="sourceLineNo">705</span>      ? extends Collection&lt;LoadQueueItem&gt;&gt; e: regionGroups.asMap().entrySet()) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>      final Collection&lt;LoadQueueItem&gt; lqis =  e.getValue();<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      HashMap&lt;byte[], MutableInt&gt; filesMap = new HashMap&lt;&gt;();<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      for (LoadQueueItem lqi: lqis) {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>        MutableInt count = filesMap.get(lqi.family);<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        if (count == null) {<a name="line.710"></a>
+<span class="sourceLineNo">711</span>          count = new MutableInt();<a name="line.711"></a>
+<span class="sourceLineNo">712</span>          filesMap.put(lqi.family, count);<a name="line.712"></a>
+<span class="sourceLineNo">713</span>        }<a name="line.713"></a>
+<span class="sourceLineNo">714</span>        count.increment();<a name="line.714"></a>
+<span class="sourceLineNo">715</span>        if (count.intValue() &gt; maxFilesPerRegionPerFamily) {<a name="line.715"></a>
+<span class="sourceLineNo">716</span>          LOG.error("Trying to load more than " + maxFilesPerRegionPerFamily<a name="line.716"></a>
+<span class="sourceLineNo">717</span>            + " hfiles to family " + Bytes.toStringBinary(lqi.family)<a name="line.717"></a>
+<span class="sourceLineNo">718</span>            + " of region with start key "<a name="line.718"></a>
+<span class="sourceLineNo">719</span>            + Bytes.toStringBinary(e.getKey()));<a name="line.719"></a>
+<span class="sourceLineNo">720</span>          return false;<a name="line.720"></a>
+<span class="sourceLineNo">721</span>        }<a name="line.721"></a>
+<span class="sourceLineNo">722</span>      }<a name="line.722"></a>
+<span class="sourceLineNo">723</span>    }<a name="line.723"></a>
+<span class="sourceLineNo">724</span>    return true;<a name="line.724"></a>
+<span class="sourceLineNo">725</span>  }<a name="line.725"></a>
+<span class="sourceLineNo">726</span><a name="line.726"></a>
+<span class="sourceLineNo">727</span>  /**<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * @param table the table to load into<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   * @param pool the ExecutorService<a name="line.729"></a>
+<span class="sourceLineNo">730</span>   * @param queue the queue for LoadQueueItem<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   * @param startEndKeys start and end keys<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   * @return A map that groups LQI by likely bulk load region targets and Set of missing hfiles.<a name="line.732"></a>
+<span class="sourceLineNo">733</span>   */<a name="line.733"></a>
+<span class="sourceLineNo">734</span>  private Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; groupOrSplitPhase(<a name="line.734"></a>
+<span class="sourceLineNo">735</span>      final Table table, ExecutorService pool, Deque&lt;LoadQueueItem&gt; queue,<a name="line.735"></a>
+<span class="sourceLineNo">736</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    // &lt;region start key, LQI&gt; need synchronized only within this scope of this<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    // phase because of the puts that happen in futures.<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    Multimap&lt;ByteBuffer, LoadQueueItem&gt; rgs = HashMultimap.create();<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    final Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups = Multimaps.synchronizedMultimap(rgs);<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    Set&lt;String&gt; missingHFiles = new HashSet&lt;&gt;();<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    Pair&lt;Multimap&lt;ByteBuffer, LoadQueueItem&gt;, Set&lt;String&gt;&gt; pair = new Pair&lt;&gt;(regionGroups,<a name="line.742"></a>
+<span class="sourceLineNo">743</span>        missingHFiles);<a name="line.743"></a>
+<span class="sourceLineNo">744</span><a name="line.744"></a>
+<span class="sourceLineNo">745</span>    // drain LQIs and figure out bulk load groups<a name="line.745"></a>
+<span class="sourceLineNo">746</span>    Set&lt;Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;&gt; splittingFutures = new HashSet&lt;&gt;();<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    while (!queue.isEmpty()) {<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      final LoadQueueItem item = queue.remove();<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>      final Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; call =<a name="line.750"></a>
+<span class="sourceLineNo">751</span>          new Callable&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt;() {<a name="line.751"></a>
+<span class="sourceLineNo">752</span>        @Override<a name="line.752"></a>
+<span class="sourceLineNo">753</span>        public Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; call() throws Exception {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>          Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = groupOrSplit(regionGroups, item, table,<a name="line.754"></a>
+<span class="sourceLineNo">755</span>              startEndKeys);<a name="line.755"></a>
+<span class="sourceLineNo">756</span>          return splits;<a name="line.756"></a>
+<span class="sourceLineNo">757</span>        }<a name="line.757"></a>
+<span class="sourceLineNo">758</span>      };<a name="line.758"></a>
+<span class="sourceLineNo">759</span>      splittingFutures.add(pool.submit(call));<a name="line.759"></a>
+<span class="sourceLineNo">760</span>    }<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    // get all the results.  All grouping and splitting must finish before<a name="line.761"></a>
+<span class="sourceLineNo">762</span>    // we can attempt the atomic loads.<a name="line.762"></a>
+<span class="sourceLineNo">763</span>    for (Future&lt;Pair&lt;List&lt;LoadQueueItem&gt;, String&gt;&gt; lqis : splittingFutures) {<a name="line.763"></a>
+<span class="sourceLineNo">764</span>      try {<a name="line.764"></a>
+<span class="sourceLineNo">765</span>        Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; splits = lqis.get();<a name="line.765"></a>
+<span class="sourceLineNo">766</span>        if (splits != null) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>          if (splits.getFirst() != null) {<a name="line.767"></a>
+<span class="sourceLineNo">768</span>            queue.addAll(splits.getFirst());<a name="line.768"></a>
+<span class="sourceLineNo">769</span>          } else {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>            missingHFiles.add(splits.getSecond());<a name="line.770"></a>
+<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>        }<a name="line.772"></a>
+<span class="sourceLineNo">773</span>      } catch (ExecutionException e1) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>        Throwable t = e1.getCause();<a name="line.774"></a>
+<span class="sourceLineNo">775</span>        if (t instanceof IOException) {<a name="line.775"></a>
+<span class="sourceLineNo">776</span>          LOG.error("IOException during splitting", e1);<a name="line.776"></a>
+<span class="sourceLineNo">777</span>          throw (IOException)t; // would have been thrown if not parallelized,<a name="line.777"></a>
+<span class="sourceLineNo">778</span>        }<a name="line.778"></a>
+<span class="sourceLineNo">779</span>        LOG.error("Unexpected execution exception during splitting", e1);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>        throw new IllegalStateException(t);<a name="line.780"></a>
+<span class="sourceLineNo">781</span>      } catch (InterruptedException e1) {<a name="line.781"></a>
+<span class="sourceLineNo">782</span>        LOG.error("Unexpected interrupted exception during splitting", e1);<a name="line.782"></a>
+<span class="sourceLineNo">783</span>        throw (InterruptedIOException)new InterruptedIOException().initCause(e1);<a name="line.783"></a>
+<span class="sourceLineNo">784</span>      }<a name="line.784"></a>
+<span class="sourceLineNo">785</span>    }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>    return pair;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>  }<a name="line.787"></a>
+<span class="sourceLineNo">788</span><a name="line.788"></a>
+<span class="sourceLineNo">789</span>  // unique file name for the table<a name="line.789"></a>
+<span class="sourceLineNo">790</span>  private String getUniqueName() {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    return UUID.randomUUID().toString().replaceAll("-", "");<a name="line.791"></a>
+<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
+<span class="sourceLineNo">793</span><a name="line.793"></a>
+<span class="sourceLineNo">794</span>  protected List&lt;LoadQueueItem&gt; splitStoreFile(final LoadQueueItem item,<a name="line.794"></a>
+<span class="sourceLineNo">795</span>      final Table table, byte[] startKey,<a name="line.795"></a>
+<span class="sourceLineNo">796</span>      byte[] splitKey) throws IOException {<a name="line.796"></a>
+<span class="sourceLineNo">797</span>    final Path hfilePath = item.hfilePath;<a name="line.797"></a>
+<span class="sourceLineNo">798</span><a name="line.798"></a>
+<span class="sourceLineNo">799</span>    Path tmpDir = item.hfilePath.getParent();<a name="line.799"></a>
+<span class="sourceLineNo">800</span>    if (!tmpDir.getName().equals(TMP_DIR)) {<a name="line.800"></a>
+<span class="sourceLineNo">801</span>      tmpDir = new Path(tmpDir, TMP_DIR);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>    }<a name="line.802"></a>
+<span class="sourceLineNo">803</span><a name="line.803"></a>
+<span class="sourceLineNo">804</span>    LOG.info("HFile at " + hfilePath + " no longer fits inside a single " +<a name="line.804"></a>
+<span class="sourceLineNo">805</span>      "region. Splitting...");<a name="line.805"></a>
 <span class="sourceLineNo">806</span><a name="line.806"></a>
-<span class="sourceLineNo">807</span>    // Add these back at the *front* of the queue, so there's a lower<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    // chance that the region will just split again before we get there.<a name="line.808"></a>
-<span class="sourceLineNo">809</span>    List&lt;LoadQueueItem&gt; lqis = new ArrayList&lt;LoadQueueItem&gt;(2);<a name="line.809"></a>
-<span class="sourceLineNo">810</span>    lqis.add(new LoadQueueItem(item.family, botOut));<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    lqis.add(new LoadQueueItem(item.family, topOut));<a name="line.811"></a>
-<span class="sourceLineNo">812</span><a name="line.812"></a>
-<span class="sourceLineNo">813</span>    // If the current item is already the result of previous splits,<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    // we don't need it anymore. Clean up to save space.<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    // It is not part of the original input files.<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    try {<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      tmpDir = item.hfilePath.getParent();<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      if (tmpDir.getName().equals(TMP_DIR)) {<a name="line.818"></a>
-<span class="sourceLineNo">819</span>        fs.delete(item.hfilePath, false);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>      }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>    } catch (IOException e) {<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      LOG.warn("Unable to delete temporary split file " + item.hfilePath);<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>    LOG.info("Successfully split into new HFiles " + botOut + " and " + topOut);<a name="line.824"></a>
-<span class="sourceLineNo">825</span>    return lqis;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>  }<a name="line.826"></a>
-<span class="sourceLineNo">827</span><a name="line.827"></a>
-<span class="sourceLineNo">828</span>  /**<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * Attempt to assign the given load queue item into its target region group.<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   * If the hfile boundary no longer fits into a region, physically splits<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   * the hfile such that the new bottom half will fit and returns the list of<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   * LQI's corresponding to the resultant hfiles.<a name="line.832"></a>
-<span class="sourceLineNo">833</span>   *<a name="line.833"></a>
-<span class="sourceLineNo">834</span>   * protected for testing<a name="line.834"></a>
-<span class="sourceLineNo">835</span>   * @throws IOException if an IO failure is encountered<a name="line.835"></a>
-<span class="sourceLineNo">836</span>   */<a name="line.836"></a>
-<span class="sourceLineNo">837</span>  protected Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; groupOrSplit(<a name="line.837"></a>
-<span class="sourceLineNo">838</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, final LoadQueueItem item, final Table table,<a name="line.838"></a>
-<span class="sourceLineNo">839</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    final Path hfilePath = item.hfilePath;<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    // fs is the source filesystem<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    if (fs == null) {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      fs = hfilePath.getFileSystem(getConf());<a name="line.843"></a>
-<span class="sourceLineNo">844</span>    }<a name="line.844"></a>
-<span class="sourceLineNo">845</span>    HFile.Reader hfr = null;<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    try {<a name="line.846"></a>
-<span class="sourceLineNo">847</span>      hfr = HFile.createReader(fs, hfilePath,<a name="line.847"></a>
-<span class="sourceLineNo">848</span>          new CacheConfig(getConf()), getConf());<a name="line.848"></a>
-<span class="sourceLineNo">849</span>    } catch (FileNotFoundException fnfe) {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      LOG.debug("encountered", fnfe);<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      return new Pair&lt;&gt;(null, hfilePath.getName());<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    final byte[] first, last;<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    try {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      hfr.loadFileInfo();<a name="line.855"></a>
-<span class="sourceLineNo">856</span>      first = hfr.getFirstRowKey();<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      last = hfr.getLastRowKey();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    }  finally {<a name="line.858"></a>
-<span class="sourceLineNo">859</span>      hfr.close();<a name="line.859"></a>
-<span class="sourceLineNo">860</span>    }<a name="line.860"></a>
-<span class="sourceLineNo">861</span><a name="line.861"></a>
-<span class="sourceLineNo">862</span>    LOG.info("Trying to load hfile=" + hfilePath +<a name="line.862"></a>
-<span class="sourceLineNo">863</span>        " first=" + Bytes.toStringBinary(first) +<a name="line.863"></a>
-<span class="sourceLineNo">864</span>        " last="  + Bytes.toStringBinary(last));<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    if (first == null || last == null) {<a name="line.865"></a>
-<span class="sourceLineNo">866</span>      assert first == null &amp;&amp; last == null;<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      // TODO what if this is due to a bad HFile?<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      LOG.info("hfile " + hfilePath + " has no entries, skipping");<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      return null;<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    }<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    if (Bytes.compareTo(first, last) &gt; 0) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      throw new IllegalArgumentException(<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      "Invalid range: " + Bytes.toStringBinary(first) +<a name="line.873"></a>
-<span class="sourceLineNo">874</span>      " &gt; " + Bytes.toStringBinary(last));<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    }<a name="line.875"></a>
-<span class="sourceLineNo">876</span>    int idx = Arrays.binarySearch(startEndKeys.getFirst(), first,<a name="line.876"></a>
-<span class="sourceLineNo">877</span>        Bytes.BYTES_COMPARATOR);<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    if (idx &lt; 0) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>      // not on boundary, returns -(insertion index).  Calculate region it<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      // would be in.<a name="line.880"></a>
-<span class="sourceLineNo">881</span>      idx = -(idx + 1) - 1;<a name="line.881"></a>
+<span class="sourceLineNo">807</span>    String uniqueName = getUniqueName();<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    HColumnDescriptor familyDesc = table.getTableDescriptor().getFamily(item.family);<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span>    Path botOut = new Path(tmpDir, uniqueName + ".bottom");<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    Path topOut = new Path(tmpDir, uniqueName + ".top");<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    splitStoreFile(getConf(), hfilePath, familyDesc, splitKey, botOut, topOut);<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>    FileSystem fs = tmpDir.getFileSystem(getConf());<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    fs.setPermission(tmpDir, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.815"></a>
+<span class="sourceLineNo">816</span>    fs.setPermission(botOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.816"></a>
+<span class="sourceLineNo">817</span>    fs.setPermission(topOut, FsPermission.valueOf("-rwxrwxrwx"));<a name="line.817"></a>
+<span class="sourceLineNo">818</span><a name="line.818"></a>
+<span class="sourceLineNo">819</span>    // Add these back at the *front* of the queue, so there's a lower<a name="line.819"></a>
+<span class="sourceLineNo">820</span>    // chance that the region will just split again before we get there.<a name="line.820"></a>
+<span class="sourceLineNo">821</span>    List&lt;LoadQueueItem&gt; lqis = new ArrayList&lt;LoadQueueItem&gt;(2);<a name="line.821"></a>
+<span class="sourceLineNo">822</span>    lqis.add(new LoadQueueItem(item.family, botOut));<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    lqis.add(new LoadQueueItem(item.family, topOut));<a name="line.823"></a>
+<span class="sourceLineNo">824</span><a name="line.824"></a>
+<span class="sourceLineNo">825</span>    // If the current item is already the result of previous splits,<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    // we don't need it anymore. Clean up to save space.<a name="line.826"></a>
+<span class="sourceLineNo">827</span>    // It is not part of the original input files.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>    try {<a name="line.828"></a>
+<span class="sourceLineNo">829</span>      tmpDir = item.hfilePath.getParent();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>      if (tmpDir.getName().equals(TMP_DIR)) {<a name="line.830"></a>
+<span class="sourceLineNo">831</span>        fs.delete(item.hfilePath, false);<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      }<a name="line.832"></a>
+<span class="sourceLineNo">833</span>    } catch (IOException e) {<a name="line.833"></a>
+<span class="sourceLineNo">834</span>      LOG.warn("Unable to delete temporary split file " + item.hfilePath);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    }<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    LOG.info("Successfully split into new HFiles " + botOut + " and " + topOut);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>    return lqis;<a name="line.837"></a>
+<span class="sourceLineNo">838</span>  }<a name="line.838"></a>
+<span class="sourceLineNo">839</span><a name="line.839"></a>
+<span class="sourceLineNo">840</span>  /**<a name="line.840"></a>
+<span class="sourceLineNo">841</span>   * Attempt to assign the given load queue item into its target region group.<a name="line.841"></a>
+<span class="sourceLineNo">842</span>   * If the hfile boundary no longer fits into a region, physically splits<a name="line.842"></a>
+<span class="sourceLineNo">843</span>   * the hfile such that the new bottom half will fit and returns the list of<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * LQI's corresponding to the resultant hfiles.<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   *<a name="line.845"></a>
+<span class="sourceLineNo">846</span>   * protected for testing<a name="line.846"></a>
+<span class="sourceLineNo">847</span>   * @throws IOException if an IO failure is encountered<a name="line.847"></a>
+<span class="sourceLineNo">848</span>   */<a name="line.848"></a>
+<span class="sourceLineNo">849</span>  protected Pair&lt;List&lt;LoadQueueItem&gt;, String&gt; groupOrSplit(<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      Multimap&lt;ByteBuffer, LoadQueueItem&gt; regionGroups, final LoadQueueItem item, final Table table,<a name="line.850"></a>
+<span class="sourceLineNo">851</span>      final Pair&lt;byte[][], byte[][]&gt; startEndKeys) throws IOException {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>    final Path hfilePath = item.hfilePath;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>    // fs is the source filesystem<a name="line.853"></a>
+<span class="sourceLineNo">854</span>    if (fs == null) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>      fs = hfilePath.getFileSystem(getConf());<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
+<span class="sourceLineNo">857</span>    HFile.Reader hfr = null;<a name="line.857"></a>
+<span class="sourceLineNo">858</span>    try {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>      hfr = HFile.createReader(fs, hfilePath,<a name="line.859"></a>
+<span class="sourceLineNo">860</span>          new CacheConfig(getConf()), getConf());<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    } catch (FileNotFoundException fnfe) {<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      LOG.debug("encountered", fnfe);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>      return new Pair&lt;&gt;(null, hfilePath.getName());<a name="line.863"></a>
+<span class="sourceLineNo">864</span>    }<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    final byte[] first, last;<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    try {<a name="li

<TRUNCATED>