Skip to main content
OGG Errors

OGG-15051 Java or JNI exception: hadoop.hbase.HTableDescriptor.addFamily in Cloudera

By August 24, 2019September 1st, 2019No Comments

OGG-15051 Java or JNI exception: hadoop.hbase.HTableDescriptor.addFamily in Cloudera

Oracle GoldenGate Replicat process for Cloudera HBase abend with the below error.

                                         Oracle GoldenGate Delivery
                         Version 12.2.0.1.160823 OGGCORE_OGGADP.12.2.0.1.0_PLATFORMS_170324.1532
                             Linux, x64, 64bit (optimized), Generic on Mar 24 2017 17:11:07

2017-10-12 05:01:44 INFO OGG-06511 Using following columns in default
map by name: ROW_ID, LAST_UPD, PAR_ROW_ID, BU_ID, NAME, CUST_STAT_CD,INTEGRATION_ID, OU_NUM,OU_TYPE_CD,
PAR_OU_ID, PR_ADDR_ID, ACCNT_TYPE_CD, PROCESS_TIMESTAMP,X_BILL_TYPE_BT, STAT_REASON_CD.
2017-10-12 05:01:44 INFO OGG-06510 Using the following key columns for
target table SCHEMA.TABLE: ROW_ID.
2017-10-12 05:01:59 INFO OGG-01021 Command received from GGSCI: STATS.
Oct 12, 2017 5:02:56 AM org.apache.hadoop.conf.Configuration
warnOnceIfDeprecated
INFO: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
Exception in thread "main" java.lang.NoSuchMethodError:
org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)Lorg/apache/hadoop/hbase/HTableDescriptor;
at oracle.goldengate.handler.hbase.operations.HBase1TableWriter.createTable(HBase1TableWriter.java:254)
at oracle.goldengate.handler.hbase.operations.HBase1TableWriter.open(HBase1TableWriter.java:96)
at oracle.goldengate.handler.hbase.operations.HBase1Writer.getTableWriter(HBase1Writer.java:167)
at oracle.goldengate.handler.hbase.operations.HBase1Writer.put(HBase1Writer.java:110)
at oracle.goldengate.handler.hbase.operations.HBaseInsertDBOperation.processOp(HBaseInsertDBOperation.java:78)
at oracle.goldengate.handler.hbase.HBaseHandler.processOp(HBaseHandler.java:468)
at oracle.goldengate.handler.hbase.HBaseHandler.transactionCommit(HBaseHandler.java:411)
at oracle.goldengate.datasource.DsEventManager$2.send(DsEventManager.java:422)
at oracle.goldengate.datasource.DsEventManager$EventDispatcher.distributeEvent(DsEventManager.java:231)
at oracle.goldengate.datasource.DsEventManager.fireTransactionCommit(DsEventManager.java:430)
at oracle.goldengate.datasource.AbstractDataSource.fireTransactionCommit(AbstractDataSource.java:506)
at oracle.goldengate.datasource.UserExitDataSource.commitActiveTransaction(UserExitDataSource.java:1546)
at oracle.goldengate.datasource.UserExitDataSource.commitTx(UserExitDataSource.java:1469)

2017-10-12 05:02:56 ERROR OGG-15051 Java or JNI exception:
java.lang.NoSuchMethodError:
org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)Lorg/apache/hadoop/hbase/HTableDescriptor;.

The root cause is Compatibility Issue. I came across a bug for this issue.

Bug 25591766 – HBase 1.2: java.lang.NoSuchMethodError: ….addFamily

In the bug it has been mentioned to set the below parameter, but already the below parameter is set and still facing the same issue.

gg.handler..hBase98Compatible=true.

This is a well known compatibility problem with Cloudera HBase. The root cause is that the Cloudera HBase client libraries broke binary compatibility with the Apache HBase libraries. You must be on OGGBD 12.3.0.1.x or earlier.

What the problem is and how to work around it, is explained in the documentation:

https://docs.oracle.com/goldengate/bd123010/gg-bd/GADBD/GUID-A6C0DEC9-480F-4782-BD2A-54FEDDE2FDD9.htm#GADBDGUID-8873BA41-35B8-4307-B406-EA9835DAA477

Go to section 1.2.2.2

The OGGBD 12.3.1.1.0 release provided improved support by resolving the offending HBase method using Java reflection. Therefore, if you are ready to move to OGGBD 12.3.1.1.0 or later this issue is resolved automatically.

See the documentation:

https://docs.oracle.com/goldengate/bd123110/gg-bd/GADBD/using-hbase-handler.htm#GADBD-GUID-1A9BA580-628B-48BD-9DC0-C3DF9722E0FB

Go to section 5.6.5

Cheers 🙂

Leave a Reply