Preparing HBase for upgrade

Before upgrading to Cloudera Private Cloud Base, transition your HFiles to a supported encoding type and validate HFiles to ensure that you do not have any HFiles that use unsupported encoding or are in a bad state.

Preparing HBase for upgrade

You must perform the pre-upgrade tasks after installing the HDP intermediate bits on the hosts, but before you upgrade your cluster to HDP intermediate bits. Run these commands on the cluster that has the HDP intermediate bits. The HBase validation tool is packaged within HDP intermedite bits, and you register the software repositories for the new target version with Ambari and then install the software on all hosts in the cluster. For more information to get the intermediate bits, see Register software repositories.

Ensure that you check for any corrupted HFiles and rectify them before the upgrade using the HFile content validator (validate-hfile) tool.

When upgrading from an HDP 2.6.x cluster, you should begin by making a copy of the HBase client configuration directory for use with these upgrade checks. In this configuration copy, you should delete the metrics collection configuration file hadoop-metrics2-hbase.properties because it is incompatible with the newer utilities. If this file is left in place then the pre-upgrade HBase commands will not properly check the underlying HFiles for issues. Before you run the pre-upgrade checks, ensure that you point to the correct configuration directory. For example, you can use the export command or the hbase --config CLI option to point to the configuration directory.

export HBASE_CONF_DIR=/[**PATH TO THE CONFIGURATION DIRECTORY**]
This is an example export HBASE_CONF_DIR command that you can use to point to the correct configuration directory before you run the validation checks.
export HBASE_CONF_DIR=/home/dirname/hbase-conf

Should the pre-upgrade check fail due to an old incompatible configuration directory, the command will log the following exception:

java.lang.AbstractMethodError: org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink.init
(Lorg/apache/commons/configuration2/SubsetConfiguration;)

What's next:

  • Remove PREFIX_TREE data block encoding: hbase pre-upgrade validate-dbe
  • Validate HFiles: hbase pre-upgrade validate-hfile