protected static List<String> parseDistCpOptions(Configuration conf) {
    List<String> extraArgsFromConf = new ArrayList<>();

    for (DistCpOptionSwitch optionSwitch : DistCpOptionSwitch.values()) {
      String configLabel = BACKUP_COPY_OPTION_PREFIX + optionSwitch.getConfigLabel();
      if (conf.get(configLabel) != null) {
        if (optionSwitch.getOption().hasArg()) {
          extraArgsFromConf.add("-" + optionSwitch.getOption().getOpt());
          extraArgsFromConf.add(conf.get(configLabel));
        } else {
          boolean value = conf.getBoolean(configLabel, false);
          if (value) {
            extraArgsFromConf.add("-" + optionSwitch.getOption().getOpt());
          }
        }
      }
    }

    return extraArgsFromConf;
  }
Do backup copy based on different types.
@param context  The backup info
@param conf     The hadoop configuration
@param copyType The backup copy type
@param options  Options for customized ExportSnapshot or DistCp
@throws IOException exception
hbase-backup/src/main/java/org/apache/hadoop/hbase/backup/mapreduce/MapReduceBackupCopyJob.java