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:
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.
-
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.
-
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
-
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.