Fixed Issues in HBase
Review the list of HBase issues that are resolved in Cloudera Runtime 7.3.1.
Cloudera Runtime 7.3.1.200 SP1
- CDPD-77399: HBase fails to register the servlet metrics and throws ClassNotFoundException: org.apache.hadoop.metrics.MetricsServlet
- This issue is fixed now. HBase does not warn about the
Hadoop 2-based metric servlet class on a Hadoop 3 deployment.
Apache Jira:: HBASE-28315
Cloudera Runtime 7.3.1
- CDPD-67520: JWT authentication expects [sub] claim in the payload
-
A JWT payload can have a custom claim for
Subject/Principal
instead of the standardsub
claim.You can set the hbase.security.oauth.jwt.token.principal.claim configuration property in Cloudera Manager under HBase Service Advanced Configuration Snippet (Safety Valve) for hbase-site.xml to define the custom
Subject/Principal
claim. - CDPD-66387: RegionServer should be aborted when WAL.sync throws TimeoutIOException
- This fix adds additional logic for WAL.sync. If WAL.sync gets a timeout
exception, HBase wraps TimeoutIOException as a special
WALSyncTimeoutIOException. When the upper layer such as
HRegion.doMiniBatchMutate called by HRegion.batchMutation catches this
special exception, HBase aborts the region server.
Apache Jira: HBASE-27230
- CDPD-65373: Make delay prefetch property dynamically configurable
- This change allows you to dynamically configure
the hbase.hfile.prefetch.delay property using the
Cloudera Manager. You need to update the value and refresh the HBase
service. The new value is applied to the HBase service
automatically.
Apache Jira: HBASE-28292
- CDPD-74494: JVM crashes intermittently on ARM64 machines
- After noticing the JVM crashes in the HBase
service that is based on arm64 architecture and uses JDK 17, the fix is
applied that refactors the module and the large implementation function into
multiple smaller functions. The issue was observed in a specific module that
had a very large member function.
Apache Jira: HBASE-28206
- CDPD-73118: Bucket cache validation fails after a rolling restart resulting in an empty bucket cache without running the prefetch operations
- During the retrieval of bucket cache from
persistence, it was observed that, if an exception, other than the
IOException occurs, the exception is not logged, and also the retrieval
thread exits leaving the bucket cache in an uninitialized state, leaving it
unusable.
This change enables the retrieval thread to print all types of exceptions and also reinitializes the bucket cache and makes it reusable.