void sidelineBigOverlaps(Collection<HbckRegionInfo> bigOverlap) throws IOException {
      int overlapsToSideline = bigOverlap.size() - hbck.getMaxMerge();
      if (overlapsToSideline > hbck.getMaxOverlapsToSideline()) {
        overlapsToSideline = hbck.getMaxOverlapsToSideline();
      }
      List<HbckRegionInfo> regionsToSideline =
        RegionSplitCalculator.findBigRanges(bigOverlap, overlapsToSideline);
      FileSystem fs = FileSystem.get(conf);
      for (HbckRegionInfo regionToSideline : regionsToSideline) {
        try {
          LOG.info("Closing region: " + regionToSideline);
          hbck.closeRegion(regionToSideline);
        } catch (IOException ioe) {
          LOG.warn("Was unable to close region " + regionToSideline + ".  Just continuing... ",
            ioe);
        } catch (InterruptedException e) {
          LOG.warn("Was unable to close region " + regionToSideline + ".  Just continuing... ", e);
        }

        try {
          LOG.info("Offlining region: " + regionToSideline);
          hbck.offline(regionToSideline.getRegionName());
        } catch (IOException ioe) {
          LOG.warn(
            "Unable to offline region from master: " + regionToSideline + ".  Just continuing... ",
            ioe);
        }

        LOG.info("Before sideline big overlapped region: " + regionToSideline.toString());
        Path sidelineRegionDir = hbck.sidelineRegionDir(fs, TO_BE_LOADED, regionToSideline);
        if (sidelineRegionDir != null) {
          sidelinedRegions.put(sidelineRegionDir, regionToSideline);
          LOG.info("After sidelined big overlapped region: "
            + regionToSideline.getRegionNameAsString() + " to " + sidelineRegionDir.toString());
          hbck.fixes++;
        }
      }
    }
Sideline some regions in a big overlap group so that it will have fewer regions, and it is
easier to merge them later on.
@param bigOverlap the overlapped group with regions more than maxMerge
hbase-server/src/main/java/org/apache/hadoop/hbase/util/HbckTableInfo.java