API Compatibility changes in 7.3.2 for HBase

Removed or Modified APIs in Cloudera Runtime 7.3.2 for HBase and recommendations for how to handle them.

Apache Version of HBase in 7.3.1.600 was 2.4.17 and Apache Version of HBase in 7.3.2 is 2.6.3.

Modified APIs in 7.3.2

The following APIs have been modified for HBase in Cloudera Runtime 7.3.2

DataBlockEncoding.createEncoder

Access level has been changed from protected to package-private.

Package Name
org.apache.hadoop.hbase.io.encoding
Effect
Recompilation of a client program may be terminated with the message: createEncoder (String) has package-private access in org.apache.hadoop.hbase.io.encoding.DataBlockEncoding.
Reason for change
HBASE-27206
Recommendation
Use DataBlockEncoding.getEncoder instead of createEncoder.
Recompilation Required?
YES

Bytes.toByteString

Return value type has been changed from com.google.protobuf.ByteString to org.apache.hbase.thirdparty.com.google.protobuf.ByteString.

Package Name
org.apache.hadoop.hbase.util
Effect
This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
Reason for change
CDPD-33849
Recommendation
Method signature changed, return type changed to HBase thirdparty protobuf class. If a client application calls this method, it should import the HBase thirdparty protobuf class.
Recompilation Required?
YES

PBType.inputStreamFromByteRange

Return value type has been changed from com.google.protobuf.CodedInputStream to org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream.

Package Name
org.apache.hadoop.hbase.types
Effect
This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
Reason for change
CDPD-33849
Recommendation
Method signature changed, return type changed to HBase thirdparty protobuf class. If a client application calls this method, it should import the HBase thirdparty protobuf class.
Recompilation Required?
YES

PBType.outputStreamFromByteRange

Return value type has been changed from com.google.protobuf.CodedOutputStream to org.apache.hbase.thirdparty.com.google.protobuf.CodedOutputStream.

Package Name
org.apache.hadoop.hbase.types
Effect
This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
Reason for change
CDPD-33849
Recommendation
Method signature changed, return type changed to HBase thirdparty protobuf class. If a client application calls this method, it should import the HBase thirdparty protobuf class.
Recompilation Required?
YES

Table.coprocessorService

Added org.apache.hbase.thirdparty.com.google.protobuf.ServiceException exception thrown.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: unreported exception org.apache.hbase.thirdparty.com.google.protobuf.ServiceException must be caught or declared to be thrown.
Reason for change
CDPD-33849
Recommendation
Method signature changed, thrown Exception type changed to HBase thirdparty protobuf class. If a client application calls this method, and handles this Exception makes sure to import it from the HBase thirdparty protobuf class(es).
Recompilation Required?
YES

ClusterMetrics

Abstract method List getMasterTasks() has been added to this interface.

Package Name
org.apache.hadoop.hbase
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method getMasterTasks() in org.apache.hadoop.hbase.ClusterMetrics.
Reason for change
HBASE-26730
Recommendation
If a class extends ClusterMetrics in a client applications, it must implement the abstract method.
Recompilation Required?
YES

ClusterMetrics

Abstract method List getUnknownServerNames( ) has been added to this interface.

Package Name
org.apache.hadoop.hbase
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method getUnknownServerNames ( ) in org.apache.hadoop.hbase.ClusterMetrics.
Reason for change
HBASE-27104
Recommendation
If a class extends ClusterMetrics in a client applications, it must implement the abstract method.
Recompilation Required?
YES

ServerMetrics

Abstract method List getTasks( ) has been added to this interface.

Package Name
org.apache.hadoop.hbase
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method getTasks ( ) in org.apache.hadoop.hbase.ServerMetrics.
Reason for change
HBASE-26730
Recommendation
If a class extends ServerMetrics in a client applications, it must implement the abstract method.
Recompilation Required?
YES

Admin

Abstract method BalanceResponse balance has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method balance ( BalanceRequest ) in org.apache.hadoop.hbase.client.Admin.
Reason for change
HBASE-26147
Recommendation
If a class extends Admin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

Admin

Abstract method Future<Void> flushAsync ( TableName; List<byte[ ]> ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method flushAsync ( TableName; List<byte[ ]> ) in org.apache.hadoop.hbase.client.Admin.
Reason for change
HBASE-26867
Recommendation
If a class extends Admin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

Admin

Abstract method void flushMasterStore ( ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method flushMasterStore ( ) in org.apache.hadoop.hbase.client.Admin.
Reason for change
HBASE-27028
Recommendation
If a class extends Admin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

Admin

Abstract method boolean isReplicationPeerEnabled ( String ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method isReplicationPeerEnabled ( String ) in org.apache.hadoop.hbase.client.Admin.
Reason for change
HBASE-27448
Recommendation
If a class extends Admin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

Admin

Abstract method boolean isReplicationPeerEnabled ( String ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method isReplicationPeerModificationEnabled ( ) in org.apache.hadoop.hbase.client.Admin.
Reason for change
HBASE-27783
Recommendation
If a class extends Admin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

Admin

Abstract method List<TableDescriptor> listTableDescriptorsByState ( boolean ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method listTableDescriptorsByState ( boolean ) in org.apache.hadoop.hbase.client.Admin.
Reason for change
HBASE-27444
Recommendation
If a class extends Admin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

Admin

Abstract method List<TableName> listTableNamesByState ( boolean ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method listTableNamesByState ( boolean ) in org.apache.hadoop.hbase.client.Admin.
Reason for change
HBASE-27444
Recommendation
If a class extends Admin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

Admin

Abstract method Future<Void> modifyTableAsync ( TableDescriptor; boolean ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method modifyTableAsync ( TableDescriptor; boolean ) in org.apache.hadoop.hbase.client.Admin.
Reason for change
HBASE-25549
Recommendation
If a class extends Admin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

Admin

Abstract method boolean replicationPeerModificationSwitch ( boolean; boolean ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method replicationPeerModificationSwitch ( boolean; boolean ) in org.apache.hadoop.hbase.client.Admin.
Reason for change
HBASE-27783
Recommendation
If a class extends Admin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncAdmin

Abstract method CompletableFuture<BalanceResponse> balance ( BalanceRequest ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method balance ( BalanceRequest ) in org.apache.hadoop.hbase.client.AsyncAdmin.
Reason for change
HBASE-26147
Recommendation
If a class extends AsyncAdmin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncAdmin

Abstract method CompletableFuture<Void> flush ( TableName; List<byte[ ]> ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method flush ( TableName; List<byte[ ]> ) in org.apache.hadoop.hbase.client.AsyncAdmin.
Reason for change
HBASE-26867
Recommendation
If a class extends AsyncAdmin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncAdmin

Abstract method CompletableFuture<Void> flushMasterStore ( ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method flushMasterStore ( ) in org.apache.hadoop.hbase.client.AsyncAdmin.
Reason for change
HBASE-27028
Recommendation
If a class extends AsyncAdmin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncAdmin

Abstract method CompletableFuture<Boolean> isReplicationPeerEnabled ( String ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method isReplicationPeerEnabled ( String ) in org.apache.hadoop.hbase.client.AsyncAdmin.
Reason for change
HBASE-27448
Recommendation
If a class extends AsyncAdmin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncAdmin

Abstract method CompletableFuture<Boolean> isReplicationPeerModificationEnabled ( ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method isReplicationPeerModificationEnabled ( ) in org.apache.hadoop.hbase.client.AsyncAdmin.
Reason for change
HBASE-27783
Recommendation
If a class extends AsyncAdmin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncAdmin

Abstract method CompletableFuture<List<TableDescriptor>> listTableDescriptorsByState ( boolean ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method listTableDescriptorsByState ( boolean ) in org.apache.hadoop.hbase.client.AsyncAdmin.
Reason for change
HBASE-27444
Recommendation
If a class extends AsyncAdmin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncAdmin

Abstract method CompletableFuture<List<TableName>> listTableNamesByState ( boolean ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method listTableNamesByState ( boolean ) in org.apache.hadoop.hbase.client.AsyncAdmin.
Reason for change
HBASE-27444
Recommendation
If a class extends AsyncAdmin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncAdmin

Abstract method CompletableFuture<Void> modifyTable ( TableDescriptor; boolean ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method modifyTable ( TableDescriptor; boolean ) in org.apache.hadoop.hbase.client.AsyncAdmin.
Reason for change
HBASE-25549
Recommendation
If a class extends AsyncAdmin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncAdmin

Abstract method CompletableFuture<Boolean> replicationPeerModificationSwitch ( boolean; boolean ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method replicationPeerModificationSwitch ( boolean; boolean ) in org.apache.hadoop.hbase.client.AsyncAdmin.
Reason for change
HBASE-27783
Recommendation
If a class extends AsyncAdmin in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncAdminBuilder

Abstract method AsyncAdminBuilder setRetryPauseForServerOverloaded ( long; TimeUnit ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method setRetryPauseForServerOverloaded ( long; TimeUnit ) in org.apache.hadoop.hbase.client.AsyncAdminBuilder.
Reason for change
HBASE-26807
Recommendation
If a class extends AsyncAdminBuilder in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncBufferedMutator

Abstract method int getMaxMutations ( ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method getMaxMutations ( ) in org.apache.hadoop.hbase.client.AsyncBufferedMutator.
Reason for change
HBASE-29148
Recommendation
If a class extends AsyncBufferedMutator in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncBufferedMutatorBuilder

Abstract method AsyncBufferedMutatorBuilder setMaxMutations ( int ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method setMaxMutations ( int ) in org.apache.hadoop.hbase.client.AsyncBufferedMutatorBuilder.
Reason for change
HBASE-29148
Recommendation
If a class extends AsyncBufferedMutatorBuilder in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncTableBuilder

Abstract method AsyncTableBuilder<C> setRequestAttribute ( String; byte[ ] ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method setRequestAttribute ( String; byte[ ] ) in org.apache.hadoop.hbase.client.AsyncTableBuilder<C>.
Reason for change
HBASE-27657
Recommendation
If a class extends AsyncTableBuilder in a client applications, it must implement the abstract method.
Recompilation Required?
YES

AsyncTableBuilder

Abstract method AsyncTableBuilder<C> setRetryPauseForServerOverloaded ( long; TimeUnit ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method setRetryPauseForServerOverloaded ( long; TimeUnit ) in org.apache.hadoop.hbase.client.AsyncTableBuilder<C>.
Reason for change
HBASE-26807
Recommendation
If a class extends AsyncTableBuilder in a client applications, it must implement the abstract method.
Recompilation Required?
YES

ColumnFamilyDescriptor

Abstract method IndexBlockEncoding getIndexBlockEncoding ( ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method getIndexBlockEncoding ( ) in org.apache.hadoop.hbase.client.ColumnFamilyDescriptor.
Reason for change
HBASE-27314
Recommendation
If a class extends ColumnFamilyDescriptor in a client applications, it must implement the abstract method.
Recompilation Required?
YES

ColumnFamilyDescriptor

Abstract method Compression.Algorithm getMajorCompactionCompressionType ( ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method getMajorCompactionCompressionType ( ) in org.apache.hadoop.hbase.client.ColumnFamilyDescriptor.
Reason for change
HBASE-25756
Recommendation
If a class extends ColumnFamilyDescriptor in a client applications, it must implement the abstract method.
Recompilation Required?
YES

ColumnFamilyDescriptor

Abstract method Compression.Algorithm getMinorCompactionCompressionType ( ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method getMinorCompactionCompressionType ( ) in org.apache.hadoop.hbase.client.ColumnFamilyDescriptor.
Reason for change
HBASE-25756
Recommendation
If a class extends ColumnFamilyDescriptor in a client applications, it must implement the abstract method.
Recompilation Required?
YES

ServiceCaller

Abstract method void call ( S; RpcController; RpcCallback<R> ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method call ( S; RpcController; RpcCallback<R> ) in org.apache.hadoop.hbase.client.ServiceCaller<S;R>.
Reason for change
CDPD-33849
Recommendation
Method signature changed, parameter type(s) changed to HBase thirdparty protobuf class(es). If a client application calls this method, it should import the HBase thirdparty protobuf class(es).
Recompilation Required?
YES

TableBuilder

Abstract method TableBuilder setRequestAttribute ( String; byte[ ] ) has been added to this interface.

Package Name
org.apache.hadoop.hbase.client
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method setRequestAttribute ( String; byte[ ] ) in org.apache.hadoop.hbase.client.TableBuilder.
Reason for change
HBASE-27657
Recommendation
If a class extends TableBuilder in a client applications, it must implement the abstract method.
Recompilation Required?
YES

Compression.Algorithm

Abstract method CompressionCodec reload ( Configuration ) has been added to this class.

Package Name
org.apache.hadoop.hbase.io.compress
Effect
Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method reload ( Configuration ) in org.apache.hadoop.hbase.io.compress.Compression.Algorithm.
Reason for change
HBASE-26259
Recommendation
If a class extends Compression.Algorithm in a client applications, it must implement the abstract method.
Recompilation Required?
YES

Removed APIs in 7.3.2

The following APIs are no longer available for HBase in Cloudera Runtime 7.3.2

Table.batchCoprocessorService

Method removed

Package Name
org.apache.hadoop.hbase.client
Effect
A client program may be interrupted by NoSuchMethodError exception.
Reason for change
CDPD-33849
Recommendation
Method signature changed, return type and parameter types changed to HBase thirdparty protobuf classes. If a client application calls this method, it should import the HBase thirdparty protobuf class(es).
Recompilation Required?
Yes

AuthUtil.getAuthRenewalChore

Method removed

Package Name
org.apache.hadoop.hbase
Effect
A client program may be interrupted by NoSuchMethodError exception.
Reason for change
HBASE-26212
Recommendation
Non-public method. Clients should not depend on non-public methods.
Recompilation Required?
No

Bytes.<init>

Method removed

Package Name
org.apache.hadoop.hbase.util
Effect
A client program may be interrupted by NoSuchMethodError exception.
Reason for change
None
Recommendation
None
Recompilation Required?
No

PBType.encodedLength

Method removed

Package Name
org.apache.hadoop.hbase.types
Effect
A client program may be interrupted by NoSuchMethodError exception.
Reason for change
CDPD-33849
Recommendation
Method signature changed, parameter type changed to HBase thirdparty protobuf class. If a client application calls this method, it should import the HBase thirdparty protobuf class.
Recompilation Required?
Yes