You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Wellington Chevreuil (Jira)" <ji...@apache.org> on 2020/02/04 15:55:00 UTC

[jira] [Created] (HBASE-23791) [operator tools] Remove reference to I.A. Private interface MetaTableAccessor

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)