Migrating Apache HBase Before Upgrading to CDH 6

If you are upgrading to CDH 6 from CDH 5 and have the HBase service installed, there are several pre-upgrades steps you might need to take:

Remove PREFIX_TREE Data Block Encoding

In CDH 6, HBase 2.0 is included. HBase 2.0 does not support PREFIX_TREE Data Block Encoding. Therefore, before upgrading to CDH 6 PREFIX_TREE Data Block Encoding must be changed to a supported encoding, otherwise HBase 2.0 fails to start.

If you already have a CDH 6 installation, you can ensure that none of you tables or snapshots use the PREFIX_TREE Data Block Encoding by running the following tools:
  • hbase pre-upgrade validate-dbe
  • hbase pre-upgrade validate-hfile

Upgrade Co-Processor Classes

External co-processors are not automatically upgraded. There are two ways to handle co-processor upgrade:
  • Upgrade your co-processor jars manually before continuing the upgrade.
  • Temporarily unset the co-processors and continue the upgrade.

    Once they are manually upgraded, they can be reset.

Attempting to upgrade without upgrading the co-processor jars can result in unpredictable behaviour such as HBase role start failure, HBase role crashing, or even data corruption.

If you already have a CDH 6 installation, you can ensure that your co-processors are compatible with the upgrade by running the hbase pre-upgrade validate-cp tool.

Check the HBase Related Upgrade Checkboxes

When you are attempting to upgrade from a CDH 5 cluster to a CDH 6 cluster, checkboxes appear to ensure you have performed all the HBase related pre-upgrade migration steps.

The upgrade continues only if you check both of the following statements: