Chapter 12. Apache HBase Performance Tuning

Table of Contents

12.1. Operating System
12.1.1. Memory
12.1.2. 64-bit
12.1.3. Swapping
12.2. Network
12.2.1. Single Switch
12.2.2. Multiple Switches
12.2.3. Multiple Racks
12.2.4. Network Interfaces
12.3. Java
12.3.1. The Garbage Collector and Apache HBase
12.4. HBase Configurations
12.4.1. Managing Compactions
12.4.2. hbase.regionserver.handler.count
12.4.3. hfile.block.cache.size
12.4.4. hbase.regionserver.global.memstore.size
12.4.5. hbase.regionserver.global.memstore.size.lower.limit
12.4.6. hbase.hstore.blockingStoreFiles
12.4.7. hbase.hregion.memstore.block.multiplier
12.4.8. hbase.regionserver.checksum.verify
12.5. ZooKeeper
12.6. Schema Design
12.6.1. Number of Column Families
12.6.2. Key and Attribute Lengths
12.6.3. Table RegionSize
12.6.4. Bloom Filters
12.6.5. ColumnFamily BlockSize
12.6.6. In-Memory ColumnFamilies
12.6.7. Compression
12.7. HBase General Patterns
12.7.1. Constants
12.8. Writing to HBase
12.8.1. Batch Loading
12.8.2. Table Creation: Pre-Creating Regions
12.8.3. Table Creation: Deferred Log Flush
12.8.4. HBase Client: AutoFlush
12.8.5. HBase Client: Turn off WAL on Puts
12.8.6. HBase Client: Group Puts by RegionServer
12.8.7. MapReduce: Skip The Reducer
12.8.8. Anti-Pattern: One Hot Region
12.9. Reading from HBase
12.9.1. Scan Caching
12.9.2. Scan Attribute Selection
12.9.3. Avoid scan seeks
12.9.4. MapReduce - Input Splits
12.9.5. Close ResultScanners
12.9.6. Block Cache
12.9.7. Optimal Loading of Row Keys
12.9.8. Concurrency: Monitor Data Spread
12.9.9. Bloom Filters
12.10. Deleting from HBase
12.10.1. Using HBase Tables as Queues
12.10.2. Delete RPC Behavior
12.11. HDFS
12.11.1. Current Issues With Low-Latency Reads
12.11.2. Leveraging local data
12.11.3. Performance Comparisons of HBase vs. HDFS
12.12. Amazon EC2
12.13. Collocating HBase and MapReduce
12.14. Case Studies

12.1. Operating System

12.1.1. Memory

RAM, RAM, RAM. Don't starve HBase.

12.1.2. 64-bit

Use a 64-bit platform (and 64-bit JVM).

12.1.3. Swapping

Watch out for swapping. Set swappiness to 0.

comments powered by Disqus