public static Map<String, String> apply(JobConf job) {
    Map<String, String> hint = new HashMap<String, String>();

    Iterator<Entry<String, String>> itr = job.iterator();
    while (itr.hasNext()) {
      Entry<String, String> e = itr.next();
      if (e.getKey().startsWith("odps.mapred")
          && !reservedKeys.contains(e.getKey())
          && e.getValue().length() > MAX_VALUE_LENGTH) {
        // Skipping all mapred related parameters not reserved or too big value especially so as to
        // workaround with the
        //  `source xml key/value 128k limit' issue.
        continue;
      }
      hint.put(e.getKey(), e.getValue());
    }

    return hint;
  }