Chapter 14. Apache HBase Performance Tuning

Table of Contents

14.1. Operating System
14.1.1. Memory
14.1.2. 64-bit
14.1.3. Swapping
14.2. Network
14.2.1. Single Switch
14.2.2. Multiple Switches
14.2.3. Multiple Racks
14.2.4. Network Interfaces
14.3. Java
14.3.1. The Garbage Collector and Apache HBase
14.4. HBase Configurations
14.4.1. Managing Compactions
14.4.2. hbase.regionserver.handler.count
14.4.3. hfile.block.cache.size
14.4.4. Prefetch Option for Blockcache
14.4.5. hbase.regionserver.global.memstore.size
14.4.6. hbase.regionserver.global.memstore.size.lower.limit
14.4.7. hbase.hstore.blockingStoreFiles
14.4.8. hbase.hregion.memstore.block.multiplier
14.4.9. hbase.regionserver.checksum.verify
14.4.10. Tuning callQueue Options
14.5. ZooKeeper
14.6. Schema Design
14.6.1. Number of Column Families
14.6.2. Key and Attribute Lengths
14.6.3. Table RegionSize
14.6.4. Bloom Filters
14.6.5. ColumnFamily BlockSize
14.6.6. In-Memory ColumnFamilies
14.6.7. Compression
14.7. HBase General Patterns
14.7.1. Constants
14.8. Writing to HBase
14.8.1. Batch Loading
14.8.2. Table Creation: Pre-Creating Regions
14.8.3. Table Creation: Deferred Log Flush
14.8.4. HBase Client: AutoFlush
14.8.5. HBase Client: Turn off WAL on Puts
14.8.6. HBase Client: Group Puts by RegionServer
14.8.7. MapReduce: Skip The Reducer
14.8.8. Anti-Pattern: One Hot Region
14.9. Reading from HBase
14.9.1. Scan Caching
14.9.2. Scan Attribute Selection
14.9.3. Avoid scan seeks
14.9.4. MapReduce - Input Splits
14.9.5. Close ResultScanners
14.9.6. Block Cache
14.9.7. Optimal Loading of Row Keys
14.9.8. Concurrency: Monitor Data Spread
14.9.9. Bloom Filters
14.9.10. Hedged Reads
14.10. Deleting from HBase
14.10.1. Using HBase Tables as Queues
14.10.2. Delete RPC Behavior
14.11. HDFS
14.11.1. Current Issues With Low-Latency Reads
14.11.2. Leveraging local data
14.11.3. Performance Comparisons of HBase vs. HDFS
14.12. Amazon EC2
14.13. Collocating HBase and MapReduce
14.14. Case Studies

14.1. Operating System

14.1.1. Memory

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

14.1.2. 64-bit

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

14.1.3. Swapping

Watch out for swapping. Set swappiness to 0.

comments powered by Disqus