Updated on 2024-04-29 GMT+08:00

Configuring HBase Parameters

Scenario

A CloudTable HBase cluster has many HBase parameters related to read/write performance. You can modify the HBase parameters to tune cluster performance under different read/write request loads. You need to restart the cluster to make changes take effect.

Prerequisites

No task is running in the cluster.

Procedure

  • Restart the CloudTable HBase cluster after parameter configuration modification. Otherwise, services will be interrupted.
  • Do not modify cluster parameters when the CloudTable HBase cluster is being restarted.
  1. Log in to the CloudTable management console.
  2. Click in the upper left corner to select a region.
  3. In the navigation tree, click Cluster Management.
  4. Click the name of a cluster for which you want to modify HBase parameters to access the basic cluster information page.
  5. In the Parameter Configuration area, click the Parameters tab to modify HBase parameters.

    For details about the HBase parameters you can modify, see HBase Parameters.

    1. Select the target parameter and click in the Value column.
    2. Enter a new value in the text box, and then click . The parameter value has been successfully changed if the system prompts "The parameter changed to xx successfully. Save the modified value." The new parameter value is marked with a red asterisk (*).

      If you want to cancel it, click .

      Figure 1 Modifying HBase parameters
    3. Click Save Changes in the upper left corner of the parameter list. The Save Changes dialog box is displayed.
    4. In the Save Changes dialog box, verify whether the parameter settings are correct. Select Restart the cluster immediately and click OK.
      Figure 2 Save changes
      • After you select Restart the cluster immediately and click OK, the cluster restarts immediately. After the cluster restart is complete, the new parameter configurations take effect. Click above the parameter list. The system prompts "The new value is applied" in the upper left corner of the parameter list.
      • If you do not select Restart the cluster immediately and click OK in the Save Changes dialog box, the system prompts "The new value is not applied" above the parameter list. In this case, you need to restart the cluster for the changes to take effect. For details about how to restart a cluster, see Restarting a Cluster.
      • If the new parameter value is incorrect, click Quick Restore to cancel the modification.

  6. After modifying parameters, you can click the Change History tab to view the change history.

    On the Change History tab page, you can view the following information.

    • Name: Name of the changed parameter.
    • Old Value: old parameter value
    • New Value: new parameter value
    • Modification Time: time when you modify a parameter value

HBase Parameters

Table 1 lists HBase parameters you can modify currently.

The sum of the values of hbase.regionserver.global.memstore.size and hfile.block.cache.size cannot exceed 0.8.

Table 1 HBase parameters

Parameter

Default Value

Unit

Value Range

Default Value

Description

hbase.regionserver.thread.compaction.small

1

--

[1,20]

1

Indicates the number of HFile compaction threads. You can increase the parameter value in heavy-put-load scenarios.

hbase.regionserver.global.memstore.size

0.4

--

(0,0.8)

0.4

It is recommended that you set this parameter to "hbase.hregion.memstore.flush.size x Number of regions with active writes/RegionServer GC -Xmx)." The default value is 0.4, indicating that 40% of RegionServer GC -Xmx is used.

hbase.hstore.blockingStoreFiles

60

--

[1,2147483647]

60

When the HFile number in the column cluster reaches this threshold, all operations in the region are blocked until the compaction is complete. You can increase the parameter value in heavy-put-load scenarios.

hbase.client.scanner.timeout.period

60000

ms

[1,2147483647]

60000

A client and RegionServer parameter, indicating the scan lease period. It is recommended that you set this parameter to an integral multiple of 60000 ms, and increase the parameter value in heavy-read-load scenarios. Unit: millisecond

hfile.block.cache.size

0.2

--

(0,0.8)

0.2

Indicates the data cache percentage in the RegionServer GC -Xmx. You can increase the parameter value in heavy-read-load scenarios, in order to improve cache hit ratio and performance. The default value is 0.2, indicating that 20% of RegionServer GC -Xmx is used.

hbase.regionserver.handler.count

100

--

[1,300]

100

Indicates the number of RPC server instances on the RegionServer. The recommended value ranges from 100 to 300.

hbase.regionserver.metahandler.count

50

--

[1,100]

50

Indicates the number of program instances for processing prioritized requests. The recommended value ranges from 20 to 100.

hbase.hstore.flusher.count

2

--

[1,10]

2

Indicates the number of memstore flush threads. You can increase the parameter value in heavy-put-load scenarios.

hbase.ipc.server.callqueue.read.ratio

0.5

--

[0,1]

0.5

When used under different load models, it controls the ratio between the numbers of read and write RPC queues. The value ranges from 0 to 1.0, and the default value is 0.5.

0 indicates the total RPC queues of read and write operations.

If the value is less than 0.5, it indicates that the read load is less than the write load.

0.5 indicates that the read load equals to the write load.

If the value is greater than 0.5, it indicates that the read load is greater than the write load.

1.0 indicates that all RPC queues except one are used for read operations.

hbase.regionserver.hotregion.handler.count

66

--

[1,65535]

66

Number of RPC listener instances started on RegionServers for hotspot regions.

hbase.ipc.server.hotregion.max.callqueue.length

330

--

[1,65535]

330

Maximum length of the queue for RegionServers to process requests of hotspot regions. Upon receiving a new request, the system checks whether the length of the queue exceeds the threshold. If so, the request is discarded.

hbase.metric.controller.analysis.period

60

Second

[1,2147483647]

60

Hotspot analysis period of MetricController, in seconds.

hbase.metric.controller.analysis.threads.max

10

--

[1,100]

10

Maximum number of threads for hotspot analysis in the thread pool.

hbase.metric.controller.collect.threads.max

16

--

[1,100]

16

Maximum number of threads for hotspot analysis in the traffic collection thread pool.

hbase.metric.regionserver.hotspot.threshold

20000

--

[1,2147483647]

20000

Hotspot threshold of a RegionServer. Unit: requests per second.

hbase.metric.region.hotspot.threshold

10000

--

[1,2147483647]

10000

Hotspot threshold of a single region. Unit: requests per second.

hbase.hotspot.enable

false

--

[true,false]

false

Whether to enable hotspot self-healing. The value true means to enable it, and false means to disable it. After this function is enabled, access hotspots will be automatically processed.

hbase.tries.cache.enabled

false

--

[true,false]

false

If this parameter is set to true, LoudsTriesLruBlockCache is used to cache index blocks and data blocks.

hbase.write.tries

false

--

[true,false]

false

If this parameter is set to true, the succinct tries feature is enabled. In this case, a new data structure is used to improve the utilization of index blocks.