Chapter 13. Apache HBase Performance Tuning

Table of Contents

13.1. Operating System
13.1.1. Memory
13.1.2. 64-bit
13.1.3. Swapping
13.2. Network
13.2.1. Single Switch
13.2.2. Multiple Switches
13.2.3. Multiple Racks
13.2.4. Network Interfaces
13.3. Java
13.3.1. The Garbage Collector and Apache HBase
13.4. HBase Configurations
13.4.1. Managing Compactions
13.4.2. hbase.regionserver.handler.count
13.4.3. hfile.block.cache.size
13.4.4. hbase.regionserver.global.memstore.size
13.4.5. hbase.regionserver.global.memstore.size.lower.limit
13.4.6. hbase.hstore.blockingStoreFiles
13.4.7. hbase.hregion.memstore.block.multiplier
13.4.8. hbase.regionserver.checksum.verify
13.5. ZooKeeper
13.6. Schema Design
13.6.1. Number of Column Families
13.6.2. Key and Attribute Lengths
13.6.3. Table RegionSize
13.6.4. Bloom Filters
13.6.5. ColumnFamily BlockSize
13.6.6. In-Memory ColumnFamilies
13.6.7. Compression
13.7. HBase General Patterns
13.7.1. Constants
13.8. Writing to HBase
13.8.1. Batch Loading
13.8.2. Table Creation: Pre-Creating Regions
13.8.3. Table Creation: Deferred Log Flush
13.8.4. HBase Client: AutoFlush
13.8.5. HBase Client: Turn off WAL on Puts
13.8.6. HBase Client: Group Puts by RegionServer
13.8.7. MapReduce: Skip The Reducer
13.8.8. Anti-Pattern: One Hot Region
13.9. Reading from HBase
13.9.1. Scan Caching
13.9.2. Scan Attribute Selection
13.9.3. Avoid scan seeks
13.9.4. MapReduce - Input Splits
13.9.5. Close ResultScanners
13.9.6. Block Cache
13.9.7. Optimal Loading of Row Keys
13.9.8. Concurrency: Monitor Data Spread
13.9.9. Bloom Filters
13.10. Deleting from HBase
13.10.1. Using HBase Tables as Queues
13.10.2. Delete RPC Behavior
13.11. HDFS
13.11.1. Current Issues With Low-Latency Reads
13.11.2. Leveraging local data
13.11.3. Performance Comparisons of HBase vs. HDFS
13.12. Amazon EC2
13.13. Collocating HBase and MapReduce
13.14. Case Studies

13.1. Operating System

13.1.1. Memory

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

13.1.2. 64-bit

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

13.1.3. Swapping

Watch out for swapping. Set swappiness to 0.

comments powered by Disqus