1.4. HBase Configurations

See ???.

1.4.1. Number of Regions

The number of regions for an HBase table is driven by the ???. Also, see the architecture section on ???

A lower number of regions is preferred, generally in the range of 20 to low-hundreds per RegionServer. Adjust the regionsize as appropriate to achieve this number.

For the 0.90.x codebase, the upper-bound of regionsize is about 4Gb. For 0.92.x codebase, due to the HFile v2 change much larger regionsizes can be supported (e.g., 20Gb).

You may need to experiment with this setting based on your hardware configuration and application needs.

1.4.2. Managing Compactions

For larger systems, managing compactions and splits may be something you want to consider.

1.4.3. hbase.regionserver.handler.count

See ???. This setting in essence sets how many requests are concurrently being processed inside the RegionServer at any one time. If set too high, then throughput may suffer as the concurrent requests contend; if set too low, requests will be stuck waiting to get into the machine. You can get a sense of whether you have too little or too many handlers by ??? on an individual RegionServer then tailing its logs (Queued requests consume memory).

1.4.4. hfile.block.cache.size

See ???. A memory setting for the RegionServer process.

1.4.5. hbase.regionserver.global.memstore.upperLimit

See ???. This memory setting is often adjusted for the RegionServer process depending on needs.

1.4.6. hbase.regionserver.global.memstore.lowerLimit

See ???. This memory setting is often adjusted for the RegionServer process depending on needs.

1.4.7. hbase.hstore.blockingStoreFiles

See ???. If there is blocking in the RegionServer logs, increasing this can help.

1.4.8. hbase.hregion.memstore.block.multiplier

See ???. If there is enough RAM, increasing this can help.