You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mi...@apache.org on 2015/12/16 18:00:00 UTC

[14/30] hbase-site git commit: Updated 0.94 docs to 0f35a32ab123ee299f4aaaea02b4ba2d2b43cff2

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ecb8d8ba/0.94/book.html
----------------------------------------------------------------------
diff --git a/0.94/book.html b/0.94/book.html
index ee5df9e..bf28251 100644
--- a/0.94/book.html
+++ b/0.94/book.html
@@ -7,38 +7,38 @@
        </a>
     </h2></div><div><p class="copyright">Copyright &copy; 2012 Apache Software Foundation.
         All Rights Reserved.  Apache Hadoop, Hadoop, MapReduce, HDFS, Zookeeper, HBase, and the HBase project logo are trademarks of the Apache Software Foundation.
-        </p></div><div><div class="revhistory"><table border="1" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision
+        </p></div><div><div class="revhistory"><table border="1" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
           0.94.27
         </td><td align="left">
-          2015-11-03T11:44
+          2015-12-16T16:51
         </td></tr></table></div></div><div><div class="abstract" title="Abstract"><p class="title"><b>Abstract</b></p><p>This is the official reference guide of
     <a class="link" href="http://www.hbase.org" target="_top">Apache HBase (TM)</a>,
     a distributed, versioned, column-oriented database built on top of
     <a class="link" href="http://hadoop.apache.org/" target="_top">Apache Hadoop</a> and
     <a class="link" href="http://zookeeper.apache.org/" target="_top">Apache ZooKeeper</a>.
-      </p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="#preface">Preface</a></span></dt><dt><span class="chapter"><a href="#getting_started">1. Getting Started</a></span></dt><dd><dl><dt><span class="section"><a href="#d1984e77">1.1. Introduction</a></span></dt><dt><span class="section"><a href="#quickstart">1.2. Quick Start</a></span></dt></dl></dd><dt><span class="chapter"><a href="#configuration">2. Apache HBase (TM) Configuration</a></span></dt><dd><dl><dt><span class="section"><a href="#basic.prerequisites">2.1. Basic Prerequisites</a></span></dt><dt><span class="section"><a href="#standalone_dist">2.2. HBase run modes: Standalone and Distributed</a></span></dt><dt><span class="section"><a href="#config.files">2.3. Configuration Files</a></span></dt><dt><span class="section"><a href="#example_config">2.4. Example Configurations</a></span></dt><dt><span class="section"><a href="#important_configurations">2.5. 
 The Important Configurations</a></span></dt></dl></dd><dt><span class="chapter"><a href="#upgrading">3. Upgrading</a></span></dt><dd><dl><dt><span class="section"><a href="#upgrade0.96">3.1. Upgrading from 0.94.x to 0.96.x</a></span></dt><dt><span class="section"><a href="#upgrade0.94">3.2. Upgrading from 0.92.x to 0.94.x</a></span></dt><dt><span class="section"><a href="#upgrade0.92">3.3. Upgrading from 0.90.x to 0.92.x</a></span></dt><dt><span class="section"><a href="#upgrade0.90">3.4. Upgrading to HBase 0.90.x from 0.20.x or 0.89.x</a></span></dt></dl></dd><dt><span class="chapter"><a href="#shell">4. The Apache HBase Shell</a></span></dt><dd><dl><dt><span class="section"><a href="#scripting">4.1. Scripting</a></span></dt><dt><span class="section"><a href="#shell_tricks">4.2. Shell Tricks</a></span></dt></dl></dd><dt><span class="chapter"><a href="#datamodel">5. Data Model</a></span></dt><dd><dl><dt><span class="section"><a href="#conceptual.view">5.1. Conceptual View</a></span>
 </dt><dt><span class="section"><a href="#physical.view">5.2. Physical View</a></span></dt><dt><span class="section"><a href="#table">5.3. Table</a></span></dt><dt><span class="section"><a href="#row">5.4. Row</a></span></dt><dt><span class="section"><a href="#columnfamily">5.5. Column Family</a></span></dt><dt><span class="section"><a href="#cells">5.6. Cells</a></span></dt><dt><span class="section"><a href="#data_model_operations">5.7. Data Model Operations</a></span></dt><dt><span class="section"><a href="#versions">5.8. Versions</a></span></dt><dt><span class="section"><a href="#dm.sort">5.9. Sort Order</a></span></dt><dt><span class="section"><a href="#dm.column.metadata">5.10. Column Metadata</a></span></dt><dt><span class="section"><a href="#joins">5.11. Joins</a></span></dt><dt><span class="section"><a href="#acid">5.12. ACID</a></span></dt></dl></dd><dt><span class="chapter"><a href="#schema">6. HBase and Schema Design</a></span></dt><dd><dl><dt><span class="section"><a href
 ="#schema.creation">6.1.
+      </p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="#preface">Preface</a></span></dt><dt><span class="chapter"><a href="#getting_started">1. Getting Started</a></span></dt><dd><dl><dt><span class="section"><a href="#d1984e77">1.1. Introduction</a></span></dt><dt><span class="section"><a href="#quickstart">1.2. Quick Start</a></span></dt></dl></dd><dt><span class="chapter"><a href="#configuration">2. Apache HBase (TM) Configuration</a></span></dt><dd><dl><dt><span class="section"><a href="#basic.prerequisites">2.1. Basic Prerequisites</a></span></dt><dt><span class="section"><a href="#standalone_dist">2.2. HBase run modes: Standalone and Distributed</a></span></dt><dt><span class="section"><a href="#config.files">2.3. Configuration Files</a></span></dt><dt><span class="section"><a href="#example_config">2.4. Example Configurations</a></span></dt><dt><span class="section"><a href="#important_configurations">2.5. 
 The Important Configurations</a></span></dt></dl></dd><dt><span class="chapter"><a href="#upgrading">3. Upgrading</a></span></dt><dd><dl><dt><span class="section"><a href="#upgrade0.96">3.1. Upgrading from 0.94.x to 0.96.x</a></span></dt><dt><span class="section"><a href="#upgrade0.94">3.2. Upgrading from 0.92.x to 0.94.x</a></span></dt><dt><span class="section"><a href="#upgrade0.92">3.3. Upgrading from 0.90.x to 0.92.x</a></span></dt><dt><span class="section"><a href="#upgrade0.90">3.4. Upgrading to HBase 0.90.x from 0.20.x or 0.89.x</a></span></dt></dl></dd><dt><span class="chapter"><a href="#shell">4. The Apache HBase Shell</a></span></dt><dd><dl><dt><span class="section"><a href="#scripting">4.1. Scripting</a></span></dt><dt><span class="section"><a href="#shell_tricks">4.2. Shell Tricks</a></span></dt></dl></dd><dt><span class="chapter"><a href="#datamodel">5. Data Model</a></span></dt><dd><dl><dt><span class="section"><a href="#conceptual.view">5.1. Conceptual View</a></span>
 </dt><dt><span class="section"><a href="#physical.view">5.2. Physical View</a></span></dt><dt><span class="section"><a href="#table">5.3. Table</a></span></dt><dt><span class="section"><a href="#row">5.4. Row</a></span></dt><dt><span class="section"><a href="#columnfamily">5.5. Column Family</a></span></dt><dt><span class="section"><a href="#cells">5.6. Cells</a></span></dt><dt><span class="section"><a href="#data_model_operations">5.7. Data Model Operations</a></span></dt><dt><span class="section"><a href="#versions">5.8. Versions</a></span></dt><dt><span class="section"><a href="#dm.sort">5.9. Sort Order</a></span></dt><dt><span class="section"><a href="#dm.column.metadata">5.10. Column Metadata</a></span></dt><dt><span class="section"><a href="#joins">5.11. Joins</a></span></dt><dt><span class="section"><a href="#acid">5.12. ACID</a></span></dt></dl></dd><dt><span class="chapter"><a href="#schema">6. HBase and Schema Design</a></span></dt><dd><dl><dt><span class="section"><a href
 ="#schema.creation">6.1. 
       Schema Creation
-  </a></span></dt><dt><span class="section"><a href="#number.of.cfs">6.2.
+  </a></span></dt><dt><span class="section"><a href="#number.of.cfs">6.2. 
       On the number of column families
-  </a></span></dt><dt><span class="section"><a href="#rowkey.design">6.3. Rowkey Design</a></span></dt><dt><span class="section"><a href="#schema.versions">6.4.
+  </a></span></dt><dt><span class="section"><a href="#rowkey.design">6.3. Rowkey Design</a></span></dt><dt><span class="section"><a href="#schema.versions">6.4. 
   Number of Versions
-  </a></span></dt><dt><span class="section"><a href="#supported.datatypes">6.5.
+  </a></span></dt><dt><span class="section"><a href="#supported.datatypes">6.5. 
   Supported Datatypes
-  </a></span></dt><dt><span class="section"><a href="#schema.joins">6.6. Joins</a></span></dt><dt><span class="section"><a href="#ttl">6.7. Time To Live (TTL)</a></span></dt><dt><span class="section"><a href="#cf.keep.deleted">6.8.
+  </a></span></dt><dt><span class="section"><a href="#schema.joins">6.6. Joins</a></span></dt><dt><span class="section"><a href="#ttl">6.7. Time To Live (TTL)</a></span></dt><dt><span class="section"><a href="#cf.keep.deleted">6.8. 
   Keeping Deleted Cells
-  </a></span></dt><dt><span class="section"><a href="#secondary.indexes">6.9.
+  </a></span></dt><dt><span class="section"><a href="#secondary.indexes">6.9. 
   Secondary Indexes and Alternate Query Paths
-  </a></span></dt><dt><span class="section"><a href="#schema.smackdown">6.10. Schema Design Smackdown</a></span></dt><dt><span class="section"><a href="#schema.ops">6.11. Operational and Performance Configuration Options</a></span></dt><dt><span class="section"><a href="#constraints">6.12. Constraints</a></span></dt></dl></dd><dt><span class="chapter"><a href="#mapreduce">7. HBase and MapReduce</a></span></dt><dd><dl><dt><span class="section"><a href="#splitter">7.1. Map-Task Spitting</a></span></dt><dt><span class="section"><a href="#mapreduce.example">7.2. HBase MapReduce Examples</a></span></dt><dt><span class="section"><a href="#mapreduce.htable.access">7.3. Accessing Other HBase Tables in a MapReduce Job</a></span></dt><dt><span class="section"><a href="#mapreduce.specex">7.4. Speculative Execution</a></span></dt></dl></dd><dt><span class="chapter"><a href="#security">8. Secure Apache HBase (TM)</a></span></dt><dd><dl><dt><span class="section"><a href="#hbase.secure.configurati
 on">8.1. Secure Client Access to Apache HBase</a></span></dt><dt><span class="section"><a href="#hbase.accesscontrol.configuration">8.2. Access Control</a></span></dt><dt><span class="section"><a href="#hbase.secure.bulkload">8.3. Secure Bulk Load</a></span></dt></dl></dd><dt><span class="chapter"><a href="#architecture">9. Architecture</a></span></dt><dd><dl><dt><span class="section"><a href="#arch.overview">9.1. Overview</a></span></dt><dt><span class="section"><a href="#arch.catalog">9.2. Catalog Tables</a></span></dt><dt><span class="section"><a href="#client">9.3. Client</a></span></dt><dt><span class="section"><a href="#client.filter">9.4. Client Request Filters</a></span></dt><dt><span class="section"><a href="#master">9.5. Master</a></span></dt><dt><span class="section"><a href="#regionserver.arch">9.6. RegionServer</a></span></dt><dt><span class="section"><a href="#regions.arch">9.7. Regions</a></span></dt><dt><span class="section"><a href="#arch.bulk.load">9.8. Bulk Loadin
 g</a></span></dt><dt><span class="section"><a href="#arch.hdfs">9.9. HDFS</a></span></dt></dl></dd><dt><span class="chapter"><a href="#external_apis">10. Apache HBase (TM) External APIs</a></span></dt><dd><dl><dt><span class="section"><a href="#nonjava.jvm">10.1. Non-Java Languages Talking to the JVM</a></span></dt><dt><span class="section"><a href="#rest">10.2. REST</a></span></dt><dt><span class="section"><a href="#thrift">10.3. Thrift</a></span></dt><dt><span class="section"><a href="#c">10.4. C/C++ Apache HBase Client</a></span></dt></dl></dd><dt><span class="chapter"><a href="#performance">11. Apache HBase (TM) Performance Tuning</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.os">11.1. Operating System</a></span></dt><dt><span class="section"><a href="#perf.network">11.2. Network</a></span></dt><dt><span class="section"><a href="#jvm">11.3. Java</a></span></dt><dt><span class="section"><a href="#perf.configurations">11.4. HBase Configurations</a></span></dt><dt
 ><span class="section"><a href="#perf.zookeeper">11.5. ZooKeeper</a></span></dt><dt><span class="section"><a href="#perf.schema">11.6. Schema Design</a></span></dt><dt><span class="section"><a href="#perf.writing">11.7. Writing to HBase</a></span></dt><dt><span class="section"><a href="#perf.reading">11.8. Reading from HBase</a></span></dt><dt><span class="section"><a href="#perf.deleting">11.9. Deleting from HBase</a></span></dt><dt><span class="section"><a href="#perf.hdfs">11.10. HDFS</a></span></dt><dt><span class="section"><a href="#perf.ec2">11.11. Amazon EC2</a></span></dt><dt><span class="section"><a href="#perf.casestudy">11.12. Case Studies</a></span></dt></dl></dd><dt><span class="chapter"><a href="#trouble">12. Troubleshooting and Debugging Apache HBase (TM)</a></span></dt><dd><dl><dt><span class="section"><a href="#trouble.general">12.1. General Guidelines</a></span></dt><dt><span class="section"><a href="#trouble.log">12.2. Logs</a></span></dt><dt><span class="section"
 ><a href="#trouble.resources">12.3. Resources</a></span></dt><dt><span class="section"><a href="#trouble.tools">12.4. Tools</a></span></dt><dt><span class="section"><a href="#trouble.client">12.5. Client</a></span></dt><dt><span class="section"><a href="#trouble.mapreduce">12.6. MapReduce</a></span></dt><dt><span class="section"><a href="#trouble.namenode">12.7. NameNode</a></span></dt><dt><span class="section"><a href="#trouble.network">12.8. Network</a></span></dt><dt><span class="section"><a href="#trouble.rs">12.9. RegionServer</a></span></dt><dt><span class="section"><a href="#trouble.master">12.10. Master</a></span></dt><dt><span class="section"><a href="#trouble.zookeeper">12.11. ZooKeeper</a></span></dt><dt><span class="section"><a href="#trouble.ec2">12.12. Amazon EC2</a></span></dt><dt><span class="section"><a href="#trouble.versions">12.13. HBase and Hadoop version issues</a></span></dt><dt><span class="section"><a href="#trouble.casestudy">12.14. Case Studies</a></span><
 /dt></dl></dd><dt><span class="chapter"><a href="#casestudies">13. Apache HBase (TM) Case Studies</a></span></dt><dd><dl><dt><span class="section"><a href="#casestudies.overview">13.1. Overview</a></span></dt><dt><span class="section"><a href="#casestudies.schema">13.2. Schema Design</a></span></dt><dt><span class="section"><a href="#casestudies.perftroub">13.3. Performance/Troubleshooting</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ops_mgt">14. Apache HBase (TM) Operational Management</a></span></dt><dd><dl><dt><span class="section"><a href="#tools">14.1. HBase Tools and Utilities</a></span></dt><dt><span class="section"><a href="#ops.regionmgt">14.2. Region Management</a></span></dt><dt><span class="section"><a href="#node.management">14.3. Node Management</a></span></dt><dt><span class="section"><a href="#hbase_metrics">14.4. HBase Metrics</a></span></dt><dt><span class="section"><a href="#ops.monitoring">14.5. HBase Monitoring</a></span></dt><dt><span class="sec
 tion"><a href="#cluster_replication">14.6. Cluster Replication</a></span></dt><dt><span class="section"><a href="#ops.backup">14.7. HBase Backup</a></span></dt><dt><span class="section"><a href="#ops.snapshots">14.8. HBase Snapshots</a></span></dt><dt><span class="section"><a href="#ops.capacity">14.9. Capacity Planning</a></span></dt></dl></dd><dt><span class="chapter"><a href="#developer">15. Building and Developing Apache HBase (TM)</a></span></dt><dd><dl><dt><span class="section"><a href="#repos">15.1. Apache HBase Repositories</a></span></dt><dt><span class="section"><a href="#ides">15.2. IDEs</a></span></dt><dt><span class="section"><a href="#build">15.3. Building Apache HBase</a></span></dt><dt><span class="section"><a href="#mvn_repo">15.4. Adding an Apache HBase release to Apache's Maven Repository</a></span></dt><dt><span class="section"><a href="#documentation">15.5. Generating the HBase Reference Guide</a></span></dt><dt><span class="section"><a href="#hbase.org">15.6. U
 pdating hbase.apache.org</a></span></dt><dt><span class="section"><a href="#hbase.tests">15.7. Tests</a></span></dt><dt><span class="section"><a href="#maven.build.commands">15.8. Maven Build Commands</a></span></dt><dt><span class="section"><a href="#getting.involved">15.9. Getting Involved</a></span></dt><dt><span class="section"><a href="#developing">15.10. Developing</a></span></dt><dt><span class="section"><a href="#submitting.patches">15.11. Submitting Patches</a></span></dt></dl></dd><dt><span class="chapter"><a href="#zookeeper">16. ZooKeeper</a></span></dt><dd><dl><dt><span class="section"><a href="#d1984e11388">16.1. Using existing ZooKeeper ensemble</a></span></dt><dt><span class="section"><a href="#zk.sasl.auth">16.2. SASL Authentication with ZooKeeper</a></span></dt></dl></dd><dt><span class="chapter"><a href="#community">17. Community</a></span></dt><dd><dl><dt><span class="section"><a href="#decisions">17.1. Decisions</a></span></dt><dt><span class="section"><a href="
 #community.roles">17.2. Community Roles</a></span></dt></dl></dd><dt><span class="appendix"><a href="#faq">A. FAQ</a></span></dt><dt><span class="appendix"><a href="#hbck.in.depth">B. hbck In Depth</a></span></dt><dd><dl><dt><span class="section"><a href="#d1984e12015">B.1. Running hbck to identify inconsistencies</a></span></dt><dt><span class="section"><a href="#d1984e12031">B.2. Inconsistencies</a></span></dt><dt><span class="section"><a href="#d1984e12050">B.3. Localized repairs</a></span></dt><dt><span class="section"><a href="#d1984e12088">B.4. Region Overlap Repairs</a></span></dt></dl></dd><dt><span class="appendix"><a href="#compression">C. Compression In HBase</a></span></dt><dd><dl><dt><span class="section"><a href="#compression.test">C.1. CompressionTest Tool</a></span></dt><dt><span class="section"><a href="#hbase.regionserver.codecs">C.2.
+  </a></span></dt><dt><span class="section"><a href="#schema.smackdown">6.10. Schema Design Smackdown</a></span></dt><dt><span class="section"><a href="#schema.ops">6.11. Operational and Performance Configuration Options</a></span></dt><dt><span class="section"><a href="#constraints">6.12. Constraints</a></span></dt></dl></dd><dt><span class="chapter"><a href="#mapreduce">7. HBase and MapReduce</a></span></dt><dd><dl><dt><span class="section"><a href="#splitter">7.1. Map-Task Spitting</a></span></dt><dt><span class="section"><a href="#mapreduce.example">7.2. HBase MapReduce Examples</a></span></dt><dt><span class="section"><a href="#mapreduce.htable.access">7.3. Accessing Other HBase Tables in a MapReduce Job</a></span></dt><dt><span class="section"><a href="#mapreduce.specex">7.4. Speculative Execution</a></span></dt></dl></dd><dt><span class="chapter"><a href="#security">8. Secure Apache HBase (TM)</a></span></dt><dd><dl><dt><span class="section"><a href="#hbase.secure.configurati
 on">8.1. Secure Client Access to Apache HBase</a></span></dt><dt><span class="section"><a href="#hbase.accesscontrol.configuration">8.2. Access Control</a></span></dt><dt><span class="section"><a href="#hbase.secure.bulkload">8.3. Secure Bulk Load</a></span></dt></dl></dd><dt><span class="chapter"><a href="#architecture">9. Architecture</a></span></dt><dd><dl><dt><span class="section"><a href="#arch.overview">9.1. Overview</a></span></dt><dt><span class="section"><a href="#arch.catalog">9.2. Catalog Tables</a></span></dt><dt><span class="section"><a href="#client">9.3. Client</a></span></dt><dt><span class="section"><a href="#client.filter">9.4. Client Request Filters</a></span></dt><dt><span class="section"><a href="#master">9.5. Master</a></span></dt><dt><span class="section"><a href="#regionserver.arch">9.6. RegionServer</a></span></dt><dt><span class="section"><a href="#regions.arch">9.7. Regions</a></span></dt><dt><span class="section"><a href="#arch.bulk.load">9.8. Bulk Loadin
 g</a></span></dt><dt><span class="section"><a href="#arch.hdfs">9.9. HDFS</a></span></dt></dl></dd><dt><span class="chapter"><a href="#external_apis">10. Apache HBase (TM) External APIs</a></span></dt><dd><dl><dt><span class="section"><a href="#nonjava.jvm">10.1. Non-Java Languages Talking to the JVM</a></span></dt><dt><span class="section"><a href="#rest">10.2. REST</a></span></dt><dt><span class="section"><a href="#thrift">10.3. Thrift</a></span></dt><dt><span class="section"><a href="#c">10.4. C/C++ Apache HBase Client</a></span></dt></dl></dd><dt><span class="chapter"><a href="#performance">11. Apache HBase (TM) Performance Tuning</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.os">11.1. Operating System</a></span></dt><dt><span class="section"><a href="#perf.network">11.2. Network</a></span></dt><dt><span class="section"><a href="#jvm">11.3. Java</a></span></dt><dt><span class="section"><a href="#perf.configurations">11.4. HBase Configurations</a></span></dt><dt
 ><span class="section"><a href="#perf.zookeeper">11.5. ZooKeeper</a></span></dt><dt><span class="section"><a href="#perf.schema">11.6. Schema Design</a></span></dt><dt><span class="section"><a href="#perf.writing">11.7. Writing to HBase</a></span></dt><dt><span class="section"><a href="#perf.reading">11.8. Reading from HBase</a></span></dt><dt><span class="section"><a href="#perf.deleting">11.9. Deleting from HBase</a></span></dt><dt><span class="section"><a href="#perf.hdfs">11.10. HDFS</a></span></dt><dt><span class="section"><a href="#perf.ec2">11.11. Amazon EC2</a></span></dt><dt><span class="section"><a href="#perf.casestudy">11.12. Case Studies</a></span></dt></dl></dd><dt><span class="chapter"><a href="#trouble">12. Troubleshooting and Debugging Apache HBase (TM)</a></span></dt><dd><dl><dt><span class="section"><a href="#trouble.general">12.1. General Guidelines</a></span></dt><dt><span class="section"><a href="#trouble.log">12.2. Logs</a></span></dt><dt><span class="section"
 ><a href="#trouble.resources">12.3. Resources</a></span></dt><dt><span class="section"><a href="#trouble.tools">12.4. Tools</a></span></dt><dt><span class="section"><a href="#trouble.client">12.5. Client</a></span></dt><dt><span class="section"><a href="#trouble.mapreduce">12.6. MapReduce</a></span></dt><dt><span class="section"><a href="#trouble.namenode">12.7. NameNode</a></span></dt><dt><span class="section"><a href="#trouble.network">12.8. Network</a></span></dt><dt><span class="section"><a href="#trouble.rs">12.9. RegionServer</a></span></dt><dt><span class="section"><a href="#trouble.master">12.10. Master</a></span></dt><dt><span class="section"><a href="#trouble.zookeeper">12.11. ZooKeeper</a></span></dt><dt><span class="section"><a href="#trouble.ec2">12.12. Amazon EC2</a></span></dt><dt><span class="section"><a href="#trouble.versions">12.13. HBase and Hadoop version issues</a></span></dt><dt><span class="section"><a href="#trouble.casestudy">12.14. Case Studies</a></span><
 /dt></dl></dd><dt><span class="chapter"><a href="#casestudies">13. Apache HBase (TM) Case Studies</a></span></dt><dd><dl><dt><span class="section"><a href="#casestudies.overview">13.1. Overview</a></span></dt><dt><span class="section"><a href="#casestudies.schema">13.2. Schema Design</a></span></dt><dt><span class="section"><a href="#casestudies.perftroub">13.3. Performance/Troubleshooting</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ops_mgt">14. Apache HBase (TM) Operational Management</a></span></dt><dd><dl><dt><span class="section"><a href="#tools">14.1. HBase Tools and Utilities</a></span></dt><dt><span class="section"><a href="#ops.regionmgt">14.2. Region Management</a></span></dt><dt><span class="section"><a href="#node.management">14.3. Node Management</a></span></dt><dt><span class="section"><a href="#hbase_metrics">14.4. HBase Metrics</a></span></dt><dt><span class="section"><a href="#ops.monitoring">14.5. HBase Monitoring</a></span></dt><dt><span class="sec
 tion"><a href="#cluster_replication">14.6. Cluster Replication</a></span></dt><dt><span class="section"><a href="#ops.backup">14.7. HBase Backup</a></span></dt><dt><span class="section"><a href="#ops.snapshots">14.8. HBase Snapshots</a></span></dt><dt><span class="section"><a href="#ops.capacity">14.9. Capacity Planning</a></span></dt></dl></dd><dt><span class="chapter"><a href="#developer">15. Building and Developing Apache HBase (TM)</a></span></dt><dd><dl><dt><span class="section"><a href="#repos">15.1. Apache HBase Repositories</a></span></dt><dt><span class="section"><a href="#ides">15.2. IDEs</a></span></dt><dt><span class="section"><a href="#build">15.3. Building Apache HBase</a></span></dt><dt><span class="section"><a href="#mvn_repo">15.4. Adding an Apache HBase release to Apache's Maven Repository</a></span></dt><dt><span class="section"><a href="#documentation">15.5. Generating the HBase Reference Guide</a></span></dt><dt><span class="section"><a href="#hbase.org">15.6. U
 pdating hbase.apache.org</a></span></dt><dt><span class="section"><a href="#hbase.tests">15.7. Tests</a></span></dt><dt><span class="section"><a href="#maven.build.commands">15.8. Maven Build Commands</a></span></dt><dt><span class="section"><a href="#getting.involved">15.9. Getting Involved</a></span></dt><dt><span class="section"><a href="#developing">15.10. Developing</a></span></dt><dt><span class="section"><a href="#submitting.patches">15.11. Submitting Patches</a></span></dt></dl></dd><dt><span class="chapter"><a href="#zookeeper">16. ZooKeeper</a></span></dt><dd><dl><dt><span class="section"><a href="#d1984e11388">16.1. Using existing ZooKeeper ensemble</a></span></dt><dt><span class="section"><a href="#zk.sasl.auth">16.2. SASL Authentication with ZooKeeper</a></span></dt></dl></dd><dt><span class="chapter"><a href="#community">17. Community</a></span></dt><dd><dl><dt><span class="section"><a href="#decisions">17.1. Decisions</a></span></dt><dt><span class="section"><a href="
 #community.roles">17.2. Community Roles</a></span></dt></dl></dd><dt><span class="appendix"><a href="#faq">A. FAQ</a></span></dt><dt><span class="appendix"><a href="#hbck.in.depth">B. hbck In Depth</a></span></dt><dd><dl><dt><span class="section"><a href="#d1984e12015">B.1. Running hbck to identify inconsistencies</a></span></dt><dt><span class="section"><a href="#d1984e12031">B.2. Inconsistencies</a></span></dt><dt><span class="section"><a href="#d1984e12050">B.3. Localized repairs</a></span></dt><dt><span class="section"><a href="#d1984e12088">B.4. Region Overlap Repairs</a></span></dt></dl></dd><dt><span class="appendix"><a href="#compression">C. Compression In HBase</a></span></dt><dd><dl><dt><span class="section"><a href="#compression.test">C.1. CompressionTest Tool</a></span></dt><dt><span class="section"><a href="#hbase.regionserver.codecs">C.2. 
     <code class="varname">
     hbase.regionserver.codecs
     </code>
-    </a></span></dt><dt><span class="section"><a href="#lzo.compression">C.3.
+    </a></span></dt><dt><span class="section"><a href="#lzo.compression">C.3. 
     LZO
-    </a></span></dt><dt><span class="section"><a href="#gzip.compression">C.4.
+    </a></span></dt><dt><span class="section"><a href="#gzip.compression">C.4. 
     GZIP
-    </a></span></dt><dt><span class="section"><a href="#snappy.compression">C.5.
+    </a></span></dt><dt><span class="section"><a href="#snappy.compression">C.5. 
     SNAPPY
-    </a></span></dt><dt><span class="section"><a href="#changing.compression">C.6. Changing Compression Schemes</a></span></dt></dl></dd><dt><span class="appendix"><a href="#d1984e12294">D. YCSB: The Yahoo! Cloud Serving Benchmark and HBase</a></span></dt><dt><span class="appendix"><a href="#hfilev2">E. HFile format version 2</a></span></dt><dd><dl><dt><span class="section"><a href="#d1984e12311">E.1. Motivation </a></span></dt><dt><span class="section"><a href="#d1984e12324">E.2. HFile format version 1 overview </a></span></dt><dt><span class="section"><a href="#d1984e12370">E.3.
+    </a></span></dt><dt><span class="section"><a href="#changing.compression">C.6. Changing Compression Schemes</a></span></dt></dl></dd><dt><span class="appendix"><a href="#d1984e12294">D. YCSB: The Yahoo! Cloud Serving Benchmark and HBase</a></span></dt><dt><span class="appendix"><a href="#hfilev2">E. HFile format version 2</a></span></dt><dd><dl><dt><span class="section"><a href="#d1984e12311">E.1. Motivation </a></span></dt><dt><span class="section"><a href="#d1984e12324">E.2. HFile format version 1 overview </a></span></dt><dt><span class="section"><a href="#d1984e12370">E.3. 
       HBase file format with inline blocks (version 2)
       </a></span></dt></dl></dd><dt><span class="appendix"><a href="#other.info">F. Other Information About HBase</a></span></dt><dd><dl><dt><span class="section"><a href="#other.info.videos">F.1. HBase Videos</a></span></dt><dt><span class="section"><a href="#other.info.pres">F.2. HBase Presentations (Slides)</a></span></dt><dt><span class="section"><a href="#other.info.papers">F.3. HBase Papers</a></span></dt><dt><span class="section"><a href="#other.info.sites">F.4. HBase Sites</a></span></dt><dt><span class="section"><a href="#other.info.books">F.5. HBase Books</a></span></dt><dt><span class="section"><a href="#other.info.books.hadoop">F.6. Hadoop Books</a></span></dt></dl></dd><dt><span class="appendix"><a href="#hbase.history">G. HBase History</a></span></dt><dt><span class="appendix"><a href="#asf">H. HBase and the Apache Software Foundation</a></span></dt><dd><dl><dt><span class="section"><a href="#asf.devprocess">H.1. ASF Development Process</a></span></dt><dt><span class="
 section"><a href="#asf.reporting">H.2. ASF Board Reporting</a></span></dt></dl></dd><dt><span class="appendix"><a href="#tracing">I. Enabling Dapper-like Tracing in HBase</a></span></dt><dd><dl><dt><span class="section"><a href="#tracing.spanreceivers">I.1. SpanReceivers</a></span></dt><dt><span class="section"><a href="#tracing.client.modifications">I.2. Client Modifications</a></span></dt></dl></dd><dt><span class="index"><a href="#book_index">Index</a></span></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="#d1984e486">Hadoop version support matrix</a></dt><dt>5.1. <a href="#d1984e3253">Table <code class="varname">webtable</code></a></dt><dt>5.2. <a href="#d1984e3337">ColumnFamily <code class="varname">anchor</code></a></dt><dt>5.3. <a href="#d1984e3376">ColumnFamily <code class="varname">contents</code></a></dt><dt>8.1. <a href="#d1984e4606">Operation To Permission Mapping</a></dt></dl></div><div class="preface" title="Preface"><div cl
 ass="titlepage"><div><div><h2 class="title"><a name="preface"></a>Preface</h2></div></div></div><p>This is the official reference guide for the <a class="link" href="http://hbase.apache.org/" target="_top">HBase</a> version it ships with.
   This document describes HBase version <span class="emphasis"><em>0.94.27</em></span>.
@@ -514,7 +514,7 @@ stopping hbase...............</pre><p> Shutdown can take a moment to
   <span style="color: red">&lt;property&gt;
     <span style="color: red">&lt;name&gt;hbase.local.dir&lt;/name&gt;</span>
     <span style="color: red">&lt;value&gt;${hbase.tmp.dir}/local/&lt;/value&gt;</span>
-    <span style="color: red">&lt;description&gt;Directory on the local filesystem to be used
+    <span style="color: red">&lt;description&gt;Directory on the local filesystem to be used 
     as a local storage.
     &lt;/description&gt;</span>
   &lt;/property&gt;</span>
@@ -591,7 +591,7 @@ stopping hbase...............</pre><p> Shutdown can take a moment to
     server, getting a cell's value, starting a row update, etc.
     Default: 14.
     &lt;/description&gt;</span>
-  &lt;/property&gt;</span>
+  &lt;/property&gt;</span> 
   <span style="color: red">&lt;property&gt;
     <span style="color: red">&lt;name&gt;hbase.bulkload.retries.number&lt;/name&gt;</span>
     <span style="color: red">&lt;value&gt;0&lt;/value&gt;</span>
@@ -1023,12 +1023,12 @@ stopping hbase...............</pre><p> Shutdown can take a moment to
     <span style="color: red">&lt;value&gt;org.apache.hadoop.hbase.regionserver.IncreasingToUpperBoundRegionSplitPolicy&lt;/value&gt;</span>
     <span style="color: red">&lt;description&gt;
       A split policy determines when a region should be split. The various other split policies that
-      are available currently are ConstantSizeRegionSplitPolicy, DisabledRegionSplitPolicy,
-      DelimitedKeyPrefixRegionSplitPolicy, KeyPrefixRegionSplitPolicy etc.
+      are available currently are ConstantSizeRegionSplitPolicy, DisabledRegionSplitPolicy, 
+      DelimitedKeyPrefixRegionSplitPolicy, KeyPrefixRegionSplitPolicy etc.  
     &lt;/description&gt;</span>
   &lt;/property&gt;</span>
 
-
+  
   <span style="color: red">&lt;property&gt;
     <span style="color: red">&lt;name&gt;hbase.master.keytab.file&lt;/name&gt;</span>
     <span style="color: red">&lt;value&gt;&lt;/value&gt;</span>
@@ -1065,7 +1065,7 @@ stopping hbase...............</pre><p> Shutdown can take a moment to
     &lt;/description&gt;</span>
   &lt;/property&gt;</span>
 
-
+  
   <span style="color: red">&lt;property&gt;
     <span style="color: red">&lt;name&gt;hadoop.policy.file&lt;/name&gt;</span>
     <span style="color: red">&lt;value&gt;hbase-policy.xml&lt;/value&gt;</span>
@@ -1085,7 +1085,7 @@ stopping hbase...............</pre><p> Shutdown can take a moment to
   <span style="color: red">&lt;property&gt;
     <span style="color: red">&lt;name&gt;hbase.auth.key.update.interval&lt;/name&gt;</span>
     <span style="color: red">&lt;value&gt;86400000&lt;/value&gt;</span>
-    <span style="color: red">&lt;description&gt;The update interval for master key for authentication tokens
+    <span style="color: red">&lt;description&gt;The update interval for master key for authentication tokens 
     in servers in milliseconds.  Only used when HBase security is enabled.
     &lt;/description&gt;</span>
   &lt;/property&gt;</span>
@@ -1147,7 +1147,7 @@ stopping hbase...............</pre><p> Shutdown can take a moment to
     <span style="color: red">&lt;value&gt;acl&lt;/value&gt;</span>
     <span style="color: red">&lt;description&gt;Root ZNode for access control lists.&lt;/description&gt;</span>
   &lt;/property&gt;</span>
-
+  
   <span style="color: red">&lt;property&gt;
     <span style="color: red">&lt;name&gt;hbase.coprocessor.region.classes&lt;/name&gt;</span>
     <span style="color: red">&lt;value&gt;&lt;/value&gt;</span>
@@ -1171,7 +1171,7 @@ stopping hbase...............</pre><p> Shutdown can take a moment to
     &lt;/description&gt;</span>
   &lt;/property&gt;</span>
 
-
+  
   <span style="color: red">&lt;property&gt;
     <span style="color: red">&lt;name&gt;hbase.zookeeper.quorum&lt;/name&gt;</span>
     <span style="color: red">&lt;value&gt;localhost&lt;/value&gt;</span>
@@ -1210,9 +1210,9 @@ stopping hbase...............</pre><p> Shutdown can take a moment to
     not fail gracefully if multi-update is invoked (see ZOOKEEPER-1495).
     &lt;/description&gt;</span>
   &lt;/property&gt;</span>
+  
 
-
-
+  
   <span style="color: red">&lt;property&gt;
     <span style="color: red">&lt;name&gt;hbase.zookeeper.property.initLimit&lt;/name&gt;</span>
     <span style="color: red">&lt;value&gt;10&lt;/value&gt;</span>
@@ -1252,7 +1252,7 @@ stopping hbase...............</pre><p> Shutdown can take a moment to
     standalone and pseudo-distributed.
     &lt;/description&gt;</span>
   &lt;/property&gt;</span>
-
+  
   <span style="color: red">&lt;property&gt;
     <span style="color: red">&lt;name&gt;hbase.rest.port&lt;/name&gt;</span>
     <span style="color: red">&lt;value&gt;8080&lt;/value&gt;</span>
@@ -1305,7 +1305,7 @@ stopping hbase...............</pre><p> Shutdown can take a moment to
     <span style="color: red">&lt;name&gt;hbase.online.schema.update.enable&lt;/name&gt;</span>
     <span style="color: red">&lt;value&gt;false&lt;/value&gt;</span>
     <span style="color: red">&lt;description&gt;
-    Set true to enable online schema changes.  This is an experimental feature.
+    Set true to enable online schema changes.  This is an experimental feature.  
     There are known issues modifying table schemas at the same time a region
     split is happening so your table needs to be quiescent or else you have to
     be running with splits disabled.
@@ -2206,14 +2206,14 @@ htable.put(put);
           consider the complete row to be deleted.</p><p>For an informative discussion on how deletes and versioning interact, see
           the thread <a class="link" href="http://comments.gmane.org/gmane.comp.java.hadoop.hbase.user/28421" target="_top">Put w/ timestamp -&gt; Deleteall -&gt; Put w/ timestamp fails</a>
           up on the user mailing list.</p><p>Also see <a class="xref" href="#keyvalue" title="9.7.5.4.&nbsp;KeyValue">Section&nbsp;9.7.5.4, &#8220;KeyValue&#8221;</a> for more information on the internal KeyValue format.
-          </p><p>Delete markers are purged during the major compaction of store,
-          unless the KEEP_DELETED_CELLS is set in the column family. In some
-          scenarios, users want to keep the deletes for a time and you can set the
-          delete TTL: hbase.hstore.time.to.purge.deletes in the configuration.
-          If this delete TTL is not set or set to 0, all delete markers including those
-          with future timestamp are purged during the later major compaction.
-          Otherwise, a delete marker is kept until the major compaction after
-          marker's timestamp + delete TTL.
+          </p><p>Delete markers are purged during the major compaction of store, 
+          unless the KEEP_DELETED_CELLS is set in the column family. In some 
+          scenarios, users want to keep the deletes for a time and you can set the 
+          delete TTL: hbase.hstore.time.to.purge.deletes in the configuration. 
+          If this delete TTL is not set or set to 0, all delete markers including those 
+          with future timestamp are purged during the later major compaction. 
+          Otherwise, a delete marker is kept until the major compaction after 
+          marker's timestamp + delete TTL. 
           </p></div></div><div class="section" title="5.8.2.&nbsp;Current Limitations"><div class="titlepage"><div><div><h3 class="title"><a name="d1984e3776"></a>5.8.2.&nbsp;Current Limitations</h3></div></div></div><div class="section" title="5.8.2.1.&nbsp;Deletes mask Puts"><div class="titlepage"><div><div><h4 class="title"><a name="d1984e3779"></a>5.8.2.1.&nbsp;Deletes mask Puts</h4></div></div></div><p>Deletes mask puts, even puts that happened after the delete
           was entered<sup>[<a name="d1984e3784" href="#ftn.d1984e3784" class="footnote">18</a>]</sup>. Remember that a delete writes a tombstone, which only
           disappears after then next major compaction has run. Suppose you do
@@ -2261,31 +2261,31 @@ htable.put(put);
             adding another, <a class="link" href="http://hadoop-hbase.blogspot.com/2012/01/scanning-in-hbase.html" target="_top">Scanning in HBase: Prefix Delete Marker</a></p></div><div class="footnote"><p><sup>[<a id="ftn.d1984e3761" href="#d1984e3761" class="para">17</a>] </sup>When HBase does a major compaction, the tombstones are
               processed to actually remove the dead values, together with the
               tombstones themselves.</p></div><div class="footnote"><p><sup>[<a id="ftn.d1984e3784" href="#d1984e3784" class="para">18</a>] </sup><a class="link" href="https://issues.apache.org/jira/browse/HBASE-2256" target="_top">HBASE-2256</a></p></div><div class="footnote"><p><sup>[<a id="ftn.d1984e3795" href="#d1984e3795" class="para">19</a>] </sup>See <span class="emphasis"><em>Garbage Collection</em></span> in <a class="link" href="http://outerthought.org/blog/417-ot.html" target="_top">Bending
-              time in HBase</a> </p></div></div></div><div class="chapter" title="Chapter&nbsp;6.&nbsp;HBase and Schema Design"><div class="titlepage"><div><div><h2 class="title"><a name="schema"></a>Chapter&nbsp;6.&nbsp;HBase and Schema Design</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#schema.creation">6.1.
+              time in HBase</a> </p></div></div></div><div class="chapter" title="Chapter&nbsp;6.&nbsp;HBase and Schema Design"><div class="titlepage"><div><div><h2 class="title"><a name="schema"></a>Chapter&nbsp;6.&nbsp;HBase and Schema Design</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#schema.creation">6.1. 
       Schema Creation
-  </a></span></dt><dd><dl><dt><span class="section"><a href="#schema.updates">6.1.1. Schema Updates</a></span></dt></dl></dd><dt><span class="section"><a href="#number.of.cfs">6.2.
+  </a></span></dt><dd><dl><dt><span class="section"><a href="#schema.updates">6.1.1. Schema Updates</a></span></dt></dl></dd><dt><span class="section"><a href="#number.of.cfs">6.2. 
       On the number of column families
-  </a></span></dt><dd><dl><dt><span class="section"><a href="#number.of.cfs.card">6.2.1. Cardinality of ColumnFamilies</a></span></dt></dl></dd><dt><span class="section"><a href="#rowkey.design">6.3. Rowkey Design</a></span></dt><dd><dl><dt><span class="section"><a href="#timeseries">6.3.1.
+  </a></span></dt><dd><dl><dt><span class="section"><a href="#number.of.cfs.card">6.2.1. Cardinality of ColumnFamilies</a></span></dt></dl></dd><dt><span class="section"><a href="#rowkey.design">6.3. Rowkey Design</a></span></dt><dd><dl><dt><span class="section"><a href="#timeseries">6.3.1. 
     Monotonically Increasing Row Keys/Timeseries Data
-    </a></span></dt><dt><span class="section"><a href="#keysize">6.3.2. Try to minimize row and column sizes</a></span></dt><dt><span class="section"><a href="#reverse.timestamp">6.3.3. Reverse Timestamps</a></span></dt><dt><span class="section"><a href="#rowkey.scope">6.3.4. Rowkeys and ColumnFamilies</a></span></dt><dt><span class="section"><a href="#changing.rowkeys">6.3.5. Immutability of Rowkeys</a></span></dt><dt><span class="section"><a href="#rowkey.regionsplits">6.3.6. Relationship Between RowKeys and Region Splits</a></span></dt></dl></dd><dt><span class="section"><a href="#schema.versions">6.4.
+    </a></span></dt><dt><span class="section"><a href="#keysize">6.3.2. Try to minimize row and column sizes</a></span></dt><dt><span class="section"><a href="#reverse.timestamp">6.3.3. Reverse Timestamps</a></span></dt><dt><span class="section"><a href="#rowkey.scope">6.3.4. Rowkeys and ColumnFamilies</a></span></dt><dt><span class="section"><a href="#changing.rowkeys">6.3.5. Immutability of Rowkeys</a></span></dt><dt><span class="section"><a href="#rowkey.regionsplits">6.3.6. Relationship Between RowKeys and Region Splits</a></span></dt></dl></dd><dt><span class="section"><a href="#schema.versions">6.4. 
   Number of Versions
-  </a></span></dt><dd><dl><dt><span class="section"><a href="#schema.versions.max">6.4.1. Maximum Number of Versions</a></span></dt><dt><span class="section"><a href="#schema.minversions">6.4.2.
+  </a></span></dt><dd><dl><dt><span class="section"><a href="#schema.versions.max">6.4.1. Maximum Number of Versions</a></span></dt><dt><span class="section"><a href="#schema.minversions">6.4.2. 
     Minimum Number of Versions
-    </a></span></dt></dl></dd><dt><span class="section"><a href="#supported.datatypes">6.5.
+    </a></span></dt></dl></dd><dt><span class="section"><a href="#supported.datatypes">6.5. 
   Supported Datatypes
-  </a></span></dt><dd><dl><dt><span class="section"><a href="#counters">6.5.1. Counters</a></span></dt></dl></dd><dt><span class="section"><a href="#schema.joins">6.6. Joins</a></span></dt><dt><span class="section"><a href="#ttl">6.7. Time To Live (TTL)</a></span></dt><dt><span class="section"><a href="#cf.keep.deleted">6.8.
+  </a></span></dt><dd><dl><dt><span class="section"><a href="#counters">6.5.1. Counters</a></span></dt></dl></dd><dt><span class="section"><a href="#schema.joins">6.6. Joins</a></span></dt><dt><span class="section"><a href="#ttl">6.7. Time To Live (TTL)</a></span></dt><dt><span class="section"><a href="#cf.keep.deleted">6.8. 
   Keeping Deleted Cells
-  </a></span></dt><dt><span class="section"><a href="#secondary.indexes">6.9.
+  </a></span></dt><dt><span class="section"><a href="#secondary.indexes">6.9. 
   Secondary Indexes and Alternate Query Paths
-  </a></span></dt><dd><dl><dt><span class="section"><a href="#secondary.indexes.filter">6.9.1.
+  </a></span></dt><dd><dl><dt><span class="section"><a href="#secondary.indexes.filter">6.9.1. 
        Filter Query
-      </a></span></dt><dt><span class="section"><a href="#secondary.indexes.periodic">6.9.2.
+      </a></span></dt><dt><span class="section"><a href="#secondary.indexes.periodic">6.9.2. 
        Periodic-Update Secondary Index
-      </a></span></dt><dt><span class="section"><a href="#secondary.indexes.dualwrite">6.9.3.
+      </a></span></dt><dt><span class="section"><a href="#secondary.indexes.dualwrite">6.9.3. 
        Dual-Write Secondary Index
-      </a></span></dt><dt><span class="section"><a href="#secondary.indexes.summary">6.9.4.
+      </a></span></dt><dt><span class="section"><a href="#secondary.indexes.summary">6.9.4. 
        Summary Tables
-      </a></span></dt><dt><span class="section"><a href="#secondary.indexes.coproc">6.9.5.
+      </a></span></dt><dt><span class="section"><a href="#secondary.indexes.coproc">6.9.5. 
        Coprocessor Secondary Index
       </a></span></dt></dl></dd><dt><span class="section"><a href="#schema.smackdown">6.10. Schema Design Smackdown</a></span></dt><dd><dl><dt><span class="section"><a href="#schema.smackdown.rowsversions">6.10.1. Rows vs. Versions</a></span></dt><dt><span class="section"><a href="#schema.smackdown.rowscols">6.10.2. Rows vs. Columns</a></span></dt><dt><span class="section"><a href="#schema.smackdown.rowsascols">6.10.3. Rows as Columns</a></span></dt></dl></dd><dt><span class="section"><a href="#schema.ops">6.11. Operational and Performance Configuration Options</a></span></dt><dt><span class="section"><a href="#constraints">6.12. Constraints</a></span></dt></dl></div><p>A good general introduction on the strength and weaknesses modelling on
           the various non-rdbms datastores is Ian Varley's Master thesis,
@@ -2847,12 +2847,12 @@ if (!b) {
         Master and RegionServer processes are deployed and make them readable
         only to the user account under which the HBase daemons will run.
     </p><p>
-        A Kerberos principal has three parts, with the form
+        A Kerberos principal has three parts, with the form 
         <code class="code">username/fully.qualified.domain.name@YOUR-REALM.COM</code>. We
         recommend using <code class="code">hbase</code> as the username portion.
     </p><p>
         The following is an example of the configuration properties for
-        Kerberos operation that must be added to the
+        Kerberos operation that must be added to the 
         <code class="code">hbase-site.xml</code> file on every server machine in the
         cluster. Required for even the most basic interactions with a
         secure Hadoop configuration, independent of HBase security.
@@ -2885,7 +2885,7 @@ if (!b) {
     </p><p>
         Long running daemons with indefinite lifetimes that require client
         access to HBase can instead be configured to log in from a keytab. For
-        each host running such daemons, create a keytab with
+        each host running such daemons, create a keytab with 
         <code class="code">kadmin</code> or <code class="code">kadmin.local</code>. The procedure for
         creating keytabs for HBase service is the same as for creating
         keytabs for Hadoop. Those steps are omitted here. Copy the resulting
@@ -2896,8 +2896,8 @@ if (!b) {
     </p><pre class="programlisting">
       &lt;property&gt;
         &lt;name&gt;hbase.security.authentication&lt;/name&gt;
-        &lt;value&gt;kerberos&lt;/value&gt;
-      &lt;/property&gt;
+        &lt;value&gt;kerberos&lt;/value&gt; 
+      &lt;/property&gt; 
       &lt;property&gt;
         &lt;name&gt;hbase.security.authorization&lt;/name&gt;
         &lt;value&gt;true&lt;/value&gt;
@@ -2915,14 +2915,14 @@ if (!b) {
       &lt;property&gt;
         &lt;name&gt;hbase.security.authentication&lt;/name&gt;
         &lt;value&gt;kerberos&lt;/value&gt;
-      &lt;/property&gt;
+      &lt;/property&gt; 
     </pre><p>
         The client environment must be logged in to Kerberos from KDC or
         keytab via the <code class="code">kinit</code> command before communication with
         the HBase cluster will be possible.
     </p><p>
         Be advised that if the <code class="code">hbase.security.authentication</code>
-        in the client- and server-side site files do not match, the client will
+        in the client- and server-side site files do not match, the client will 
         not be able to communicate with the cluster.
     </p><p>
         Once HBase is configured for secure RPC it is possible to optionally
@@ -3001,7 +3001,7 @@ if (!b) {
        there.
     </p><p>
        You must also configure ZooKeeper for secure operation. Changes to ACLs
-       are synchronized throughout the cluster using ZooKeeper. Secure
+       are synchronized throughout the cluster using ZooKeeper. Secure 
        authentication to ZooKeeper must be enabled or otherwise it will be
        possible to subvert HBase access control via direct client access to
        ZooKeeper. Refer to the section on secure ZooKeeper configuration and
@@ -3010,7 +3010,7 @@ if (!b) {
         With Secure RPC and Access Control enabled, client access to HBase is
         authenticated and user data is private unless access has been
         explicitly granted. Access to data can be granted at a table or per
-        column family basis.
+        column family basis. 
     </p><p>
         However, the following items have been left out of the initial
         implementation for simplicity:
@@ -3043,7 +3043,7 @@ Access control mechanisms are mature and fairly standardized in the relational d
        the table, though it may be changed at table creation time or during an
        alter operation by setting or changing the OWNER table attribute. Only a
        single user principal can own a table at a given time. A table owner will
-       have all permissions over a given table.
+       have all permissions over a given table. 
     </p></div><div class="section" title="8.2.3.&nbsp;Server-side Configuration for Access Control"><div class="titlepage"><div><div><h3 class="title"><a name="d1984e4744"></a>8.2.3.&nbsp;Server-side Configuration for Access Control</h3></div></div></div><p>
         Enable the AccessController coprocessor in the cluster configuration
         and restart HBase. The restart can be a rolling one. Complete the
@@ -3062,7 +3062,7 @@ Access control mechanisms are mature and fairly standardized in the relational d
         org.apache.hadoop.hbase.security.access.AccessController&lt;/value&gt;
       &lt;/property&gt;
     </pre></div><div class="section" title="8.2.4.&nbsp;Shell Enhancements for Access Control"><div class="titlepage"><div><div><h3 class="title"><a name="d1984e4756"></a>8.2.4.&nbsp;Shell Enhancements for Access Control</h3></div></div></div><p>
-The HBase shell has been extended to provide simple commands for editing and updating user permissions. The following commands have been added for access control list management:
+The HBase shell has been extended to provide simple commands for editing and updating user permissions. The following commands have been added for access control list management: 
     </p>
     Grant
     <p>
@@ -3070,7 +3070,7 @@ The HBase shell has been extended to provide simple commands for editing and upd
     grant &lt;user&gt; &lt;permissions&gt; &lt;table&gt; [ &lt;column family&gt; [ &lt;column qualifier&gt; ] ]
     </pre><p>
     </p><p>
-    <code class="code">&lt;permissions&gt;</code> is zero or more letters from the set "RWCA": READ('R'), WRITE('W'), CREATE('C'), ADMIN('A').
+    <code class="code">&lt;permissions&gt;</code> is zero or more letters from the set "RWCA": READ('R'), WRITE('W'), CREATE('C'), ADMIN('A'). 
     </p><p>
     Note: Grants and revocations of individual permissions on a resource are both accomplished using the <code class="code">grant</code> command. A separate <code class="code">revoke</code> command is also provided by the shell, but this is for fast revocation of all of a user's access rights to a given resource only.
     </p><p>
@@ -3579,7 +3579,7 @@ myHtd.setValue(HTableDescriptor.SPLIT_POLICY, MyCustomSplitPolicy.class.getName(
            </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">rowlength <code class="code">------------&gt; 4</code></li><li class="listitem">row <code class="code">-----------------&gt; row1</code></li><li class="listitem">columnfamilylength <code class="code">---&gt; 2</code></li><li class="listitem">columnfamily <code class="code">--------&gt; cf</code></li><li class="listitem">columnqualifier <code class="code">------&gt; attr1</code></li><li class="listitem">timestamp <code class="code">-----------&gt; server time of Put</code></li><li class="listitem">keytype <code class="code">-------------&gt; Put</code></li></ul></div><p>
           </p><p>Key portion for Put #2:
            </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">rowlength <code class="code">------------&gt; 4</code></li><li class="listitem">row <code class="code">-----------------&gt; row1</code></li><li class="listitem">columnfamilylength <code class="code">---&gt; 2</code></li><li class="listitem">columnfamily <code class="code">--------&gt; cf</code></li><li class="listitem">columnqualifier <code class="code">------&gt; attr2</code></li><li class="listitem">timestamp <code class="code">-----------&gt; server time of Put</code></li><li class="listitem">keytype <code class="code">-------------&gt; Put</code></li></ul></div><p>
-
+           
           </p></div><p>It is critical to understand that the rowkey, ColumnFamily, and column (aka columnqualifier) are embedded within
        the KeyValue instance.  The longer these identifiers are, the bigger the KeyValue is.</p></div><div class="section" title="9.7.5.5.&nbsp;Compaction"><div class="titlepage"><div><div><h4 class="title"><a name="compaction"></a>9.7.5.5.&nbsp;Compaction</h4></div></div></div><p>There are two types of compactions:  minor and major.  Minor compactions will usually pick up a couple of the smaller adjacent
          StoreFiles and rewrite them as one.  Minors do not drop deletes or expired cells, only major compactions do this.  Sometimes a minor compaction
@@ -3823,9 +3823,9 @@ myHtd.setValue(HTableDescriptor.SPLIT_POLICY, MyCustomSplitPolicy.class.getName(
               column value. </p><p><span class="bold"><strong>Syntax:</strong></span> SingleColumnValueExcludeFilter(&lt;compare operator&gt;, '&lt;comparator&gt;', '&lt;family&gt;', '&lt;qualifier&gt;',&lt;latest_version_boolean&gt;, &lt;filterIfColumnMissing_boolean&gt;)</p><p><span class="bold"><strong>Syntax:</strong></span> SingleColumnValueExcludeFilter(&lt;compare operator&gt;, '&lt;comparator&gt;', '&lt;family&gt;', '&lt;qualifier&gt;') </p><p><span class="bold"><strong>Example:</strong></span> "SingleColumnValueExcludeFilter (&#8216;&lt;=&#8217;, &#8216;abc&#8217;,&#8216;FamilyA&#8217;, &#8216;Column1&#8217;, &#8216;false&#8217;, &#8216;true&#8217;)"</p><p><span class="bold"><strong>Example:</strong></span> "SingleColumnValueExcludeFilter (&#8216;&lt;=&#8217;, &#8216;abc&#8217;, &#8216;FamilyA&#8217;, &#8216;Column1&#8217;)" </p></li><li class="listitem"><p><span class="bold"><strong><span class="underline">ColumnRangeFilter</span></strong></span></p><p><span class="bold"><
 strong>Description:</strong></span> This filter is used for selecting only those
               keys with columns that are between minColumn and maxColumn. It also takes two boolean
               variables to indicate whether to include the minColumn and maxColumn or not.</p><p>If you don&#8217;t want to set the minColumn or the maxColumn &#8211; you can pass in an empty argument.</p><p><span class="bold"><strong>Syntax:</strong></span> ColumnRangeFilter (&#8216;&lt;minColumn&gt;&#8217;, &lt;minColumnInclusive_bool&gt;, &#8216;&lt;maxColumn&gt;&#8217;, &lt;maxColumnInclusive_bool&gt;)</p><p><span class="bold"><strong>Example:</strong></span> "ColumnRangeFilter (&#8216;abc&#8217;, true, &#8216;xyz&#8217;, false)"</p></li></ol></div></div></div></div><div class="section" title="10.4.&nbsp;C/C++ Apache HBase Client"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="c"></a>10.4.&nbsp;C/C++ Apache HBase Client</h2></div></div></div><p>FB's Chip Turner wrote a pure C/C++ client.  <a class="link" href="https://github.com/facebook/native-cpp-hbase-client" target="_top">Check it out</a>.
-    </p></div></div><div class="chapter" title="Chapter&nbsp;11.&nbsp;Apache HBase (TM) Performance Tuning"><div class="titlepage"><div><div><h2 class="title"><a name="performance"></a>Chapter&nbsp;11.&nbsp;Apache HBase (TM) Performance Tuning</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#perf.os">11.1. Operating System</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.os.ram">11.1.1. Memory</a></span></dt><dt><span class="section"><a href="#perf.os.64">11.1.2. 64-bit</a></span></dt><dt><span class="section"><a href="#perf.os.swap">11.1.3. Swapping</a></span></dt></dl></dd><dt><span class="section"><a href="#perf.network">11.2. Network</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.network.1switch">11.2.1. Single Switch</a></span></dt><dt><span class="section"><a href="#perf.network.2switch">11.2.2. Multiple Switches</a></span></dt><dt><span class="section"><a href="#perf.network.multirack
 ">11.2.3. Multiple Racks</a></span></dt><dt><span class="section"><a href="#perf.network.ints">11.2.4. Network Interfaces</a></span></dt></dl></dd><dt><span class="section"><a href="#jvm">11.3. Java</a></span></dt><dd><dl><dt><span class="section"><a href="#gc">11.3.1. The Garbage Collector and Apache HBase</a></span></dt></dl></dd><dt><span class="section"><a href="#perf.configurations">11.4. HBase Configurations</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.number.of.regions">11.4.1. Number of Regions</a></span></dt><dt><span class="section"><a href="#perf.compactions.and.splits">11.4.2. Managing Compactions</a></span></dt><dt><span class="section"><a href="#perf.handlers">11.4.3. <code class="varname">hbase.regionserver.handler.count</code></a></span></dt><dt><span class="section"><a href="#perf.hfile.block.cache.size">11.4.4. <code class="varname">hfile.block.cache.size</code></a></span></dt><dt><span class="section"><a href="#perf.rs.memstore.upperlimit">11.4.
 5. <code class="varname">hbase.regionserver.global.memstore.upperLimit</code></a></span></dt><dt><span class="section"><a href="#perf.rs.memstore.lowerlimit">11.4.6. <code class="varname">hbase.regionserver.global.memstore.lowerLimit</code></a></span></dt><dt><span class="section"><a href="#perf.hstore.blockingstorefiles">11.4.7. <code class="varname">hbase.hstore.blockingStoreFiles</code></a></span></dt><dt><span class="section"><a href="#perf.hregion.memstore.block.multiplier">11.4.8. <code class="varname">hbase.hregion.memstore.block.multiplier</code></a></span></dt><dt><span class="section"><a href="#hbase.regionserver.checksum.verify">11.4.9. <code class="varname">hbase.regionserver.checksum.verify</code></a></span></dt></dl></dd><dt><span class="section"><a href="#perf.zookeeper">11.5. ZooKeeper</a></span></dt><dt><span class="section"><a href="#perf.schema">11.6. Schema Design</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.number.of.cfs">11.6.1. Number of Col
 umn Families</a></span></dt><dt><span class="section"><a href="#perf.schema.keys">11.6.2. Key and Attribute Lengths</a></span></dt><dt><span class="section"><a href="#schema.regionsize">11.6.3. Table RegionSize</a></span></dt><dt><span class="section"><a href="#schema.bloom">11.6.4. Bloom Filters</a></span></dt><dt><span class="section"><a href="#schema.cf.blocksize">11.6.5. ColumnFamily BlockSize</a></span></dt><dt><span class="section"><a href="#cf.in.memory">11.6.6. In-Memory ColumnFamilies</a></span></dt><dt><span class="section"><a href="#perf.compression">11.6.7. Compression</a></span></dt></dl></dd><dt><span class="section"><a href="#perf.writing">11.7. Writing to HBase</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.batch.loading">11.7.1. Batch Loading</a></span></dt><dt><span class="section"><a href="#precreate.regions">11.7.2.
+    </p></div></div><div class="chapter" title="Chapter&nbsp;11.&nbsp;Apache HBase (TM) Performance Tuning"><div class="titlepage"><div><div><h2 class="title"><a name="performance"></a>Chapter&nbsp;11.&nbsp;Apache HBase (TM) Performance Tuning</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#perf.os">11.1. Operating System</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.os.ram">11.1.1. Memory</a></span></dt><dt><span class="section"><a href="#perf.os.64">11.1.2. 64-bit</a></span></dt><dt><span class="section"><a href="#perf.os.swap">11.1.3. Swapping</a></span></dt></dl></dd><dt><span class="section"><a href="#perf.network">11.2. Network</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.network.1switch">11.2.1. Single Switch</a></span></dt><dt><span class="section"><a href="#perf.network.2switch">11.2.2. Multiple Switches</a></span></dt><dt><span class="section"><a href="#perf.network.multirack
 ">11.2.3. Multiple Racks</a></span></dt><dt><span class="section"><a href="#perf.network.ints">11.2.4. Network Interfaces</a></span></dt></dl></dd><dt><span class="section"><a href="#jvm">11.3. Java</a></span></dt><dd><dl><dt><span class="section"><a href="#gc">11.3.1. The Garbage Collector and Apache HBase</a></span></dt></dl></dd><dt><span class="section"><a href="#perf.configurations">11.4. HBase Configurations</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.number.of.regions">11.4.1. Number of Regions</a></span></dt><dt><span class="section"><a href="#perf.compactions.and.splits">11.4.2. Managing Compactions</a></span></dt><dt><span class="section"><a href="#perf.handlers">11.4.3. <code class="varname">hbase.regionserver.handler.count</code></a></span></dt><dt><span class="section"><a href="#perf.hfile.block.cache.size">11.4.4. <code class="varname">hfile.block.cache.size</code></a></span></dt><dt><span class="section"><a href="#perf.rs.memstore.upperlimit">11.4.
 5. <code class="varname">hbase.regionserver.global.memstore.upperLimit</code></a></span></dt><dt><span class="section"><a href="#perf.rs.memstore.lowerlimit">11.4.6. <code class="varname">hbase.regionserver.global.memstore.lowerLimit</code></a></span></dt><dt><span class="section"><a href="#perf.hstore.blockingstorefiles">11.4.7. <code class="varname">hbase.hstore.blockingStoreFiles</code></a></span></dt><dt><span class="section"><a href="#perf.hregion.memstore.block.multiplier">11.4.8. <code class="varname">hbase.hregion.memstore.block.multiplier</code></a></span></dt><dt><span class="section"><a href="#hbase.regionserver.checksum.verify">11.4.9. <code class="varname">hbase.regionserver.checksum.verify</code></a></span></dt></dl></dd><dt><span class="section"><a href="#perf.zookeeper">11.5. ZooKeeper</a></span></dt><dt><span class="section"><a href="#perf.schema">11.6. Schema Design</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.number.of.cfs">11.6.1. Number of Col
 umn Families</a></span></dt><dt><span class="section"><a href="#perf.schema.keys">11.6.2. Key and Attribute Lengths</a></span></dt><dt><span class="section"><a href="#schema.regionsize">11.6.3. Table RegionSize</a></span></dt><dt><span class="section"><a href="#schema.bloom">11.6.4. Bloom Filters</a></span></dt><dt><span class="section"><a href="#schema.cf.blocksize">11.6.5. ColumnFamily BlockSize</a></span></dt><dt><span class="section"><a href="#cf.in.memory">11.6.6. In-Memory ColumnFamilies</a></span></dt><dt><span class="section"><a href="#perf.compression">11.6.7. Compression</a></span></dt></dl></dd><dt><span class="section"><a href="#perf.writing">11.7. Writing to HBase</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.batch.loading">11.7.1. Batch Loading</a></span></dt><dt><span class="section"><a href="#precreate.regions">11.7.2. 
     Table Creation: Pre-Creating Regions
-    </a></span></dt><dt><span class="section"><a href="#def.log.flush">11.7.3.
+    </a></span></dt><dt><span class="section"><a href="#def.log.flush">11.7.3. 
     Table Creation: Deferred Log Flush
     </a></span></dt><dt><span class="section"><a href="#perf.hbase.client.autoflush">11.7.4. HBase Client:  AutoFlush</a></span></dt><dt><span class="section"><a href="#perf.hbase.client.putwal">11.7.5. HBase Client:  Turn off WAL on Puts</a></span></dt><dt><span class="section"><a href="#perf.hbase.client.regiongroup">11.7.6. HBase Client: Group Puts by RegionServer</a></span></dt><dt><span class="section"><a href="#perf.hbase.write.mr.reducer">11.7.7. MapReduce:  Skip The Reducer</a></span></dt><dt><span class="section"><a href="#perf.one.region">11.7.8. Anti-Pattern:  One Hot Region</a></span></dt></dl></dd><dt><span class="section"><a href="#perf.reading">11.8. Reading from HBase</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.hbase.client.caching">11.8.1. Scan Caching</a></span></dt><dt><span class="section"><a href="#perf.hbase.client.selection">11.8.2. Scan Attribute Selection</a></span></dt><dt><span class="section"><a href="#perf.hbase.client.seek">11.8.3. A
 void scan seeks</a></span></dt><dt><span class="section"><a href="#perf.hbase.mr.input">11.8.4. MapReduce - Input Splits</a></span></dt><dt><span class="section"><a href="#perf.hbase.client.scannerclose">11.8.5. Close ResultScanners</a></span></dt><dt><span class="section"><a href="#perf.hbase.client.blockcache">11.8.6. Block Cache</a></span></dt><dt><span class="section"><a href="#perf.hbase.client.rowkeyonly">11.8.7. Optimal Loading of Row Keys</a></span></dt><dt><span class="section"><a href="#perf.hbase.read.dist">11.8.8. Concurrency:  Monitor Data Spread</a></span></dt><dt><span class="section"><a href="#blooms">11.8.9. Bloom Filters</a></span></dt></dl></dd><dt><span class="section"><a href="#perf.deleting">11.9. Deleting from HBase</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.deleting.queue">11.9.1. Using HBase Tables as Queues</a></span></dt><dt><span class="section"><a href="#perf.deleting.rpc">11.9.2. Delete RPC Behavior</a></span></dt></dl></dd><dt><spa
 n class="section"><a href="#perf.hdfs">11.10. HDFS</a></span></dt><dd><dl><dt><span class="section"><a href="#perf.hdfs.curr">11.10.1. Current Issues With Low-Latency Reads</a></span></dt><dt><span class="section"><a href="#perf.hdfs.configs.localread">11.10.2. Leveraging local data</a></span></dt><dt><span class="section"><a href="#perf.hdfs.comp">11.10.3. Performance Comparisons of HBase vs. HDFS</a></span></dt></dl></dd><dt><span class="section"><a href="#perf.ec2">11.11. Amazon EC2</a></span></dt><dt><span class="section"><a href="#perf.casestudy">11.12. Case Studies</a></span></dt></dl></div><div class="section" title="11.1.&nbsp;Operating System"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="perf.os"></a>11.1.&nbsp;Operating System</h2></div></div></div><div class="section" title="11.1.1.&nbsp;Memory"><div class="titlepage"><div><div><h3 class="title"><a name="perf.os.ram"></a>11.1.1.&nbsp;Memory</h3></div></div></div><p>RAM, RAM, RAM.  Don't 
 starve HBase.</p></div><div class="section" title="11.1.2.&nbsp;64-bit"><div class="titlepage"><div><div><h3 class="title"><a name="perf.os.64"></a>11.1.2.&nbsp;64-bit</h3></div></div></div><p>Use a 64-bit platform (and 64-bit JVM).</p></div><div class="section" title="11.1.3.&nbsp;Swapping"><div class="titlepage"><div><div><h3 class="title"><a name="perf.os.swap"></a>11.1.3.&nbsp;Swapping</h3></div></div></div><p>Watch out for swapping.  Set swappiness to 0.</p></div></div><div class="section" title="11.2.&nbsp;Network"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="perf.network"></a>11.2.&nbsp;Network</h2></div></div></div><p>
     Perhaps the most important factor in avoiding network issues degrading Hadoop and HBbase performance is the switching hardware
@@ -3928,10 +3928,10 @@ myHtd.setValue(HTableDescriptor.SPLIT_POLICY, MyCustomSplitPolicy.class.getName(
       </p></div><div class="section" title="11.7.2.&nbsp; Table Creation: Pre-Creating Regions"><div class="titlepage"><div><div><h3 class="title"><a name="precreate.regions"></a>11.7.2.&nbsp;
     Table Creation: Pre-Creating Regions
     </h3></div></div></div><p>
-Tables in HBase are initially created with one region by default.  For bulk imports, this means that all clients will write to the same region
-until it is large enough to split and become distributed across the cluster.  A useful pattern to speed up the bulk import process is to pre-create empty regions.
- Be somewhat conservative in this, because too-many regions can actually degrade performance.
-</p><p>There are two different approaches to pre-creating splits.  The first approach is to rely on the default <code class="code">HBaseAdmin</code> strategy
+Tables in HBase are initially created with one region by default.  For bulk imports, this means that all clients will write to the same region 
+until it is large enough to split and become distributed across the cluster.  A useful pattern to speed up the bulk import process is to pre-create empty regions. 
+ Be somewhat conservative in this, because too-many regions can actually degrade performance.  
+</p><p>There are two different approaches to pre-creating splits.  The first approach is to rely on the default <code class="code">HBaseAdmin</code> strategy 
 	(which is implemented in <code class="code">Bytes.split</code>)...
 	</p><pre class="programlisting">
 byte[] startKey = ...;   	// your lowest keuy
@@ -4784,10 +4784,10 @@ org.apache.hadoop.ipc.RemoteException: Server IPC version 7 cannot communicate w
 Use the HBase built against Hadoop 2.0 or rebuild your HBase passing the <span class="command"><strong>-Dhadoop.profile=2.0</strong></span>
 attribute to Maven (See <a class="xref" href="#maven.build.hadoop" title="15.8.3.&nbsp;Building against various hadoop versions.">Section&nbsp;15.8.3, &#8220;Building against various hadoop versions.&#8221;</a> for more).
 </p></div></div><div class="section" title="12.14.&nbsp;Case Studies"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="trouble.casestudy"></a>12.14.&nbsp;Case Studies</h2></div></div></div><p>For Performance and Troubleshooting Case Studies, see <a class="xref" href="#casestudies" title="Chapter&nbsp;13.&nbsp;Apache HBase (TM) Case Studies">Chapter&nbsp;13, <i>Apache HBase (TM) Case Studies</i></a>.
-      </p></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a id="ftn.d1984e7978" href="#d1984e7978" class="para">28</a>] </sup>See Getting Answers</p></div></div></div><div class="chapter" title="Chapter&nbsp;13.&nbsp;Apache HBase (TM) Case Studies"><div class="titlepage"><div><div><h2 class="title"><a name="casestudies"></a>Chapter&nbsp;13.&nbsp;Apache HBase (TM) Case Studies</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#casestudies.overview">13.1. Overview</a></span></dt><dt><span class="section"><a href="#casestudies.schema">13.2. Schema Design</a></span></dt><dd><dl><dt><span class="section"><a href="#casestudies.schema.listdata">13.2.1. List Data</a></span></dt></dl></dd><dt><span class="section"><a href="#casestudies.perftroub">13.3. Performance/Troubleshooting</a></span></dt><dd><dl><dt><span class="section"><a href="#casestudies.slownode">13.3.1. Case Study #1 (Perfor
 mance Issue On A Single Node)</a></span></dt><dt><span class="section"><a href="#casestudies.perf.1">13.3.2. Case Study #2 (Performance Research 2012)</a></span></dt><dt><span class="section"><a href="#casestudies.perf.2">13.3.3. Case Study #3 (Performance Research 2010))</a></span></dt><dt><span class="section"><a href="#casestudies.xceivers">13.3.4. Case Study #4 (xcievers Config)</a></span></dt></dl></dd></dl></div><div class="section" title="13.1.&nbsp;Overview"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="casestudies.overview"></a>13.1.&nbsp;Overview</h2></div></div></div><p>This chapter will describe a variety of performance and troubleshooting case studies that can
+      </p></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a id="ftn.d1984e7978" href="#d1984e7978" class="para">28</a>] </sup>See Getting Answers</p></div></div></div><div class="chapter" title="Chapter&nbsp;13.&nbsp;Apache HBase (TM) Case Studies"><div class="titlepage"><div><div><h2 class="title"><a name="casestudies"></a>Chapter&nbsp;13.&nbsp;Apache HBase (TM) Case Studies</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#casestudies.overview">13.1. Overview</a></span></dt><dt><span class="section"><a href="#casestudies.schema">13.2. Schema Design</a></span></dt><dd><dl><dt><span class="section"><a href="#casestudies.schema.listdata">13.2.1. List Data</a></span></dt></dl></dd><dt><span class="section"><a href="#casestudies.perftroub">13.3. Performance/Troubleshooting</a></span></dt><dd><dl><dt><span class="section"><a href="#casestudies.slownode">13.3.1. Case Study #1 (Perfor
 mance Issue On A Single Node)</a></span></dt><dt><span class="section"><a href="#casestudies.perf.1">13.3.2. Case Study #2 (Performance Research 2012)</a></span></dt><dt><span class="section"><a href="#casestudies.perf.2">13.3.3. Case Study #3 (Performance Research 2010))</a></span></dt><dt><span class="section"><a href="#casestudies.xceivers">13.3.4. Case Study #4 (xcievers Config)</a></span></dt></dl></dd></dl></div><div class="section" title="13.1.&nbsp;Overview"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="casestudies.overview"></a>13.1.&nbsp;Overview</h2></div></div></div><p>This chapter will describe a variety of performance and troubleshooting case studies that can 
       provide a useful blueprint on diagnosing Apache HBase (TM) cluster issues.</p><p>For more information on Performance and Troubleshooting, see <a class="xref" href="#performance" title="Chapter&nbsp;11.&nbsp;Apache HBase (TM) Performance Tuning">Chapter&nbsp;11, <i>Apache HBase (TM) Performance Tuning</i></a> and <a class="xref" href="#trouble" title="Chapter&nbsp;12.&nbsp;Troubleshooting and Debugging Apache HBase (TM)">Chapter&nbsp;12, <i>Troubleshooting and Debugging Apache HBase (TM)</i></a>.
-      </p></div><div class="section" title="13.2.&nbsp;Schema Design"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="casestudies.schema"></a>13.2.&nbsp;Schema Design</h2></div></div></div><div class="section" title="13.2.1.&nbsp;List Data"><div class="titlepage"><div><div><h3 class="title"><a name="casestudies.schema.listdata"></a>13.2.1.&nbsp;List Data</h3></div></div></div><p>The following is an exchange from the user dist-list regarding a fairly common question:
-    		how to handle per-user list data in Apache HBase.
+      </p></div><div class="section" title="13.2.&nbsp;Schema Design"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="casestudies.schema"></a>13.2.&nbsp;Schema Design</h2></div></div></div><div class="section" title="13.2.1.&nbsp;List Data"><div class="titlepage"><div><div><h3 class="title"><a name="casestudies.schema.listdata"></a>13.2.1.&nbsp;List Data</h3></div></div></div><p>The following is an exchange from the user dist-list regarding a fairly common question:  
+    		how to handle per-user list data in Apache HBase. 
     		</p><p>*** QUESTION ***</p><p>
     		We're looking at how to store a large amount of (per-user) list data in
 HBase, and we were trying to figure out what kind of access pattern made
@@ -4894,25 +4894,25 @@ disadvantages!) at extremely high throughput, and the only way to
 really know that would be to try it out. If you don't have time to
 build it both ways and compare, my advice would be to start with the
 simplest option (one row per user+value). Start simple and iterate! :)
-			</p></div></div><div class="section" title="13.3.&nbsp;Performance/Troubleshooting"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="casestudies.perftroub"></a>13.3.&nbsp;Performance/Troubleshooting</h2></div></div></div><div class="section" title="13.3.1.&nbsp;Case Study #1 (Performance Issue On A Single Node)"><div class="titlepage"><div><div><h3 class="title"><a name="casestudies.slownode"></a>13.3.1.&nbsp;Case Study #1 (Performance Issue On A Single Node)</h3></div></div></div><div class="section" title="13.3.1.1.&nbsp;Scenario"><div class="titlepage"><div><div><h4 class="title"><a name="d1984e8865"></a>13.3.1.1.&nbsp;Scenario</h4></div></div></div><p>Following a scheduled reboot, one data node began exhibiting unusual behavior.  Routine MapReduce
-         jobs run against HBase tables which regularly completed in five or six minutes began taking 30 or 40 minutes
-         to finish. These jobs were consistently found to be waiting on map and reduce tasks assigned to the troubled data node
-         (e.g., the slow map tasks all had the same Input Split).
+			</p></div></div><div class="section" title="13.3.&nbsp;Performance/Troubleshooting"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="casestudies.perftroub"></a>13.3.&nbsp;Performance/Troubleshooting</h2></div></div></div><div class="section" title="13.3.1.&nbsp;Case Study #1 (Performance Issue On A Single Node)"><div class="titlepage"><div><div><h3 class="title"><a name="casestudies.slownode"></a>13.3.1.&nbsp;Case Study #1 (Performance Issue On A Single Node)</h3></div></div></div><div class="section" title="13.3.1.1.&nbsp;Scenario"><div class="titlepage"><div><div><h4 class="title"><a name="d1984e8865"></a>13.3.1.1.&nbsp;Scenario</h4></div></div></div><p>Following a scheduled reboot, one data node began exhibiting unusual behavior.  Routine MapReduce 
+         jobs run against HBase tables which regularly completed in five or six minutes began taking 30 or 40 minutes 
+         to finish. These jobs were consistently found to be waiting on map and reduce tasks assigned to the troubled data node 
+         (e.g., the slow map tasks all had the same Input Split).           
          The situation came to a head during a distributed copy, when the copy was severely prolonged by the lagging node.
 		</p></div><div class="section" title="13.3.1.2.&nbsp;Hardware"><div class="titlepage"><div><div><h4 class="title"><a name="d1984e8870"></a>13.3.1.2.&nbsp;Hardware</h4></div></div></div><p>Datanodes:
         </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">Two 12-core processors</li><li class="listitem">Six Enerprise SATA disks</li><li class="listitem">24GB of RAM</li><li class="listitem">Two bonded gigabit NICs</li></ul></div><p>
         </p><p>Network:
         </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">10 Gigabit top-of-rack switches</li><li class="listitem">20 Gigabit bonded interconnects between racks.</li></ul></div><p>
-        </p></div><div class="section" title="13.3.1.3.&nbsp;Hypotheses"><div class="titlepage"><div><div><h4 class="title"><a name="d1984e8893"></a>13.3.1.3.&nbsp;Hypotheses</h4></div></div></div><div class="section" title="13.3.1.3.1.&nbsp;HBase &#34;Hot Spot&#34; Region"><div class="titlepage"><div><div><h5 class="title"><a name="d1984e8896"></a>13.3.1.3.1.&nbsp;HBase "Hot Spot" Region</h5></div></div></div><p>We hypothesized that we were experiencing a familiar point of pain: a "hot spot" region in an HBase table,
-		  where uneven key-space distribution can funnel a huge number of requests to a single HBase region, bombarding the RegionServer
-		  process and cause slow response time. Examination of the HBase Master status page showed that the number of HBase requests to the
-		  troubled node was almost zero.  Further, examination of the HBase logs showed that there were no region splits, compactions, or other region transitions
+        </p></div><div class="section" title="13.3.1.3.&nbsp;Hypotheses"><div class="titlepage"><div><div><h4 class="title"><a name="d1984e8893"></a>13.3.1.3.&nbsp;Hypotheses</h4></div></div></div><div class="section" title="13.3.1.3.1.&nbsp;HBase &#34;Hot Spot&#34; Region"><div class="titlepage"><div><div><h5 class="title"><a name="d1984e8896"></a>13.3.1.3.1.&nbsp;HBase "Hot Spot" Region</h5></div></div></div><p>We hypothesized that we were experiencing a familiar point of pain: a "hot spot" region in an HBase table, 
+		  where uneven key-space distribution can funnel a huge number of requests to a single HBase region, bombarding the RegionServer 
+		  process and cause slow response time. Examination of the HBase Master status page showed that the number of HBase requests to the 
+		  troubled node was almost zero.  Further, examination of the HBase logs showed that there were no region splits, compactions, or other region transitions 
 		  in progress.  This effectively ruled out a "hot spot" as the root cause of the observed slowness.
-          </p></div><div class="section" title="13.3.1.3.2.&nbsp;HBase Region With Non-Local Data"><div class="titlepage"><div><div><h5 class="title"><a name="d1984e8901"></a>13.3.1.3.2.&nbsp;HBase Region With Non-Local Data</h5></div></div></div><p>Our next hypothesis was that one of the MapReduce tasks was requesting data from HBase that was not local to the datanode, thus
-		  forcing HDFS to request data blocks from other servers over the network.  Examination of the datanode logs showed that there were very
-		  few blocks being requested over the network, indicating that the HBase region was correctly assigned, and that the majority of the necessary
+          </p></div><div class="section" title="13.3.1.3.2.&nbsp;HBase Region With Non-Local Data"><div class="titlepage"><div><div><h5 class="title"><a name="d1984e8901"></a>13.3.1.3.2.&nbsp;HBase Region With Non-Local Data</h5></div></div></div><p>Our next hypothesis was that one of the MapReduce tasks was requesting data from HBase that was not local to the datanode, thus 
+		  forcing HDFS to request data blocks from other servers over the network.  Examination of the datanode logs showed that there were very 
+		  few blocks being requested over the network, indicating that the HBase region was correctly assigned, and that the majority of the necessary 
 		  data was located on the node. This ruled out the possibility of non-local data causing a slowdown.
-          </p></div><div class="section" title="13.3.1.3.3.&nbsp;Excessive I/O Wait Due To Swapping Or An Over-Worked Or Failing Hard Disk"><div class="titlepage"><div><div><h5 class="title"><a name="d1984e8906"></a>13.3.1.3.3.&nbsp;Excessive I/O Wait Due To Swapping Or An Over-Worked Or Failing Hard Disk</h5></div></div></div><p>After concluding that the Hadoop and HBase were not likely to be the culprits, we moved on to troubleshooting the datanode's hardware.
+          </p></div><div class="section" title="13.3.1.3.3.&nbsp;Excessive I/O Wait Due To Swapping Or An Over-Worked Or Failing Hard Disk"><div class="titlepage"><div><div><h5 class="title"><a name="d1984e8906"></a>13.3.1.3.3.&nbsp;Excessive I/O Wait Due To Swapping Or An Over-Worked Or Failing Hard Disk</h5></div></div></div><p>After concluding that the Hadoop and HBase were not likely to be the culprits, we moved on to troubleshooting the datanode's hardware. 
           Java, by design, will periodically scan its entire memory space to do garbage collection.  If system memory is heavily overcommitted, the Linux 
           kernel may enter a vicious cycle, using up all of its resources swapping Java heap back and forth from disk to RAM as Java tries to run garbage 
           collection.  Further, a failing hard disk will often retry reads and/or writes many times before giving up and returning an error. This can manifest 
@@ -7103,4 +7103,4 @@ See the HTrace <code class="filename">README</code> for more information on Samp
           ulimit
             and
           nproc
-        </a></dt></dl></div><div class="indexdiv"><h3>V</h3><dl><dt>Versions, <a class="indexterm" href="#versions">Versions</a></dt></dl></div><div class="indexdiv"><h3>X</h3><dl><dt>xcievers, <a class="indexterm" href="#dfs.datanode.max.xcievers">dfs.datanode.max.xcievers</a></dt></dl></div><div class="indexdiv"><h3>Z</h3><dl><dt>ZooKeeper, <a class="indexterm" href="#zookeeper">ZooKeeper</a></dt></dl></div></div></div></div></body></html>
+        </a></dt></dl></div><div class="indexdiv"><h3>V</h3><dl><dt>Versions, <a class="indexterm" href="#versions">Versions</a></dt></dl></div><div class="indexdiv"><h3>X</h3><dl><dt>xcievers, <a class="indexterm" href="#dfs.datanode.max.xcievers">dfs.datanode.max.xcievers</a></dt></dl></div><div class="indexdiv"><h3>Z</h3><dl><dt>ZooKeeper, <a class="indexterm" href="#zookeeper">ZooKeeper</a></dt></dl></div></div></div></div></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ecb8d8ba/0.94/book/book.html
----------------------------------------------------------------------
diff --git a/0.94/book/book.html b/0.94/book/book.html
index aedf343..8880cba 100644
--- a/0.94/book/book.html
+++ b/0.94/book/book.html
@@ -12,7 +12,7 @@
         </p></div><div><div class="revhistory"><table border="1" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
           0.94.27
         </td><td align="left">
-          2015-11-03T11:44
+          2015-12-16T16:51
         </td></tr></table></div></div><div><div class="abstract" title="Abstract"><p class="title"><b>Abstract</b></p><p>This is the official reference guide of
     <a class="link" href="http://www.hbase.org" target="_top">Apache HBase (TM)</a>,
     a distributed, versioned, column-oriented database built on top of

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/ecb8d8ba/0.94/bulk-loads.html
----------------------------------------------------------------------
diff --git a/0.94/bulk-loads.html b/0.94/bulk-loads.html
index ac11e2e..82b4c33 100644
--- a/0.94/bulk-loads.html
+++ b/0.94/bulk-loads.html
@@ -1,6 +1,6 @@
 <!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 at 2015-11-03 -->
+<!-- Generated by Apache Maven Doxia at 2015-12-16 -->
 <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" />
@@ -15,7 +15,7 @@
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
     <link rel="shortcut icon" href="/images/favicon.ico" />
-    <meta name="Date-Revision-yyyymmdd" content="20151103" />
+    <meta name="Date-Revision-yyyymmdd" content="20151216" />
     <meta http-equiv="Content-Language" content="en" />
         <!--Google Analytics-->
 <script type="text/javascript">
@@ -190,7 +190,7 @@
     <div id="footer">
        <div class="xright">      
                 
-                 <span id="publishDate">Last Published: 2015-11-03</span>
+                 <span id="publishDate">Last Published: 2015-12-16</span>
               &nbsp;| <span id="projectVersion">Version: 0.94.27</span>
             &nbsp;
         </div>