Wellington Chevreuil created HBASE-23791:
--------------------------------------------
Summary: [operator tools] Remove reference to I.A. Private
interface MetaTableAccessor
Key: HBASE-23791
URL: https://issues.apache.org/jira/browse/HBASE-23791
Project: HBase
Issue Type: Improvement
Reporter: Wellington Chevreuil
Assignee: Wellington Chevreuil
While trying to use newly command _extraRegionsInMeta_ added by HBASE-23371,
[~daisuke.kobayashi] noticed it was not working properly on some deployments
not including another patch merged in HBASE-22758, that changed
*MetaTableAccessor* interface:
{noformat}
$ hbase hbck -j
hbase-operator-tools-1.0.0.1.0.0.0-11/hbase-hbck2/hbase-hbck2.jar
extraRegionsInMeta -f default:cluster_test
Regions that had no dir on the FileSystem and got removed from Meta: 0
ERROR:
There were following errors on at least one table thread:
java.lang.NoSuchMethodError:
org.apache.hadoop.hbase.MetaTableAccessor.deleteRegionInfos(Lorg/apache/hadoop/hbase/client/Connection;Ljava/util/List;)
{noformat}
Since *MetaTableAccessor* is IA Private, and HBCK2 is aimed to evolve
independently of hbase project, ideally we should not rely in IA Private
interfaces.
There's already an existing *HBCKMetaTableAccessor* on hbck2, with some
*MetaTableAccessor* original methods used in hbck2 re-implemented. This PR
removes all dependencies to *MetaTableAccessor* currently existing in hbck2,
re-implementing some of the required methods on *HBCKMetaTableAccessor*.
Thanks for finding and reporting it, [~daisuke.kobayashi]!
--
This message was sent by Atlassian Jira
(v8.3.4#803005)