4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
23 == Known Incompatibilities Among HBase Versions
30 :source-language: java
32 == HBase 2.0 Incompatible Changes
34 This appendix describes incompatible changes from earlier versions of HBase against HBase 2.0.
35 This list is not meant to be wholly encompassing of all possible incompatibilities.
36 Instead, this content is intended to give insight into some obvious incompatibilities which most
37 users will face coming from HBase 1.x releases.
39 === List of Major Changes for HBase 2.0
40 * HBASE-1912- HBCK is a HBase database checking tool for capturing the inconsistency. As an HBase administrator, you should not use HBase version 1.0 hbck tool to check the HBase 2.0 database. Doing so will break the database and throw an exception error.
41 * HBASE-16189 and HBASE-18945- You cannot open the HBase 2.0 hfiles through HBase 1.0 version. If you are an admin or an HBase user who is using HBase version 1.x, you must first do a rolling upgrade to the latest version of HBase 1.x and then upgrade to HBase 2.0.
42 * HBASE-18240 - Changed the ReplicationEndpoint Interface. It also introduces a new hbase-third party 1.0 that packages all the third party utilities, which are expected to run in the hbase cluster.
44 === Coprocessor API changes
46 * HBASE-16769 - Deprecated PB references from MasterObserver and RegionServerObserver.
47 * HBASE-17312 - [JDK8] Use default method for Observer Coprocessors. The interface classes of BaseMasterAndRegionObserver, BaseMasterObserver, BaseRegionObserver, BaseRegionServerObserver and BaseWALObserver uses JDK8's 'default' keyword to provide empty and no-op implementations.
48 * Interface HTableInterface
49 HBase 2.0 introduces following changes to the methods listed below:
51 ==== [−] interface CoprocessorEnvironment changes (2)
53 [cols="1,1", frame="all"]
56 | Abstract method getTable ( TableName ) has been removed. | A client program may be interrupted by NoSuchMethodError exception.
57 | Abstract method getTable ( TableName, ExecutorService ) has been removed. | A client program may be interrupted by NoSuchMethodError exception.
62 The following tables describes the coprocessor changes.
64 ===== [−] class CoprocessorRpcChannel (1)
65 [cols="1,1", frame="all"]
68 | This class has become interface.| A client program may be interrupted by IncompatibleClassChangeError or InstantiationError exception depending on the usage of this class.
71 ===== Class CoprocessorHost<E>
72 Classes that were Audience Private but were removed.
73 [cols="1,1", frame="all"]
76 | Type of field coprocessors has been changed from java.util.SortedSet<E> to org.apache.hadoop.hbase.util.SortedList<E>.| A client program may be interrupted by NoSuchFieldError exception.
81 HBase 2.0 introduces following changes to the MasterObserver interface.
83 ===== [−] interface MasterObserver (14)
84 [cols="1,1", frame="all"]
87 | Abstract method voidpostCloneSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
88 | Abstract method voidpostCreateTable ( ObserverContext<MasterCoprocessorEnvironment>, HTableDescriptor, HRegionInfo[ ] ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
89 | Abstract method voidpostDeleteSnapshot (ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
90 | Abstract method voidpostGetTableDescriptors ( ObserverContext<MasterCoprocessorEnvironment>, List<HTableDescriptor> ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
91 | Abstract method voidpostModifyTable ( ObserverContext<MasterCoprocessorEnvironment>, TableName, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
92 | Abstract method voidpostRestoreSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
93 | Abstract method voidpostSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
94 | Abstract method voidpreCloneSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
95 | Abstract method voidpreCreateTable ( ObserverContext<MasterCoprocessorEnvironment>, HTableDescriptor, HRegionInfo[ ] ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
96 | Abstract method voidpreDeleteSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
97 | Abstract method voidpreGetTableDescriptors ( ObserverContext<MasterCoprocessorEnvironment>, List<TableName>, List<HTableDescriptor> ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
98 | Abstract method voidpreModifyTable ( ObserverContext<MasterCoprocessorEnvironment>, TableName, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
99 | Abstract method voidpreRestoreSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
100 | Abstract method voidpreSnapshot ( ObserverContext<MasterCoprocessorEnvironment>, HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodErrorexception.
104 HBase 2.0 introduces following changes to the RegionObserver interface.
106 ===== [−] interface RegionObserver (13)
107 [cols="1,1", frame="all"]
110 | Abstract method voidpostCloseRegionOperation ( ObserverContext<RegionCoprocessorEnvironment>, HRegion.Operation ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
111 | Abstract method voidpostCompactSelection ( ObserverContext<RegionCoprocessorEnvironment>, Store, ImmutableList<StoreFile> ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
112 | Abstract method voidpostCompactSelection ( ObserverContext<RegionCoprocessorEnvironment>, Store, ImmutableList<StoreFile>, CompactionRequest ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
113 | Abstract method voidpostGetClosestRowBefore ( ObserverContext<RegionCoprocessorEnvironment>, byte[ ], byte[ ], Result ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
114 | Abstract method DeleteTrackerpostInstantiateDeleteTracker ( ObserverContext<RegionCoprocessorEnvironment>, DeleteTracker ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
115 | Abstract method voidpostSplit ( ObserverContext<RegionCoprocessorEnvironment>, HRegion, HRegion ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
116 | Abstract method voidpostStartRegionOperation ( ObserverContext<RegionCoprocessorEnvironment>, HRegion.Operation ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
117 | Abstract method StoreFile.ReaderpostStoreFileReaderOpen ( ObserverContext<RegionCoprocessorEnvironment>, FileSystem, Path, FSDataInputStreamWrapper, long, CacheConfig, Reference, StoreFile.Reader ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
118 | Abstract method voidpostWALRestore ( ObserverContext<RegionCoprocessorEnvironment>, HRegionInfo, HLogKey, WALEdit ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
119 | Abstract method InternalScannerpreFlushScannerOpen ( ObserverContext<RegionCoprocessorEnvironment>, Store, KeyValueScanner, InternalScanner ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
120 | Abstract method voidpreGetClosestRowBefore ( ObserverContext<RegionCoprocessorEnvironment>, byte[ ], byte[ ], Result ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
121 | Abstract method StoreFile.ReaderpreStoreFileReaderOpen ( ObserverContext<RegionCoprocessorEnvironment>, FileSystem, Path, FSDataInputStreamWrapper, long, CacheConfig, Reference, StoreFile.Reader ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
122 | Abstract method voidpreWALRestore ( ObserverContext<RegionCoprocessorEnvironment>, HRegionInfo, HLogKey, WALEdit ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
126 HBase 2.0 introduces following changes to the WALObserver interface.
128 ===== [−] interface WALObserver
129 [cols="1,1", frame="all"]
132 | Abstract method voidpostWALWrite ( ObserverContext<WALCoprocessorEnvironment>, HRegionInfo, HLogKey, WALEdit ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
133 | Abstract method booleanpreWALWrite ( ObserverContext<WALCoprocessorEnvironment>, HRegionInfo, HLogKey, WALEdit ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
137 HBase 2.0 introduces changes to the following classes:
139 hbase-server-1.0.0.jar, OnlineRegions.class package org.apache.hadoop.hbase.regionserver
140 [cols="1,1", frame="all"]
141 ===== [−] OnlineRegions.getFromOnlineRegions ( String p1 ) [abstract] : HRegion
142 org/apache/hadoop/hbase/regionserver/OnlineRegions.getFromOnlineRegions:(Ljava/lang/String;)Lorg/apache/hadoop/hbase/regionserver/HRegion;
143 [cols="1,1", frame="all"]
146 | Return value type has been changed from Region to Region.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
149 hbase-server-1.0.0.jar, RegionCoprocessorEnvironment.class package org.apache.hadoop.hbase.coprocessor
151 ===== [−] RegionCoprocessorEnvironment.getRegion ( ) [abstract] : HRegion
152 org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.getRegion:()Lorg/apache/hadoop/hbase/regionserver/HRegion;
153 [cols="1,1", frame="all"]
156 | Return value type has been changed from org.apache.hadoop.hbase.regionserver.HRegion to org.apache.hadoop.hbase.regionserver.Region.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
159 hbase-server-1.0.0.jar, RegionCoprocessorHost.class package org.apache.hadoop.hbase.regionserver
161 ===== [−] RegionCoprocessorHost.postAppend ( Append append, Result result ) : void
162 org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.postAppend:(Lorg/apache/hadoop/hbase/client/Append;Lorg/apache/hadoop/hbase/client/Result;)V
163 [cols="1,1", frame="all"]
166 | Return value type has been changed from void to org.apache.hadoop.hbase.client.Result.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
169 ===== [−] RegionCoprocessorHost.preStoreFileReaderOpen ( FileSystem fs, Path p, FSDataInputStreamWrapper in, long size,CacheConfig cacheConf, Reference r ) : StoreFile.Reader
170 org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.preStoreFileReaderOpen:(Lorg/apache/hadoop/fs/FileSystem;Lorg/apache/hadoop/fs/Path;Lorg/apache/hadoop/hbase/io/FSDataInputStreamWrapper;JLorg/apache/hadoop/hbase/io/hfile/CacheConfig;Lorg/apache/hadoop/hbase/io/Reference;)Lorg/apache/hadoop/hbase/regionserver/StoreFile$Reader;
171 [cols="1,1", frame="all"]
174 | Return value type has been changed from StoreFile.Reader to StoreFileReader.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
178 ==== Scheduler changes:
179 1. Following methods became abstract:
181 package org.apache.hadoop.hbase.ipc
183 ===== [−]class RpcScheduler (1)
184 [cols="1,1", frame="all"]
187 | Abstract method void dispatch ( CallRunner ) has been removed from this class.| A client program may be interrupted by NoSuchMethodError exception.
190 hbase-server-1.0.0.jar, RpcScheduler.class package org.apache.hadoop.hbase.ipc
192 ===== [−] RpcScheduler.dispatch ( CallRunner p1 ) [abstract] : void 1
193 org/apache/hadoop/hbase/ipc/RpcScheduler.dispatch:(Lorg/apache/hadoop/hbase/ipc/CallRunner;)V
194 [cols="1,1", frame="all"]
197 | Return value type has been changed from void to boolean.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
200 1. Following abstract methods have been removed:
202 ===== [−]interface PriorityFunction (2)
203 [cols="1,1", frame="all"]
206 | Abstract method longgetDeadline ( RPCProtos.RequestHeader, Message ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
207 | Abstract method int getPriority ( RPCProtos.RequestHeader, Message ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
210 ==== Server API changes:
212 ===== [−] class RpcServer (12)
213 [cols="1,1", frame="all"]
216 | Type of field CurCall has been changed from java.lang.ThreadLocal<RpcServer.Call> to java.lang.ThreadLocal<RpcCall>.| A client program may be interrupted by NoSuchFieldError exception.
217 | This class became abstract.| A client program may be interrupted by InstantiationError exception.
218 | Abstract method int getNumOpenConnections ( ) has been added to this class.| This class became abstract and a client program may be interrupted by InstantiationError exception.
219 | Field callQueueSize of type org.apache.hadoop.hbase.util.Counter has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
220 | Field connectionList of type java.util.List<RpcServer.Connection> has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
221 | Field maxIdleTime of type int has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
222 | Field numConnections of type int has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
223 | Field port of type int has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
224 | Field purgeTimeout of type long has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
225 | Field responder of type RpcServer.Responder has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
226 | Field socketSendBufferSize of type int has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
227 | Field thresholdIdleConnections of type int has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
230 Following abstract method has been removed:
231 [cols="1,1", frame="all"]
234 | Abstract method Pair<Message,CellScanner>call ( BlockingService, Descriptors.MethodDescriptor, Message, CellScanner, long, MonitoredRPCHandler ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
237 ==== Replication and WAL changes:
238 HBASE-18733: WALKey has been purged completely in HBase 2.0.
239 Following are the changes to the WALKey:
241 ===== [−] classWALKey (8)
242 [cols="1,1", frame="all"]
245 | Access level of field clusterIds has been changed from protected to private.| A client program may be interrupted by IllegalAccessError exception.
246 | Access level of field compressionContext has been changed from protected to private.| A client program may be interrupted by IllegalAccessError exception.
247 | Access level of field encodedRegionName has been changed from protected to private.| A client program may be interrupted by IllegalAccessError exception.
248 | Access level of field tablename has been changed from protectedto private.| A client program may be interrupted by IllegalAccessError exception.
249 | Access level of field writeTime has been changed from protectedto private.| A client program may be interrupted by IllegalAccessError exception.
252 Following fields have been removed:
253 [cols="1,1", frame="all"]
256 | Field LOG of type org.apache.commons.logging.Log has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
257 | Field VERSION of type WALKey.Version has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
258 | Field logSeqNum of type long has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
261 Following are the changes to the WALEdit.class:
262 hbase-server-1.0.0.jar, WALEdit.class package org.apache.hadoop.hbase.regionserver.wal
264 ===== WALEdit.getCompaction ( Cell kv ) [static] : WALProtos.CompactionDescriptor (1)
265 org/apache/hadoop/hbase/regionserver/wal/WALEdit.getCompaction:(Lorg/apache/hadoop/hbase/Cell;)Lorg/apache/hadoop/hbase/protobuf/generated/WALProtos$CompactionDescriptor;
266 [cols="1,1", frame="all"]
269 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.WALProtos.CompactionDescriptor to org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
272 ===== WALEdit.getFlushDescriptor ( Cell cell ) [static] : WALProtos.FlushDescriptor (1)
273 org/apache/hadoop/hbase/regionserver/wal/WALEdit.getFlushDescriptor:(Lorg/apache/hadoop/hbase/Cell;)Lorg/apache/hadoop/hbase/protobuf/generated/WALProtos$FlushDescriptor;
274 [cols="1,1", frame="all"]
277 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.WALProtos.FlushDescriptor to org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.FlushDescriptor.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
280 ===== WALEdit.getRegionEventDescriptor ( Cell cell ) [static] : WALProtos.RegionEventDescriptor (1)
281 org/apache/hadoop/hbase/regionserver/wal/WALEdit.getRegionEventDescriptor:(Lorg/apache/hadoop/hbase/Cell;)Lorg/apache/hadoop/hbase/protobuf/generated/WALProtos$RegionEventDescriptor;
282 [cols="1,1", frame="all"]
285 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.WALProtos.RegionEventDescriptor to org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.RegionEventDescriptor.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
288 Following is the change to the WALKey.class:
289 package org.apache.hadoop.hbase.wal
291 ===== WALKey.getBuilder ( WALCellCodec.ByteStringCompressor compressor ) : WALProtos.WALKey.Builder 1
292 org/apache/hadoop/hbase/wal/WALKey.getBuilder:(Lorg/apache/hadoop/hbase/regionserver/wal/WALCellCodec$ByteStringCompressor;)Lorg/apache/hadoop/hbase/protobuf/generated/WALProtos$WALKey$Builder;
293 [cols="1,1", frame="all"]
296 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.WALProtos.WALKey.Builder to org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALKey.Builder.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
299 ==== Deprecated APIs or coprocessor:
301 HBASE-16769 - PB references from MasterObserver and RegionServerObserver has been removed.
303 ==== Admin Interface API changes:
304 You cannot administer an HBase 2.0 cluster with an HBase 1.0 client that includes RelicationAdmin, ACC, Thrift and REST usage of Admin ops. Methods returning protobufs have been changed to return POJOs instead. pb is not used in the APIs anymore. Returns have changed from void to Future for async methods.
305 HBASE-18106 - Admin.listProcedures and Admin.listLocks were renamed to getProcedures and getLocks.
306 MapReduce makes use of Admin doing following admin.getClusterStatus() to calcluate Splits.
308 * Thrift usage of Admin API:
310 createTable(ByteBuffer, List<ColumnDescriptor>)
311 deleteTable(ByteBuffer)
312 disableTable(ByteBuffer)
313 enableTable(ByteBuffer)
315 majorCompact(ByteBuffer)
317 * REST usage of Admin API:
319 org.apache.hadoop.hbase.rest
322 TableName[] tableNames = servlet.getAdmin().listTableNames();
325 Admin admin = servlet.getAdmin();
326 update(TableSchemaModel, boolean, UriInfo)
327 Admin admin = servlet.getAdmin();
328 StorageClusterStatusResource
330 ClusterStatus status = servlet.getAdmin().getClusterStatus();
331 StorageClusterVersionResource
333 model.setVersion(servlet.getAdmin().getClusterStatus().getHBaseVersion());
336 return servlet.getAdmin().tableExists(TableName.valueOf(table));
338 Following are the changes to the Admin interface:
340 ===== [−] interface Admin (9)
341 [cols="1,1", frame="all"]
344 | Abstract method createTableAsync ( HTableDescriptor, byte[ ][ ] ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
345 | Abstract method disableTableAsync ( TableName ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
346 | Abstract method enableTableAsync ( TableName ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
347 | Abstract method getCompactionState ( TableName ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
348 | Abstract method getCompactionStateForRegion ( byte[ ] ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
349 | Abstract method isSnapshotFinished ( HBaseProtos.SnapshotDescription ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
350 | Abstract method snapshot ( String, TableName, HBaseProtos.SnapshotDescription.Type ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
351 | Abstract method snapshot ( HBaseProtos.SnapshotDescription ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
352 | Abstract method takeSnapshotAsync ( HBaseProtos.SnapshotDescription ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
355 Following are the changes to the Admin.class:
356 hbase-client-1.0.0.jar, Admin.class package org.apache.hadoop.hbase.client
358 ===== [−] Admin.createTableAsync ( HTableDescriptor p1, byte[ ][ ] p2 ) [abstract] : void 1
359 org/apache/hadoop/hbase/client/Admin.createTableAsync:(Lorg/apache/hadoop/hbase/HTableDescriptor;[[B)V
360 [cols="1,1", frame="all"]
363 | Return value type has been changed from void to java.util.concurrent.Future<java.lang.Void>.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
366 ===== [−] Admin.disableTableAsync ( TableName p1 ) [abstract] : void 1
367 org/apache/hadoop/hbase/client/Admin.disableTableAsync:(Lorg/apache/hadoop/hbase/TableName;)V
368 [cols="1,1", frame="all"]
371 | Return value type has been changed from void to java.util.concurrent.Future<java.lang.Void>.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
374 ===== Admin.enableTableAsync ( TableName p1 ) [abstract] : void 1
375 org/apache/hadoop/hbase/client/Admin.enableTableAsync:(Lorg/apache/hadoop/hbase/TableName;)V
376 [cols="1,1", frame="all"]
379 | Return value type has been changed from void to java.util.concurrent.Future<java.lang.Void>.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
382 ===== [−] Admin.getCompactionState ( TableName p1 ) [abstract] : AdminProtos.GetRegionInfoResponse.CompactionState 1
383 org/apache/hadoop/hbase/client/Admin.getCompactionState:(Lorg/apache/hadoop/hbase/TableName;)Lorg/apache/hadoop/hbase/protobuf/generated/AdminProtos$GetRegionInfoResponse$CompactionState;
384 [cols="1,1", frame="all"]
387 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState to CompactionState.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
390 ===== [−] Admin.getCompactionStateForRegion ( byte[ ] p1 ) [abstract] : AdminProtos.GetRegionInfoResponse.CompactionState 1
391 org/apache/hadoop/hbase/client/Admin.getCompactionStateForRegion:([B)Lorg/apache/hadoop/hbase/protobuf/generated/AdminProtos$GetRegionInfoResponse$CompactionState;
392 [cols="1,1", frame="all"]
395 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState to CompactionState.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
398 ==== HTableDescriptor and HColumnDescriptor changes
399 HTableDescriptor and HColumnDescriptor has become interfaces and you can create it through Builders. HCD has become CFD. It no longer implements writable interface.
400 package org.apache.hadoop.hbase
402 ===== [−] class HColumnDescriptor (1)
403 [cols="1,1", frame="all"]
406 | Removed super-interface org.apache.hadoop.io.WritableComparable<HColumnDescriptor>.| A client program may be interrupted by NoSuchMethodError exception.
409 HColumnDescriptor in 1.0.0
411 @InterfaceAudience.Public
412 @InterfaceStability.Evolving
413 public class HColumnDescriptor implements WritableComparable<HColumnDescriptor> {
416 HColumnDescriptor in 2.0
418 @InterfaceAudience.Public
419 @Deprecated // remove it in 3.0
420 public class HColumnDescriptor implements ColumnFamilyDescriptor, Comparable<HColumnDescriptor> {
423 For META_TABLEDESC, the maker method had been deprecated already in HTD in 1.0.0. OWNER_KEY is still in HTD.
425 ===== class HTableDescriptor (3)
426 [cols="1,1", frame="all"]
429 | Removed super-interface org.apache.hadoop.io.WritableComparable<HTableDescriptor>.| A client program may be interrupted by NoSuchMethodError exception.
430 | Field META_TABLEDESC of type HTableDescriptor has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
433 hbase-client-1.0.0.jar, HTableDescriptor.class package org.apache.hadoop.hbase
435 ===== [−] HTableDescriptor.getColumnFamilies ( ) : HColumnDescriptor[ ] (1)
436 org/apache/hadoop/hbase/HTableDescriptor.getColumnFamilies:()[Lorg/apache/hadoop/hbase/HColumnDescriptor;
438 ===== [−] class HColumnDescriptor (1)
439 [cols="1,1", frame="all"]
442 | Return value type has been changed from HColumnDescriptor[]to client.ColumnFamilyDescriptor[].| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
445 ===== [−] HTableDescriptor.getCoprocessors ( ) : List<String> (1)
446 org/apache/hadoop/hbase/HTableDescriptor.getCoprocessors:()Ljava/util/List;
447 [cols="1,1", frame="all"]
450 | Return value type has been changed from java.util.List<java.lang.String> to java.util.Collection.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
453 * HBASE-12990 MetaScanner is removed and it is replaced by MetaTableAccessor.
455 ===== HTableWrapper changes:
456 hbase-server-1.0.0.jar, HTableWrapper.class package org.apache.hadoop.hbase.client
458 ===== [−] HTableWrapper.createWrapper ( List<HTableInterface> openTables, TableName tableName, CoprocessorHost.Environment env, ExecutorService pool ) [static] : HTableInterface 1
459 org/apache/hadoop/hbase/client/HTableWrapper.createWrapper:(Ljava/util/List;Lorg/apache/hadoop/hbase/TableName;Lorg/apache/hadoop/hbase/coprocessor/CoprocessorHost$Environment;Ljava/util/concurrent/ExecutorService;)Lorg/apache/hadoop/hbase/client/HTableInterface;
460 [cols="1,1", frame="all"]
463 | Return value type has been changed from HTableInterface to Table.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
466 * HBASE-12586: Delete all public HTable constructors and delete ConnectionManager#{delete,get}Connection.
467 * HBASE-9117: Remove HTablePool and all HConnection pooling related APIs.
468 * HBASE-13214: Remove deprecated and unused methods from HTable class
469 Following are the changes to the Table interface:
471 ===== [−] interface Table (4)
472 [cols="1,1", frame="all"]
475 | Abstract method batch ( List<?> ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
476 | Abstract method batchCallback ( List<?>, Batch.Callback<R> )has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
477 | Abstract method getWriteBufferSize ( ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
478 | Abstract method setWriteBufferSize ( long ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
481 ==== Deprecated buffer methods in Table (in 1.0.1) and removed in 2.0.0
483 * HBASE-13298- Clarify if Table.{set|get}WriteBufferSize() is deprecated or not.
485 * LockTimeoutException and OperationConflictException classes have been removed.
487 ==== class OperationConflictException (1)
488 [cols="1,1", frame="all"]
491 | This class has been removed.| A client program may be interrupted by NoClassDefFoundErrorexception.
494 ==== class class LockTimeoutException (1)
495 [cols="1,1", frame="all"]
498 | This class has been removed.| A client program may be interrupted by NoClassDefFoundErrorexception.
501 ==== Filter API changes:
502 Following methods have been removed:
503 package org.apache.hadoop.hbase.filter
505 ===== [−] class Filter (2)
508 | Abstract method getNextKeyHint ( KeyValue ) has been removed from this class.|A client program may be interrupted by NoSuchMethodError exception.
509 | Abstract method transform ( KeyValue ) has been removed from this class.| A client program may be interrupted by NoSuchMethodError exception.
512 * HBASE-12296 Filters should work with ByteBufferedCell.
513 * HConnection is removed in HBase 2.0.
514 * RegionLoad and ServerLoad internally moved to shaded PB.
516 ===== [−] class RegionLoad (1)
517 [cols="1,1", frame="all"]
520 | Type of field regionLoadPB has been changed from protobuf.generated.ClusterStatusProtos.RegionLoad to shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.|A client program may be interrupted by NoSuchFieldError exception.
523 * HBASE-15783:AccessControlConstants#OP_ATTRIBUTE_ACL_STRATEGY_CELL_FIRST is not used any more.
524 package org.apache.hadoop.hbase.security.access
526 ===== [−] interface AccessControlConstants (3)
527 [cols="1,1", frame="all"]
530 | Field OP_ATTRIBUTE_ACL_STRATEGY of type java.lang.Stringhas been removed from this interface.| A client program may be interrupted by NoSuchFieldError exception.
531 | Field OP_ATTRIBUTE_ACL_STRATEGY_CELL_FIRST of type byte[] has been removed from this interface.| A client program may be interrupted by NoSuchFieldError exception.
532 | Field OP_ATTRIBUTE_ACL_STRATEGY_DEFAULT of type byte[] has been removed from this interface.| A client program may be interrupted by NoSuchFieldError exception.
535 ===== ServerLoad returns long instead of int 1
536 hbase-client-1.0.0.jar, ServerLoad.class package org.apache.hadoop.hbase
538 ===== [−] ServerLoad.getNumberOfRequests ( ) : int 1
539 org/apache/hadoop/hbase/ServerLoad.getNumberOfRequests:()I
540 [cols="1,1", frame="all"]
543 | Return value type has been changed from int to long.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
546 ===== [−] ServerLoad.getReadRequestsCount ( ) : int 1
547 org/apache/hadoop/hbase/ServerLoad.getReadRequestsCount:()I
548 [cols="1,1", frame="all"]
551 | Return value type has been changed from int to long.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
554 ===== [−] ServerLoad.getTotalNumberOfRequests ( ) : int 1
555 org/apache/hadoop/hbase/ServerLoad.getTotalNumberOfRequests:()I
556 [cols="1,1", frame="all"]
559 | Return value type has been changed from int to long.|This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
562 ===== [−]ServerLoad.getWriteRequestsCount ( ) : int 1
563 org/apache/hadoop/hbase/ServerLoad.getWriteRequestsCount:()I
564 [cols="1,1", frame="all"]
567 | Return value type has been changed from int to long.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
570 * HBASE-13636 Remove deprecation for HBASE-4072 (Reading of zoo.cfg)
571 * HConstants are removed. HBASE-16040 Remove configuration "hbase.replication"
573 ===== [−]class HConstants (6)
574 [cols="1,1", frame="all"]
577 | Field DEFAULT_HBASE_CONFIG_READ_ZOOKEEPER_CONFIG of type boolean has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
578 | Field HBASE_CONFIG_READ_ZOOKEEPER_CONFIG of type java.lang.String has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
579 | Field REPLICATION_ENABLE_DEFAULT of type boolean has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
580 | Field REPLICATION_ENABLE_KEY of type java.lang.String has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
581 | Field ZOOKEEPER_CONFIG_NAME of type java.lang.String has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
582 | Field ZOOKEEPER_USEMULTI of type java.lang.String has been removed from this class.| A client program may be interrupted by NoSuchFieldError exception.
585 * HBASE-18732: [compat 1-2] HBASE-14047 removed Cell methods without deprecation cycle.
587 ===== [−]interface Cell 5
588 [cols="1,1", frame="all"]
591 | Abstract method getFamily ( ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
592 | Abstract method getMvccVersion ( ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
593 | Abstract method getQualifier ( ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
594 | Abstract method getRow ( ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
595 | Abstract method getValue ( ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
598 * HBASE-18795:Expose KeyValue.getBuffer() for tests alone. Allows KV#getBuffer in tests only that was deprecated previously.
600 ==== Region scanner changes:
601 ===== [−]interface RegionScanner (1)
602 [cols="1,1", frame="all"]
605 | Abstract method boolean nextRaw ( List<Cell>, int ) has been removed from this interface.| A client program may be interrupted by NoSuchMethodError exception.
608 ==== StoreFile changes:
609 ===== [−] class StoreFile (1)
610 [cols="1,1", frame="all"]
613 | This class became interface.| A client program may be interrupted by IncompatibleClassChangeError or InstantiationError exception dependent on the usage of this class.
616 ==== Mapreduce changes:
617 HFile*Format has been removed in HBase 2.0.
619 ==== ClusterStatus changes:
620 HBASE-15843: Replace RegionState.getRegionInTransition() Map with a Set
621 hbase-client-1.0.0.jar, ClusterStatus.class package org.apache.hadoop.hbase
623 ===== [−] ClusterStatus.getRegionsInTransition ( ) : Map<String,RegionState> 1
624 org/apache/hadoop/hbase/ClusterStatus.getRegionsInTransition:()Ljava/util/Map;
625 [cols="1,1", frame="all"]
628 |Return value type has been changed from java.util.Map<java.lang.String,master.RegionState> to java.util.List<master.RegionState>.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
630 Other changes in ClusterStatus include removal of convert methods that were no longer necessary after purge of PB from API.
632 ==== Purge of PBs from API
633 PBs have been deprecated in APIs in HBase 2.0.
635 ===== [−] HBaseSnapshotException.getSnapshotDescription ( ) : HBaseProtos.SnapshotDescription 1
636 org/apache/hadoop/hbase/snapshot/HBaseSnapshotException.getSnapshotDescription:()Lorg/apache/hadoop/hbase/protobuf/generated/HBaseProtos$SnapshotDescription;
637 [cols="1,1", frame="all"]
640 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription to org.apache.hadoop.hbase.client.SnapshotDescription.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
643 * HBASE-15609: Remove PB references from Result, DoubleColumnInterpreter and any such public facing class for 2.0.
644 hbase-client-1.0.0.jar, Result.class package org.apache.hadoop.hbase.client
646 ===== [−] Result.getStats ( ) : ClientProtos.RegionLoadStats 1
647 org/apache/hadoop/hbase/client/Result.getStats:()Lorg/apache/hadoop/hbase/protobuf/generated/ClientProtos$RegionLoadStats;
648 [cols="1,1", frame="all"]
651 | Return value type has been changed from org.apache.hadoop.hbase.protobuf.generated.ClientProtos.RegionLoadStats to RegionLoadStats.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
655 hbase-rest-1.0.0.jar, Client.class package org.apache.hadoop.hbase.rest.client
657 ===== [−] Client.getHttpClient ( ) : HttpClient 1
658 org/apache/hadoop/hbase/rest/client/Client.getHttpClient:()Lorg/apache/commons/httpclient/HttpClient
659 [cols="1,1", frame="all"]
662 | Return value type has been changed from org.apache.commons.httpclient.HttpClient to org.apache.http.client.HttpClient.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
665 hbase-rest-1.0.0.jar, Response.class package org.apache.hadoop.hbase.rest.client
667 ===== [−] Response.getHeaders ( ) : Header[ ] 1
668 org/apache/hadoop/hbase/rest/client/Response.getHeaders:()[Lorg/apache/commons/httpclient/Header;
669 [cols="1,1", frame="all"]
672 | Return value type has been changed from org.apache.commons.httpclient.Header[] to org.apache.http.Header[].| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
675 ==== PrettyPrinter changes:
676 hbase-server-1.0.0.jar, HFilePrettyPrinter.class package org.apache.hadoop.hbase.io.hfile
678 ===== [−]HFilePrettyPrinter.processFile ( Path file ) : void 1
679 org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.processFile:(Lorg/apache/hadoop/fs/Path;)V
680 [cols="1,1", frame="all"]
683 | Return value type has been changed from void to int.| This method has been removed because the return type is part of the method signature. A client program may be interrupted by NoSuchMethodError exception.
686 ==== AccessControlClient changes:
687 HBASE-13171 Change AccessControlClient methods to accept connection object to reduce setup time. Parameters have been changed in the following methods:
689 * hbase-client-1.2.7-SNAPSHOT.jar, AccessControlClient.class
690 package org.apache.hadoop.hbase.security.access
691 AccessControlClient.getUserPermissions ( Configuration conf, String tableRegex ) [static] : List<UserPermission> *DEPRECATED*
692 org/apache/hadoop/hbase/security/access/AccessControlClient.getUserPermissions:(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/String;)Ljava/util/List;
694 * AccessControlClient.grant ( Configuration conf, String namespace, String userName, Permission.Action... actions )[static] : void *DEPRECATED*
695 org/apache/hadoop/hbase/security/access/AccessControlClient.grant:(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/String;Ljava/lang/String;[Lorg/apache/hadoop/hbase/security/access/Permission$Action;)V
697 * AccessControlClient.grant ( Configuration conf, String userName, Permission.Action... actions ) [static] : void *DEPRECATED*
698 org/apache/hadoop/hbase/security/access/AccessControlClient.grant:(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/String;[Lorg/apache/hadoop/hbase/security/access/Permission$Action;)V
700 * AccessControlClient.grant ( Configuration conf, TableName tableName, String userName, byte[ ] family, byte[ ] qual,Permission.Action... actions ) [static] : void *DEPRECATED*
701 org/apache/hadoop/hbase/security/access/AccessControlClient.grant:(Lorg/apache/hadoop/conf/Configuration;Lorg/apache/hadoop/hbase/TableName;Ljava/lang/String;[B[B[Lorg/apache/hadoop/hbase/security/access/Permission$Action;)V
703 * AccessControlClient.isAccessControllerRunning ( Configuration conf ) [static] : boolean *DEPRECATED*
704 org/apache/hadoop/hbase/security/access/AccessControlClient.isAccessControllerRunning:(Lorg/apache/hadoop/conf/Configuration;)Z
706 * AccessControlClient.revoke ( Configuration conf, String namespace, String userName, Permission.Action... actions )[static] : void *DEPRECATED*
707 org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/String;Ljava/lang/String;[Lorg/apache/hadoop/hbase/security/access/Permission$Action;)V
709 * AccessControlClient.revoke ( Configuration conf, String userName, Permission.Action... actions ) [static] : void *DEPRECATED*
710 org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/hadoop/conf/Configuration;Ljava/lang/String;[Lorg/apache/hadoop/hbase/security/access/Permission$Action;)V
712 * AccessControlClient.revoke ( Configuration conf, TableName tableName, String username, byte[ ] family, byte[ ] qualifier,Permission.Action... actions ) [static] : void *DEPRECATED*
713 org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/hadoop/conf/Configuration;Lorg/apache/hadoop/hbase/TableName;Ljava/lang/String;[B[B[Lorg/apache/hadoop/hbase/security/access/Permission$Action;)V
714 * HBASE-18731: [compat 1-2] Mark protected methods of QuotaSettings that touch Protobuf internals as IA.Private