@Override
  public void setConf(final Configuration conf) {
    super.setConf(conf);
    try {
      long cacheRefreshPeriod =
        conf.getLong(HFILE_CACHE_REFRESH_PERIOD_CONF_KEY, DEFAULT_HFILE_CACHE_REFRESH_PERIOD);
      final FileSystem fs = CommonFSUtils.getCurrentFileSystem(conf);
      Path rootDir = CommonFSUtils.getRootDir(conf);
      Path workingDir = SnapshotDescriptionUtils.getWorkingSnapshotDir(rootDir, conf);
      FileSystem workingFs = workingDir.getFileSystem(conf);

      cache = new SnapshotFileCache(fs, rootDir, workingFs, workingDir, cacheRefreshPeriod,
        cacheRefreshPeriod, "snapshot-hfile-cleaner-cache-refresher",
        new SnapshotFileCache.SnapshotFileInspector() {
          @Override
          public Collection<String> filesUnderSnapshot(final FileSystem fs, final Path snapshotDir)
            throws IOException {
            return SnapshotReferenceUtil.getHFileNames(conf, fs, snapshotDir);
          }
        });
    } catch (IOException e) {
      LOG.error("Failed to create cleaner util", e);
    }
  }
File cache for HFiles in the completed and currently running snapshots
hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/SnapshotHFileCleaner.java