Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-23791

[operator tools] Remove reference to I.A. Private interface MetaTableAccessor

    XMLWordPrintableJSON

    Details

      Description

      While trying to use newly command extraRegionsInMeta added by HBASE-23371Daisuke Kobayashi noticed it was not working properly on some deployments not including another patch merged in HBASE-22758, that changed MetaTableAccessor interface:

      $ 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;) 
      

      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!

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                wchevreuil Wellington Chevreuil
                Reporter:
                wchevreuil Wellington Chevreuil
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: