Configuring the HBase Scanner Heartbeat
A scanner heartbeat check enforces a time limit on the execution of scan RPC requests. This helps prevent scans from taking too long and causing a timeout at the client.
When the server receives a scan RPC request, a time limit is calculated to be half of the smaller of two values: hbase.client.scanner.timeout.period and hbase.rpc.timeout (which both default to 60000 milliseconds, or one minute). When the time limit is reached, the server returns the results it has accumulated up to that point. This result set may be empty. If your usage pattern includes that scans will take longer than a minute, you can increase these values.
To make sure the timeout period is not too short, you can configure hbase.cells.scanned.per.heartbeat.check to a minimum number of cells that must be scanned before a timeout check occurs. The default value is 10000. A smaller value causes timeout checks to occur more often.
Configure the Scanner Heartbeat Using Cloudera Manager
Minimum Required Role: Configurator (also provided by Cluster Administrator, Full Administrator)
- Go to the HBase service.
- Click the Configuration tab.
- Select .
- Select .
- Locate the RPC Timeout property or search for it by typing its name in the Search box.
- Edit the property.
- To modify the default values for hbase.client.scanner.timeout.period or hbase.cells.scanned.per.heartbeat.check, search
for HBase Service Advanced Configuration Snippet (Safety Valve) for hbase-site.xml. Paste one or both of the following properties into the field and modify the
values as needed.
<property> <name>hbase.client.scanner.timeout.period</name> <value>60000</value> </property> <property> <name>hbase.cells.scanned.per.heartbeat.check</name> <value>10000</value> </property>
- Click Save Changes to commit the changes.
- Restart the role.
- Restart the service.
Configure the Scanner Heartbeat Using the Command Line
- Edit hbase-site.xml and add the following properties, modifying the values as needed.
<property> <name>hbase.rpc.timeout</name> <value>60000</value> </property> <property> <name>hbase.client.scanner.timeout.period</name> <value>60000</value> </property> <property> <name>hbase.cells.scanned.per.heartbeat.check</name> <value>10000</value> </property>
- Distribute the modified hbase-site.xml to all your cluster nodes and restart the HBase master and RegionServer processes for the change to take effect.