Configuring HA Reads for HBase
To enable High Availability for HBase reads, specify the following server-side and client-side configuration properties
in your hbase-site.xml
configuration file, and then restart the HBase Master and Region Servers.
The following table describes server-side properties. Set these properties for all servers in your HBase cluster that will use region replicas.
Property | Example value | Description |
---|---|---|
| 30000 | Specifies the period (in milliseconds) for refreshing the store files for secondary regions. The default value is 0, which indicates that the feature is disabled. Secondary regions receive new files from the primary region after the secondary replica refreshes the list of files in the region. Note: Too-frequent refreshes might cause extra Namenode pressure. If files cannot be refreshed for longer
than HFile TTL, specified with Refresh period should be a non-zero number if META replicas are enabled
(see If you specify refresh period, we recommend configuring HFile TTL to a larger value than its default. |
| true | Determines whether asynchronous WAL replication is enabled or not. The value can be true or false. The default is false. If this property is enabled, a replication peer named
After enabling this property,
disabling it requires setting it to false and disabling the replication peer using the shell or
the |
| 3600000 | Specifies the period (in milliseconds) to keep store files in the archive folder before deleting them from the file system. |
|
| Specifies the Java class used for balancing the load of all HBase clients. The default value is |
| 3 | Region replication count for the meta regions. The default value is 1. |
| false | Determines whether all store files will be refreshed, as opposed to just META tables. The default is true. Set this value to false when |
| true | Specifies whether to wait for a full flush cycle from the primary before starting to serve data in a secondary replica. Disabling this feature might cause secondary replicas to read stale data when a region is transitioning to another region server. |
| 4 | Multiplier for a “store file refresh” operation for the secondary region replica. This multiplier is used to refresh a secondary region instead of flushing a primary region. The default value (4) configures the file refresh so that the biggest secondary region replica is 4 times bigger than the biggest primary region. Disabling this feature is not recommended. However, if you want to do so, set this property to a large value. |
The following table lists client-side properties. Set these properties for all clients (applications) and servers (in your HBase cluster) that will use region replicas.
Property | Example value | Description |
---|---|---|
| true | Specifies whether to enable interruption of RPC threads at the client side. This is required for region replicas with fallback RPC’s to secondary regions. |
| 10000 | Specifies the timeout (in microseconds) before secondary fallback RPC’s are submitted
for get requests with Setting this to a smaller value increases the number of RPC’s, but lowers 99th-percentile latencies. |
| 10000 | Specifies the timeout (in microseconds) before secondary fallback RPC’s are submitted for
multi-get requests ( Setting this to a smaller value increases the number of RPC’s, but lowers 99th-percentile latencies. |
| 1000000 | Specifies the timeout (in microseconds) before secondary fallback RPC’s are submitted for scan
requests with Setting this to a smaller value increases the number of RPC’s, but lowers 99th-percentile latencies. |
| true | Specifies whether to use META table replicas or not. The default value is false. |