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

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

              Dates

                Created:
                Updated:
                Resolved: