public static void initMultiTableSnapshotMapperJob(Map<String, Collection<Scan>> snapshotScans,
    Class<? extends TableMap> mapper, Class<?> outputKeyClass, Class<?> outputValueClass,
    JobConf job, boolean addDependencyJars, Path tmpRestoreDir) throws IOException {
    MultiTableSnapshotInputFormat.setInput(job, snapshotScans, tmpRestoreDir);

    job.setInputFormat(MultiTableSnapshotInputFormat.class);
    if (outputValueClass != null) {
      job.setMapOutputValueClass(outputValueClass);
    }
    if (outputKeyClass != null) {
      job.setMapOutputKeyClass(outputKeyClass);
    }
    job.setMapperClass(mapper);
    if (addDependencyJars) {
      addDependencyJars(job);
    }

    org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.resetCacheConfig(job);
  }
Sets up the job for reading from one or more multiple table snapshots, with one or more scans
per snapshot. It bypasses hbase servers and read directly from snapshot files.
@param snapshotScans     map of snapshot name to scans on that snapshot.
@param mapper            The mapper class to use.
@param outputKeyClass    The class of the output key.
@param outputValueClass  The class of the output value.
@param job               The current job to adjust. Make sure the passed job is carrying all
                         necessary HBase configuration.
@param addDependencyJars upload HBase jars and jars for any of the configured job classes via
                         the distributed cache (tmpjars).
hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapred/TableMapReduceUtil.java