@Override
  public boolean runDistCp(List<Path> srcPaths, Path dst, Configuration conf) throws IOException {
    // Creates the command-line parameters for distcp
    List<String> params = constructDistCpParams(srcPaths, dst, conf);
    DistCp distcp = null;
    try {
      distcp = new DistCp(conf, null);
      distcp.getConf().setBoolean("mapred.mapper.new-api", true);

      // HIVE-13704 states that we should use run() instead of execute() due to a hadoop known issue
      // added by HADOOP-10459
      return runDistCpInternal(distcp, params) ==  0;
    } catch (Exception e) {
      throw new IOException("Cannot execute DistCp process: ", e);
    } finally {
      // Set the job id from distCp conf to the callers configuration.
      if (distcp != null) {
        String jobId = distcp.getConf().get(CONF_LABEL_DISTCP_JOB_ID);
        if (jobId != null) {
          conf.set(CONF_LABEL_DISTCP_JOB_ID, jobId);
        }
      }
    }
  }
Constructs the params to be passed for using snapshot based replication
@param srcPaths source paths
@param dst destination
@param sourceSnap starting snapshot
@param destSnap end snapshot
@param conf hive configuration
@param diff -diff or -rdiff
@return
shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java