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

Fix the TABLE_DIR param in TableSnapshotInputFormat

    Details

      Description

      In class TableSnapshotInputFormat or TableSnapshotInputFormatImpl
      in the function

      public static void setInput(Job job, String snapshotName, Path restoreDir) throws IOException {
      

      we are setting restoreDir (temporary root) to tableDir

      conf.set(TABLE_DIR_KEY, restoreDir.toString());
      

      The above parameter is used to get the InputSplits, especially for
      calculating favorable hosts in the function

      Path tableDir = new Path(conf.get(TABLE_DIR_KEY));
      
      List<String> hosts = getBestLocations(conf,
                HRegion.computeHDFSBlocksDistribution(conf, htd, hri, tableDir));
      

      This will lead to returning a empty HDFSBlocksDistribution, as there is
      will be no directory with name as the region name from hri in the restored
      root directory, which will lead to scheduling of non local tasks.

      The change is simple in the sense, is to call the

      FSUtils.getTableDir(rootDir, tableDesc.getTableName()) 

      in the getSplits function

      more discussion in the comments below

      https://issues.apache.org/jira/browse/HBASE-8369?focusedCommentId=14012085&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14012085

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              dvdreddy deepankar
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: