Checking co-processor classes

External co-processors are not automatically upgraded, you must upgrade them manually. Before migrating, ensure that your co-processors are compatible with themigration.

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

    Once they are manually upgraded, they can be reset.

Attempting to migrate 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 your cluster is Kerberized, ensure that you run the kinit command as a hbase user before running the pre-upgrade commands.

  1. Download and distribute parcels for target version of CDP Private Cloud Base.

    If the downloaded parcel version is higher than the current Cloudera Manager version, the following error message displayed:

    Error for parcel CDH-7.X.parcel : Parcel version 7.X is not supported by this version of Cloudera Manager. Upgrade Cloudera Manager to at least 7.X before using this version of the parcel.

    You can safely ignore this error message.

  2. Run the hbase pre-upgrade validate-cp commands to check if your co-processors are compatible with the migration.

    Use the CDP parcel to run the pre-upgrade commands. Cloudera recommends that you run them on an HMaster host.

    For example, you can check for co-processor compatibility on master:
    $ /opt/cloudera/parcels/CDH-7.1.1-1.cdh7.1.1.p0.3224867/bin/hbase pre-upgrade validate-cp -jar /opt/cloudera/parcels/CDH-7.1.1-1.cdh7.1.1.p0.3224867/jars/ -config
    Or, you can validate every table level co-processors where the table name matches to the .* regular expression:
    $ /opt/cloudera/parcels/CDH-7.1.1-1.cdh7.1.1.p0.3224867/bin/hbase pre-upgrade validate-cp -table '.*'
    Optinally, you can run the following command for a more detailed output:
    HBASE_ROOT_LOGGER=DEBUG,console hbase pre-upgrade validate-cp -table '.*'
    This way you can verify that all of the required tables were checked. The detailed output should contain lines like the following where test_table is a table on the server:
    21/05/10 11:07:58 DEBUG coprocessor.CoprocessorValidator: Validating table test_table
  3. Check the output to determine if your co-processors are compatible with the upgrade.
    The output looks similar to the following:
    $ hbase pre-upgrade validate-cp -config
                            ... some output ...
                            $ echo $?
                            0

    If echo $? prints 0, the check was successful and your co-processors are compatible. A non-zero value means unsuccessful, your co-processors are not compatible.