List<String> constructDistCpWithSnapshotParams(List<Path> srcPaths, Path dst, String sourceSnap, String destSnap,
      Configuration conf, String diff) throws IOException {
    // Get the default distcp params
    List<String> params = constructDistCpDefaultParams(conf, dst.getFileSystem(conf),
            srcPaths.get(0).getFileSystem(conf), srcPaths);
    if (params.contains("-delete")) {
      params.remove("-delete");
    }

    // Add distCp snapshot diff parameters.

    // Add -diff or -rdiff
    params.add(diff);
    // Add the starting snapshot.
    params.add(sourceSnap);
    // Add the second snapshot
    params.add(destSnap);

    // Add the source paths.
    for (Path src : srcPaths) {
      params.add(src.toString());
    }
    // Add the target path.
    params.add(dst.toString());
    return params;
  }
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